実証環境
Macbook Air 2
macOS 14.2.1
Unity 2021.3.29f1
Xcode 15.2
やっていたこと
以下の記事を参考に、UnityでGeospatial APIを使ったiOS向けのアプリを作っていた。
発生した2つのエラー
①Geospatial APIを使うために、ARCore Extensionsパッケージを入れた時から、パッケージを入れたりiOS関連の変更を行なったりすると次のエラーが定期的に表示された。
iOS Resolver
Failed to install CocoaPods for the current user.
It will not be possible to install Cocoapods in the generated Xcode project
which will result in link errors when building your application.
・
・
・
②なんやかんやで上記エラーを回避したところ、次はUnityでiOS向けにビルドするとき次のエラーが発生。
iOS framework addition failed due to a CocoaPods installation failure. This will will likely result in an non-functional Xcode project.
After the failure, "pod repo update" was executed and failed.
"pod install" was then attempted again, and still failed.
This may be due to a broken CocoaPods installation.
See: https://guides.cocoapods.org/using/troubleshooting.html for potential solutions.
・
・
・
上記2つとも、無理やりUnityでビルドしてXCodeまで持っていけるが、Xcodeでのビルドの時にエラーになる。
1つ目のエラー回避方法
要は、「CocoaPodsというものをインストールしたいがUnity側ではできない」ということなので、手動でCocoaPodsというものを入れてやる。CocoaPodsはiOS向けに必要なパッケージたちを紐づけてくれる的なやつらしい。
CocoaPodsについて→
Cocoapodsをインストールするコマンドは次の通り。
sudo gem install cocoapods
でも最初は次のようにpermissionがありませんというエラーが出る。
You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.
どうやらCocoaPodsをインストールするためにはRubyが必要らしい。もともとMacにはRubyが入っているが、システム標準のRubyだと権限の問題で先ほどのpermissionエラーが出てしまう。そこで、Rubyのバージョン管理をしてくれるrbenvを導入し、rbenvを使って別バージョンのRubyを入れてやる。この手順については以下の記事を参考にさせていただいた。
rbenvでRubyをインストールして環境設定が完了したら、改めて以下のコードでcocoapodsをインストール!
sudo gem install cocoapods
自分の環境ではこれでエラーなくcocoapodsがインストールされた。
2つ目のエラー回避方法
こちらも、「Unity側ではビルドに必要な"ワークスペース"?的なものを作れない!」ということなので、ビルドしたフォルダの中に手動で必要なものを入れればOK。
先ほどの手順でcocoapodsが入っているため、podコマンドが使える。ビルドしたフォルダ内で次のコマンドを打てば、Unityでのビルド時にエラーとなっている原因は解決できる。
pod install
もしくは
pod update
以下の記事を参考にさせていただいた。
最後に
手作業しか勝たん