久々に 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 を追加
1 2 |
<key>GADApplicationIdentifier</key> <string>ca-app-pub-0~0</string> // 実際に使うアプリID |
3)Info.plist に SKAdNetworkItems を追加
1 2 3 4 5 6 7 |
<key>SKAdNetworkItems</key> <array> <dict> <key>SKAdNetworkIdentifier</key> <string>cstr6suwn9.skadnetwork</string> </dict> </array> |
4)一度 Xcode で Build を行う(エラー!!)
まぁアップデートするとエラー出ますよねーって感じです (σ´-ω-)σ
GoogleMobileAdsSDK は AppMeasurement を使わずに初期化したので、例外 'GADInvalidInitializationException' 発生してアプリを終了しましたって言われてますね。
ドキュメント通りにやったやんけ!と悪態つきながらも、とりあえず Xcode 終了したり clean かけたけどダメでした \テキトー!/
こういうエラーは手始めに clean かけたり Xcode 再起動して、ワンチャン直らねーかなって方に賭けるタイプの人間なんす。
解決方法
華麗に賭けに負けたので、ちゃんと調べました。
stackoverflow とかにも「BuildSettings で -ObjC を...」とか「GADApplicationIdentifier を書いたら...」とか色々と出てきたのですが、以下のコードを Info.plist に追加することで直りました。
1 2 |
<key>GADIsAdManagerApp</key> <true/> |
直りましたね。GADInvalidInitializationException は。
私の場合ですが、まだ GoogleAdMobSDK 関連でエラーが発生していて、ファイルがないと怒られ続けておりました!
Initialize なんちゃら Framework みたいな名前だったのですが覚えてません。
あーやだなーエラーうぜーと思ってスクショも撮らずでしたが、今になって後悔です。笑
まぁ結局 Pods のキャッシュを削除 → 再インストールかましたら無事ビルド通ったんですけどね。
ターミナルを起動して、以下のようなコマンドを入力してください。
1 2 3 4 5 |
% rm -rf ~/Library/Caches/CocoaPods % rm -rf ~/Library/Developer/Xcode/DerivedData % pod install |
CocoaPods のキャッシュと Xcode の DerivedData を削除して Pods をインストールしてます。
さいごに
ATT(AppTrackingTransparency)ポリシーのせいで、広告SDKもがちゃがちゃしそうだし、その前に一発アップデートでもすっかーとか軽い気持ちでやったものの、5時間ほどうろうろしてましたwww
申請近かったんで、やってしもーた感ハンパなかったです (・ω・;
てか何気に ATT は収益にダメージ来そうな気がするー
Apple も本気で動いてるしなぁ。まぁ従うしかないですけどね。
コメント