Terminating app due to uncaught exception ‘GADInvalidInitializationException’ というエラー

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を入力するだけでおっけーです。

コメント