Table of Contents
Unity で作ったアプリ内でのAdmob等広告表示のために主に使用されるプラグインに Google Mobile Ads Unity Plugin があります。
これをバージョン 5.4.0 から最新版(6.1.2)にアップデートした際にエラーが出て色々手探りで色々行った末に解決したので、解決方法について記載しておきます。
実行環境は以下の通りです。
- macOS Monterey
- Unity 2021.1.6f1
現れたエラーの詳細
まず、アップデート後に現れたエラーについてまとめて記載します。
最初に出たのは Unity 上でのビルド時に発生した Cocoapods 関連と思われるエラーです。
これを解決すると、次に Xcode 上でのビルドを行ったときに GoogleMobileAds.h が見つからないという、以下のようなメッセージが表示されてビルドに失敗しました。
/Users/ABC/Documents/UnityProjects/ProjectName/iOS/Libraries/Plugins/iOS/GADURewardedInterstitialAd.h:5:9: 'GoogleMobileAds/GoogleMobileAds.h' file not found
これを解決すると、今度は GADRewardedAd がどうこうというエラーメッセージに変わり、再びビルドに失敗しました。
No visible @interface for 'GADRewardedAd' declares the selector 'initWithAdUnitID'
エラーの原因と解決方法
初めはこれらのエラーが出る度に逐一対処方法を探して解決できないか試していましたが、全てはアップデートの際に必要なある手順を行っていないことが原因でした。
それは「プラグインをアップデートする前に古いバージョンのプラグインに関連するファイルを全て削除しておく」というものです。
プラグインをインポートするときに古いバージョンのものが残っていると正常にアップデートが行われない場合があります。
Unity は新しい同名ファイルがあってもデフォルトでは上書きせずに残す挙動をします。
今回はアップデート(インポート)の前に GoogleMobileAds フォルダを削除していたので大丈夫だと思っていたのですが ExternalDependencyManager や Plugins/iOS など関連する全てのフォルダ内のファイルを削除しないと上手く動きませんでした。
わざわざ Cocoapods を再インストールしたり GoogleMobileAds の削除・再インポートと Unity の再起動を繰り返したりしましたが、インポート前に古いものを削除しておくだけで良かったみたいです。
以上、GoogleMobileAdsSDKをアップデートする際に出たエラーと対処方法でした。