最近、Unityで作ったアプリのAdmob Pluginのバージョンを6.0.0にあげたところ、iOS版ビルド時に以下のエラーがでてビルドが通らなくなってしまいました。
Undefined symbols for architecture arm64:
"_GADURequestInterstitial", referenced from:
_Externs_GADURequestInterstitial_m7354DBBE6F0E4C60EFEE0EC733AAEC22D91E2B0C in GoogleMobileAds.iOS.o
(maybe you meant: _Externs_GADURequestInterstitial_m7354DBBE6F0E4C60EFEE0EC733AAEC22D91E2B0C)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
今回は、このエラーの対処法についてまとめておこうと思います。
Unity】iOS版のAdMob 6.0.0でUndefined symbols for architecture arm64のエラーの対処法
エラー内容的には、「_GADURequestInterstitial」がarm64に対応していないよっていうエラーだと思いますが、どう対処すべきかいまいちわからなかったので、ネットを検索したところ、以下の記事がヒットしました。
こちらの記事の以下を参考に、GoogleMobileAds.iOSの以下の箇所をコメントアウトして再度ビルドしなおしました。
I was able to get around this by making the following changes to
Classes\Native\GoogleMobileAds.iOS.cpp
in XCode:
- Comment out this on line
7891
:System.Void GoogleMobileAds.iOS.Externs::GADURequestInterstitial(System.IntPtr,System.IntPtr)
- Comment out this on line
7897
:reinterpret_cast<PInvokeFunc>(GADURequestInterstitial)(___interstitial0, ___request1);
上記部分をコメントアウトした結果、ビルドが通るようになりました。
エラー原因となった「_GADURequestInterstitial」はおそらくインタースティシャル広告をリクエストするクラスなのかなと思ったので、念のためインタースティシャル広告が表示されるか試したところ、正常に表示されたのでとりあえずOKということにしておきます。(実際のところ、何が原因だったのかわかなかったので、後で調べることにします。)
お知らせ
謎解き推理ゲーム「イラスト探偵」を最近リリースしました!
もしよろしければダウンロードお願い致します!