Xcodeでビルドした際に出たエラー。
(正確に言うと、ビルドは成功したんだけど実機で実行した瞬間に出たエラー。)
Terminating app due to uncaught exception ‘GADInvalidInitializationException’, reason: ‘The Google Mobile Ads SDK was initialized incorrectly. Google AdMob publishers should follow instructions here: https://googlemobileadssdk.page.link/admob-ios-update-plist to include the AppMeasurement framework, set the -ObjC linker flag, and set GADApplicationIdentifier with a valid App ID. Google Ad Manager publishers should follow instructions here: https://googlemobileadssdk.page.link/ad-manager-ios-update-plist’
解決方法
少し前から、AdMobを使うときに「GADApplicationIdentifier」というものを設定しなければいけなくなったそう。
最近アプリリリースしてなかったから全然知らなかった。
Xcodeの
info > Custom iOS Target Properties > GADApplicationIdentifier
の値がデフォルトでは「ADMOB_APPLICATION_ID」となっているかと思うので、ここに自分のAdMobのアプリIDを入力します。
アプリIDはAdMobのホームページからログインし、該当アプリを選択して
アプリの設定 > アプリ情報 > アプリID
で取得できます。
itunes connect、XcodeとかのアプリIDやバンドルIDとは全く別物なので注意!
「ca-app-pub-xxxxxxx」みたいなやつです。
これを入力してからビルドすれば無事実機で実行できました!
2019/4/23 追記
毎回ビルドごとにアプリIDを入力するのは面倒なので、Unity側で設定できないのかなと思って調べてみました。
Assets/GoogleMobileAds/Editor/PListProcessor.cs の中に
string appId = "ADMOB_APPLICATION_ID";
という部分があるので、このADMOB_APPLICATION_IDという部分をアプリIDに変えればおっけー。
2019/8/6 追記
PListProcessor.csの中身が変わっていました。
ただ、AppIDの入力はもっと簡単になりました。
Assets > Google Mobile Ads > Settings…
を選択し、インスペクタにGoogle Mobile Ads Settingsを開きます。
Google AdMob のEnabledにチェックが入っていることを確認し、
AdMob App IDのAndroid、iOSにそれぞれのAppIDを入力するだけでおっけーです。
コメント
[…] https://unity-yuji.xyz/terminating-app-due-to-uncaught-exception-gadinvalidinitializationexception/ […]