【Swift5】Terminating app due to uncaught exception ‘GADInvalidInitializationException’

久々に GoogleAdMobSDK を Pods 経由でアップデートしてビルドしたら、Terminating app due to uncaught exception ‘GADInvalidInitializationException’ と言われ、はぁん?ってなったので、その対処法を記載します。

開発環境(前提条件)

・Xcode12.4
・Swift5
・GoogleAdMob ver7.69.0(Pods管理)

行ったこと

3番までは執筆時の公式ドキュメントの作業ですが、2番はすでに実装していたので行っていません。

1)pod update を行い、GoogleAdMobSDK をアップデート
2)Info.plist に GADApplicationIdentifier を追加

3)Info.plist に SKAdNetworkItems を追加

4)一度 Xcode で Build を行う(エラー!!)

Terminating app due to uncaught exception ‘GADInvalidInitializationException’, reason: ‘The Google Mobile Ads SDK was initialized without AppMeasurement. Google AdMob publishers, follow instructions here: https://googlemobileadssdk.page.link/admob-ios-update-plist to include the AppMeasurement framework and set the -ObjC linker flag. Google Ad Manager publishers, follow instructions here: https://googlemobileadssdk.page.link/ad-manager-ios-update-plist’

まぁアップデートするとエラー出ますよねーって感じです (σ´-ω-
GoogleMobileAdsSDK は AppMeasurement を使わずに初期化したので、例外 'GADInvalidInitializationException' 発生してアプリを終了しましたって言われてますね。
ドキュメント通りにやったやんけ!と悪態つきながらも、とりあえず Xcode 終了したり clean かけたけどダメでした \テキトー!/
こういうエラーは手始めに clean かけたり Xcode 再起動して、ワンチャン直らねーかなって方に賭けるタイプの人間なんす。

解決方法

華麗に賭けに負けたので、ちゃんと調べました。
stackoverflow とかにも「BuildSettings で -ObjC を...」とか「GADApplicationIdentifier を書いたら...」とか色々と出てきたのですが、以下のコードを Info.plist に追加することで直りました。

直りましたね。GADInvalidInitializationException は。

私の場合ですが、まだ GoogleAdMobSDK 関連でエラーが発生していて、ファイルがないと怒られ続けておりました!
Initialize なんちゃら Framework みたいな名前だったのですが覚えてません。
あーやだなーエラーうぜーと思ってスクショも撮らずでしたが、今になって後悔です。笑

まぁ結局 Pods のキャッシュを削除 → 再インストールかましたら無事ビルド通ったんですけどね。
ターミナルを起動して、以下のようなコマンドを入力してください。

CocoaPods のキャッシュと Xcode の DerivedData を削除して Pods をインストールしてます。

さいごに

ATT(AppTrackingTransparency)ポリシーのせいで、広告SDKもがちゃがちゃしそうだし、その前に一発アップデートでもすっかーとか軽い気持ちでやったものの、5時間ほどうろうろしてましたwww
申請近かったんで、やってしもーた感ハンパなかったです (・ω・
;

てか何気に ATT は収益にダメージ来そうな気がするー
Apple も本気で動いてるしなぁ。まぁ従うしかないですけどね。

コメント