UnityでAdmob広告を実装するためのplugin(Google Mobile Ads Unity)をインポートしようとした際に、OSをBigSurにアップデートしていたため(と思われる)エラーが発生しました。CocoaPodsにアクセスできないというエラーです。
なんとか解決できたので、忘れないように記録しておきます。
ただし、書いた人はプログラミング初心者なので内容が正確ではない可能性があります。ご了承ください。
今回起こったこと
UnityにGoogle Mobile Ads PluginをインポートしようとしてCocoaPodsにアクセスできないエラーが出た
環境
- MacOS BugSur11.6
- Google Mobile Ads Unity Plugin v6.1.2
- Unity2019.4.18f1
解決できた方法まとめ
- CocoaPodsアップグレード:うまくいかず
- CocoaPodsインストールのために、CLang, rbenv, Ruby, gemの順に全てアップグレード
- CocoaPodsインストール再挑戦:成功!
- Unityに戻りGoogle Mobile Ads Unity Pluginインポート再挑戦:成功!
このような流れで解決しました。
Unityでエラー発生、CocoaPodsのアップグレードを試みる
UnityでのAdmob広告の実装手順はこちらのページがわかりやすいです!(いつも参考にさせてもらってます)
Admob広告を実装するために、Google Admob公式サイトからMobile Ads Unity プラグインをダウンロードしました。
さらにUnityでImport Package → Custom Packcage で、ダウンロードしたファイルをインポート。
途中でエラーになりました。スクリーンショットを撮り忘れてしまったのですが、
”CocoaPodsにアクセスできない”というエラーだったと思います。(スクショなくてすみません)
前作のアプリを出した時は問題なかったんですが…。バージョンが古くなってアクセスできなかったのか。
下記のページを参考に、CocoaPodsのアップデートを試みました。
ターミナルで以下のコマンドを実行。
[sudo] gem update cocoapods
しかし、”pod not found”と出てエラー。CocoaPodsの再インストールが必要なようでした。
CocoaPodsインストールのためにCLang, rbenv, Ruby, gemをアップグレード
以下のページを参考に、CocoaPodsのインストールを試しました。
こちらの方法を試しましたが、gemが古いと言われる → Rubyのバージョンが古いと言われる → Rubyのインストールにも失敗…となって途方に暮れました。
そこで色々調べると、下記のページで
“macOS付属のC言語/C++のコンパイラCLangのバージョンによっては、Rubyのインストールに失敗する場合があります。”
Yuichi Goto’s page
という情報を見つけました。
こちらのページに従って、
CLangのバージョンアップ → バージョン管理システムGitのインストール → rbenv(Rubyのバージョンを管理してくれるツール)のインストール → Rubyのインストール → gemをアップデート
まで実行。特に躓かずうまくいきました!
Ruby on Railsまでは必要ないと思ったので、ここまでで再度CocoaPodsのインストールに挑戦しました。
CocoaPodsインストール再挑戦
さかのぼって必要なものは全部アップグレードできたと思うので、再度CocoaPodsのインストールに挑戦してみました。しかしこれも一筋縄ではいかず…。
再度以下のページを参考にしました。
ターミナルで以下のコマンドを実行し、CocoaPodsをインストール。
sudo gem install -n /usr/local/bin cocoapods
インストール後、セットアップ。
pod setup
ここでエラー。
下記のページを参考に、古いバージョンのCocoaPodsを削除+CocoaPodsの設定ファイルを削除。
pod setup を再試行したら、うまくいきました!
さらに、Podfileというものを作成するそうで、
pod init
を実行しましたが、これはうまくいかず…。一度切り上げました。
Google Mobile Ads Unity Pluginインポート再挑戦
最後の手順まではうまくいかなかったので、ダメもとでしたがUnityに戻ってプラグインのインポートを再度試みたところ…成功しました!
結局Google Mobile Ads Unity Pluginを使うために、Podfile作成は必要ないのか?疑問が残りますが、ひとまずいいことにしたいと思います。(後で問題起きたら追記します…!)
どうやらUnityプロジェクトをビルドしていない段階ではPodfile作成はできないらしい…?
歯切れが悪くて申し訳ないですが今回は以上です。
まとめ
思わぬ遠回りで半日かかりましたが、無事Google Mobile Ads Unity Pluginをインポートすることができました。
めっちゃ大変だった…!
セキュリティの関係上、OSは常に最新がいいかと思っていましたが、開発をしていると思わぬ落とし穴がありますね。
参考リンクの記事を書いてくださった皆様に感謝!!!
さて、次はGoogleの新しい広告ユニット、リワードインタースティシャル広告を実装したいと思っています。
またネタが発生したら記事にしたいと思います。
ブログを始めたらエラーはネタになるのでおいしいですね!笑
ではでは皆様も楽しい開発ライフを〜!