2018/05/24

Unity2018でadMobのiPhoneビルドでハマった話

Unity2018でアプリを作成し、adMobを組み込んでiPhone用にビルドしたら、エラーになって2日間ハマってしまいました。

adMobを組み込む前のビルドではAndroid版/iPhone版とも問題なくビルド出来ていたのに、「GoogleMobileAds.unitypackage」を取り込んで、ビルドしたら、iPhone版でエラーになってしまいました。

とりあえずUnityでエラーは表示されているものの、iOSのXcodeプロジェクトは生成されていたので、Xcodeで直接「GoogleMobileAds.framework」を取り込んで、実機ビルドをしてみたら、Xcodeでもエラー!
どうもcocoapodsでエラーが起きているようで、ログに「ArgumentError - Malformed version number string」の文字に続いてズラズラとたくさんのエラー表示が続いていました。

そこからadMobのサンプルHellow Worldで「GoogleMobileAds.unitypackage」を取り込んで、色々いじってテストしてみるも、iPhone用ビルドではエラーが解消されず、検索しても同様のエラーの日本語の情報が見つからず「俺だけなの〜(T_T)」と悩みつつ、2日が経過しました。
エラーログの「ArgumentError - Malformed version number string」の先の方に

Looking for related issues on cocoapods/cocoapods...

Malformed version number string
#7765 [open] [12 comments]

とある部分のリンクを辿ると、かなり下の方に

---------------------------------------------------------------------
I also encountered this problem, and tried the following steps to solve it:

Brew update instructions update Homebrew(because there is no prompt, it will wait for a while to be completed)
Install RVM
Use RVM to install the latest version of ruby(this time using ruby-2.4.1)
Use the command sudo gem install -n /usr/local/bin cocoapods to reload cocoapods.
The problem is fixed
---------------------------------------------------------------------

との書き込みが!
「The problem is fixed」って事は解決したって事だよね!?
ruby-2.4.1にしたって書かれているので、自分のMacのrubyを確認したら、ruby 2.3.3p222でMacのデフォルトのrubyだったので
https://qiita.com/tmknom/items/56542abd9341820bb9cc

http://pie001.hatenablog.com/entry/2018/03/07/133308
をお手本にRuby-2.5.0にアップデートして、cocoapodをインストールし直したら、Unityから無事iPhone用にビルド出来るようになりました。