【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 かけたけどダメでした \テキトー!/

解決方法

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

直りましたね。GADInvalidInitializationException は。

私の場合ですが、まだ GoogleAdMobSDK 関連でエラーが発生していて、ファイルがないと怒られ続けておりました。
Initialize なんちゃら Framework みたいな名前だったのですが覚えてません。(スクショ取っときゃよかた)
まぁ結局 Pods のキャッシュを削除 → 再インストールかましたら無事ビルド通ったんですけどね!

さいごに

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

てか何気に ATT は収益にダメージ来そうな気がするー

コメント