iOS14対応 AdmobSDKを入れる際にでる、「_FBLPromiseErrorDomain / _FBLPromise」、「_JSContext」というエラーの解決策




「”_FBLPromiseErrorDomain”, referenced from / “_OBJC_CLASS_$_FBLPromise”, referenced from」というエラーが出る場合

新しいAdmobSDKに追加されている、PromisesObjC.frameworkをプロジェクトに追加するとエラーを取ることができます。
導入マニュアルを見るとこの辺が書いていないので、引っかかりました。

Admob導入マニュアル

こちらを見ると手動で設定する場合、手動ダウンロードSDK フレームワークを直接ダウンロードして解凍し、Xcode のプロジェクトに以下のフレームワークをインポートします。
GoogleMobileAds.framework
GoogleAppMeasurement.framework
GoogleUtilities.framework
nanopb.framework

と記載があります。

これだけだとGoogleUtilities.frameworkが参照している、FireBase系の処理がないよーがというエラーがでているみたいです。

「”_OBJC_CLASS_$_JSContext”, referenced from」というエラーが出る場合

Build Phases > Link Binary with Librarys より「JavaScriptCore.framework」を追加してください。こちらも必要みたいです。

レガシービルドを選択している場合

New Build System -> Legacy Build Systemにしている場合は、各xcframeworkに格納されているものを直接取得

(例) GoogleUtilities.xcframeworkの場合
GoogleUtilities.xcframework > ios-armv7_arm64 > GoogleUtilities.framework を プロジェクトに追加

App Transparency Frameworkの追加 と Info.plistについて

その他にもiOS14でIDFA情報を取得するには、AppTransparencyFrameworkの追加とplistに使用する記述が必要です。

・General > Frameworks, Libraries, Embeded Content > AppTransparencyFrameworkを追加
※ Build Phases > Link Binary with Librarys からでもOK
・Build Phases > Link Binary with Libraries > AppTransparencyFramework : Optionalに変更

・Info.plistにNSUserTrackingUsageDescription という項目を追加
理由を適当に記載

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です