Closed4

[Unity,MAX]FBAudienceNetworkでクラッシュ

sukedonsukedon

Unity製アプリにMAXというApplovinのメディエーションツールを使ってFacebookAudienceNetworkを導入していた。
最新のバージョンにアップデートしたら起動時にクラッシュするようになった。

sukedonsukedon

Facebookのmediationを抜くことで一旦スルーしていたけど、やはりマネタイズ的には必要だと思ったので改めて調査することに。

まず同様の問題が起きる最小のプロジェクトを作成。

Maxのプラグインと初期化の処理だけのプロジェクトを作成。

ビルドして実行。

2021-03-04 16:00:03.696949+0900 MaxFanCheck[49142:9956601] [AppLovinSdk] DEBUG [MAInterstitialAd] Created new MAInterstitialAd (<MAFullscreenAdController: 0x283764f80>)
2021-03-04 16:00:03.697751+0900 MaxFanCheck[49142:9956601] [AppLovinSdk] DEBUG [MARewardedAd] Created new MARewardedAd (<MAFullscreenAdController: 0x283734d00>)
2021-03-04 16:00:03.833777+0900 MaxFanCheck[49142:9956601] Uncaught exception: FBFinalClassViolationException: FBAdConfigManager is a final class and cannot be subclassed. FBAdConfigManager

このエラーが出た。
最小構成でエラーが出たので、このまま調べる。

https://stackoverflow.com/questions/62838895/fbaudience-network-as-a-framework-integration
これ見る感じ、cocoapods周りが怪しそう?

  • Facebookから直接frameworkを落として導入してみる
    →駄目だった
  • Unity上のiOSResolverの設定を変更
    • Link frameworks statically

生成されるPodfileの

use_frameworks!

use_frameworks! :linkage => :static

になるように変更した。
結果としてこの変更でエラー無く起動できるようになった

iOSのFrameworkにはStaticとDynamicの2種類があり、どうやら今回の場合FacebookのAdapterではDynamicのFrameworkを使ってると起きるエラーみたい。

Staticに切り替えて何か他の部分で不具合が出ないかな〜と思い調べてみたけど、
https://medium.com/eureka-engineering/create-merged-framework-to-cut-appstartuptime-72ee67b2bbab
によると、アプリのサイズが大きくなる代わりに起動時間が短くなるみたい。

Dynamicは起動時に必要なFrameworkの組み合わせを作る的な感じなのかな。

このスクラップは2021/03/04にクローズされました