白黒羊

‘GoogleMobileAds/GoogleMobileAds.h’ file not found で XCodeビルドが失敗する

状況

AdMobプラグイン使用時にUnity で iOSビルドをする。
▶︎ Build completed with a result of 'Succeeded'
▶︎ Unity-iPhone.xcodeproj を XCodeで開いてRun
▶︎ ‘GoogleMobileAds/GoogleMobileAds.h’ file not found で失敗。

Unity Cloud Build ではビルドが成功している。

分析

Unityのデバッグログを見ているとビルド自体は成功しているものの一つエラーが出ていました。

Analyzing dependencies
[!] `GoogleAppMeasurement` requires CocoaPods version `>= 1.10.0`, which is not satisfied by your current version, `1.9.3`.

ローカルのCocoaPodsが古いようです。

対応策

CocoaPodsをアップデートします。

gem update cocoapods

しかし、これだけでは

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.

と言われて失敗してしまいます。

Unity Editor の Assets > External Dependency Manager > iOS Resolver > Install Cocoapods を見ると、

iOS Resolver Cocopods installation detected <PATH_TO_POD>

iOS Resolver

と表示されるかと思います。そこに書かれたパスを用いて、

sudo gem install -n <PATH_TO_POD> cocoapods

これで最新のCocoapodsにアップデートできました。

この状態で、Assets > External Dependency Manager > iOS Resolver > Settings から、Cocoapods Integration を XCode Project – Add Cocoapods to the XCode project にしてあげるとビルドできるようになります。

参考