‘configure(withApplicationID:)’ is deprecatedと言われた
ふと思い立ってpod updateを打ったら、AdMobのAPI仕様が変わっててこんなWarningが出るようになった。
そして、これを実行するとクラッシュする。
A mobile ads SDK for AdMob publishers who are building iOS apps.
ここにはconfigureWithApplicationIDがdeprecatedになったことや、startWithCompletionHandlerについて一つも書いてない(2019/3/21現在)
けど、なんかInfo.plistにAdMob App IDを記述した方がいいって書いてあるし、アプリがクラッシュした時のエラーログにも
‘The Google Mobile Ads SDK was initialized incorrectly. Google AdMob publishers should follow instructions here: https://googlemobileadssdk.page.link/admob-ios-update-plist
とか書いてあって、このリンクを踏むとスタートガイドの"Info.plistの更新"ってところに飛ぶので、これをしろということなのだろう。
Info.plistの更新
今まで、configureWithApplicationIDメソッドの引数に渡していたAdMob App IDを、Info.plistに記載することが必要になった。
こんな感じでGADApplicationIdentifierキーを追加し、そこにAdMob App IDを入れてやればOK
configureメソッドをstartメソッドに変える
今まで
GADMobileAds.configure(withApplicationID: "ca-app-pub-3940256099942544~1458002511")
みたいに書いていた場所を
GADMobileAds.sharedInstance().start()
こうしてやりましょう。Info.plistにApplication IDが移動したので、引数は何も取らなくなります。
まとめ
これだけであとは今まで通り使えるはずです。
そこまで手間じゃないですね。
ただ、僕の場合Debugビルドの場合はテストID、Releaseビルドの場合は本番用IDと切り替えて使ってました。(毎回自分の端末のIDを入れるのが面倒なため)
今までswiftのソースコード上で#if, #else, #endifを使うことで簡単に分岐ができたんですが、今回Application IDがInfo.plistに記載されることになってこれが使えなくなりました。
Preprocess Info.plist fileという仕組みが使えそうなのですが、なんかまた面倒になりそうな予感。
嫌だな〜・・・
[…] https://ideal-reality.com/programing/admob-configure-deprecated/ […]