👁️

Apple Silicon MacのHomeBrewとCocoaPods

2023/12/18に公開

はじめに

内容のほとんどは既存記事の転用となるので詳細は記事中のリンク元を辿ってください。

HomeBrewでCocoaPodsをインストした方向けの記事になります。

状況

brew install cocoapodsだと、最新のCocoapodsをインストールします。
XcodeでArchiveしようとした際に、エラーが発生したのが発端です。

Showing All Errors Only
PhaseScriptExecution [CP]\ Check\ Pods\ Manifest.lock 
(中略)
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

CocoaPodsのsandboxとPodfile.lock内に記述されているライブラリのversionが
一致していないことによるエラーです。
なので、pod install か CocoaPodsをupdateすれば解決できます。

一応、状況をsourceTreeで確認してみました。

 PODFILE CHECKSUM: XXXXXXXX
 -COCOAPODS: 1.11.3
 +COCOAPODS: 1.14.3

こっちも確認

% pod --version
 1.14.3

まとめると、
Podfile.lock内のcocoapodsを使用していないことによる
ライブラリのバージョン不一致が原因。

あ〜〜〜〜
HomeBrewで「brew install cocoapods」したまんまだったわ…

開発環境

  • mac:M1
  • Xcode:14.1
  • sourceTree

解決策その1

多くの方は、ターミナルでプロジェクト配下に移動して、”pod install”で解決です。
pod installをすると、Podfile内に記述されているversionを適用してくれる仕様なので、
素直に実行すれば解決できるはずです。

こちらの記事にもありますね。
https://ios-docs.dev/the-sandbox-is-not-in-sync/

ただし

私のようなcocoapodsのバージョン差異が大元の原因の場合は、cocoapodsのバージョンを合わせることからスタートです。

準備

Rubyの場合、cocoapodsのversionを指定してダウンロードできると聞いたので、
一旦、手持ちのCocoaPodsを削除しました。

削除前

% pod version
1.14.3

削除する

 % brew uninstall cocoapods

Warning: Treating cocoapods as a formula. For the cask, use homebrew/cask/cocoapods
Uninstalling /usr/local/Cellar/cocoapods/1.14.3... (13,791 files, 28.8MB)

削除後
pod versionでcommand not found: podが出ればOKかなと。
削除したので「pod? 誰そいつ?」って感じです。

 % pod version
zsh: command not found: pod

解決策その②

以下の記事を参照してください。


https://zenn.dev/junjunjunk/articles/4b230519d87de4
…ターミナル上からAliasでアーキテクチャを切り替える方法解説です。
 ②は①を一部踏襲していますので要必見。
Appple Siliconユーザが全員見た方がいいと思う。


https://zenn.dev/osuzuki/articles/a535b2840bbea3
…※2まで実行。こちらも神。神様乱立。
 アーキテクチャごとに、HomeBrewをインストール。
rbenvでRubyもインストールして、使用するRubyをsystemからインストールしたRubyに切り替えました。

https://tech-begin.com/programming-coding/ios/about-cocoapods/#toc1
…図解がわかりやすいです。
今自分が何をやっているか、これから何をどうすればいいのか。「立ち位置」を教えてくれます。

プロジェクト配下で、以下を実行。

% gem install cocoapods -v 1.11.3

完了の証はこの文章!!!

Done installing documentation for ffi, ethon, typhoeus, public_suffix, fuzzy_match, concurrent-ruby, httpclient, algoliasearch, addressable, zeitwerk, tzinfo, i18n, activesupport, cocoapods-core, cocoapods after 7 seconds
[XX]gems installed

プロジェクト配下で、"pod install"でDone!!

#Podfile.lock内のCocoapodsのversionとインストール済みのCocoapodsのversionが一致していることを確認
% pod --version
1.11.3

# Cocoapodsに、podfileを読んで、ライブラリのインストールを実施
% pod install
Analyzing dependencies
Downloading dependencies
Generating Pods project
Integrating client project
Pod installation complete! There are 10 dependencies from the Podfile and 26 total pods installed.

無事にビルドできたらいいな!!

おわりに

Mac自体をほとんど触ったことがなく、ターミナルのシェル操作も素人なので
ページ内で紹介した記事がなければ詰んでました。。

余計なお世話かもしれませんが、もっと多くの人に読んでもらいたいので、1つの窓口を作った感じです。今後も理解を深めたいので、そのセーブポイントと備忘録として弊社の後輩向けにまとめました。

以上、ほとんど他サイトや他記事の紹介になった初投稿でした。

補足

ブランチ切り替え・プロジェクトを切り替えてビルドするタイミングで
おそらく毎回このエラーが出ます。

Q.そんな時あなたは、「面倒だな」って思いますか?
 ⇨イライラするよって方への処方箋
  https://qiita.com/horimislime/items/c532764506b59952454a

Discussion