👾

UnityでiOSビルド時に、 "OBJC_CLASS$_GADInterstitialAd"でエラーの解決法

1 min read

Unity2019.4を使用しゲームアプリを作成、iOSでビルド後、Xcodeで実機テストを行おうとするとエラーが2つ出ました。

リリースされたばかりの
googleadmobSDK Ver6.0.0
をインポートしてしまい、何をやってもうまくいかなかった時の方法です。

"OBJC_CLASS$_GADInterstitialAd", referenced from:
objc-class-ref in unity-plugin-library.a
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

admob広告バナーとインタースティシャルを実装しています。
おなじプロジェクトでandroidはビルドができて、ストアにもリリースできているのですが、iOSの場合は実機テストまで行けません。
googleadmobSDKは6.0.0を入れていました。
Xcodeはアップデート済みで、cocoapodsもアップデートできました。

解決方法

Unityの上部メニューバーから

Assets → ExportPackage

エクスポートするファイルを選択する画面になったら、
googleadmobSDKに関連するフォルダを除いてエクスポート。

そして新しいプロジェクトをつくり開きます。

空の状態のプロジェクトで、先ほどエクスポートしたファイルを開きます。

Assets → ImportPackage → CustomPackage

先ほど作ったファイルを選択して開く。

すると
googleadmobSDKに関連するもの以外が呼び出された状態になると思うので、
この状態で5.4.0のバージョンをインポートすると無事Xcodeのビルドが通りました。

まとめ

今後新しいバージョンがリリースされて、このようなエラーがなくなっている事を祈ります。
2021年5月末時点での対応なので、その後もっとスマートな対応策があるかもしれません。

Discussion

ログインするとコメントできます