AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

【Unity】iOS版のAdMob 6.0.0でUndefined symbols for architecture arm64: "_GADURequestInterstitial"が出る場合の対処法

最近、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に対応していないよっていうエラーだと思いますが、どう対処すべきかいまいちわからなかったので、ネットを検索したところ、以下の記事がヒットしました。

 

github.com

こちらの記事の以下を参考に、GoogleMobileAds.iOSの以下の箇所をコメントアウトして再度ビルドしなおしました。

I was able to get around this by making the following changes to Classes\Native\GoogleMobileAds.iOS.cpp in XCode:

  1. Comment out this on line 7891:
System.Void GoogleMobileAds.iOS.Externs::GADURequestInterstitial(System.IntPtr,System.IntPtr)
  1. Comment out this on line 7897:
reinterpret_cast<PInvokeFunc>(GADURequestInterstitial)(___interstitial0, ___request1);

 

上記部分をコメントアウトした結果、ビルドが通るようになりました。

 

エラー原因となった「_GADURequestInterstitial」はおそらくインタースティシャル広告をリクエストするクラスなのかなと思ったので、念のためインタースティシャル広告が表示されるか試したところ、正常に表示されたのでとりあえずOKということにしておきます。(実際のところ、何が原因だったのかわかなかったので、後で調べることにします。)

 

 お知らせ

謎解き推理ゲーム「イラスト探偵」を最近リリースしました!

もしよろしければダウンロードお願い致します!

 

app-seed.com

イラスト探偵-謎解き推理ゲーム-

イラスト探偵-謎解き推理ゲーム-

  • AppSeed, Incorporated.
  • ゲーム
  • 無料

apps.apple.com

play.google.com

www.amazon.com