Apple Silicon(m1…etc.)MB安裝 CocoaPods Issue
目錄
⦿ gem install
⦿ gem uninstall / rm -rf
⦿ Homebrew
⦿ zsh: command not found brew
⦿ pod install
⦿ 結論
gem install
自 Apple 的 ARM
架構 CPU 推出以來,大小問題不斷,當你用 Xcode 開發 iOS APP 時,除了以 SPM 安裝套件之外,也常會使用 CocoaPods 來管理你的套件。
這篇文章主要整理 CocoaPods 會碰到的問題流程
與處理方式
,一般而言,安裝 CocoaPods 只要在 Terminal 輸入 sudo gem install cocoapods
即可,若安裝成功,那麼恭喜你(在這個步驟)。
gem uninstall / rm -rf
若不幸地在這一步驟出了錯誤,像是出現下面這個錯誤訊息:
you don't have write permissions for the /system/library/frameworks/ruby.framework/versions/2.6/usr/lib/ruby/gems/2.6.0 directory.
我們會輸入 sudo gem uninstall
,反安裝(移除) CocoaPods;或者,我們先 which pod
,找到如 /usr/local/bin/pod
這個安裝位置,輸入 sudo rm -rf /usr/local/bin/pod
,表示用 root 權限強制刪除這個資料夾。
但還沒完,這時候我們還需 gem list
,去找到 CocoaPods 的安裝包位置:
gem list
*** LOCAL GEMS ***
...
cocoapods (1.11.2)
cocoapods-core (1.11.2)
cocoapods-try (1.2.0)
接著,再一個個移除,sudo gem uninstall cocoapods-core
、sudo gem uninstall cocoapods-try
等等,如果你反安裝(移除)完成,這時再輸入 brew install cocoapods
,看到了嗎?是 brew,多數做法都是要你別用 gem,而是改用 Homebrew。
Homebrew
如果你沒安裝過 Homebrew,我們改輸入如下:
curl -fsSL -o install.sh https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
這表示將 Homebrew 安裝的腳本下載到 install.sh 檔案裡,那麼,你就可以簡單地執行這個腳本來安裝 Homebrew。
於是輸入以下:
/bin/bash install.sh
當然,我們可以更簡單地將這兩行合併如下:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
這樣就只要一行指令,return 後,等待 Homebrew 安裝完成,輸入以下:
brew install cocoapods
若不幸地跳出錯誤為 zsh: command not found: brew
,我們必須再做處理。
zsh: command not found: brew
若很不幸地又跳出錯誤訊息 zsh: command not found: brew
,這時你就深深感受到 Apple Silicon 的麻煩之處了,原來前面 Homebrew 的安裝若在 Mac Intel 上,環境變數就匹配
了,而在 Apple Silicon 上,我們得重新設置它,指回正確的路徑。
Add Homebrew to your PATH in /Users/daniel/.zprofile
:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/daniel/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
分別輸入後,我們再試試看 brew install cocoapods
,就完成啦!
繼續閱讀|回目錄
pod install
如果你 gem install cocoapods
沒有問題,那麼,我們不一定要移除 cocoapods,再改用 brew 安裝。
但仍可能在 pod install
時出問題,當跳出錯誤訊息其中一行如下:
LoadError - dlsym(0x7f8926035eb0, Init_ffi_c): symbol not found - /Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi_c.bundle
於是先輸入:
sudo arch -x86_64 gem install ffi
意思是用 arch -x86_64
架構去安裝 ffi;或者,我們也可用 Rosetta 2
打開 Terminal,那麼,就只要 sudo gem install ffi
,ffi 是 Ruby 的 Library,因為前面吐出的錯誤跟 ffi 有關,所以這邊重新安裝 ffi。
接著再輸入:
arch -x86_64 pod install
就完成了!
繼續閱讀|回目錄
結論
如果在 Apple Silicon 的 MB 上,用 gem 安裝 CocoaPods 出問題,理想情況是用 Homebrew 重新安裝一次。
若是 pod install
出問題,試著重新安裝 ffi,再次 pod install 就正常了。
另外,有時候在 CLI(Commnad Line Interface)安裝時似停頓,例如安裝 CocoaPods 時像是卡住,這時我們可以輸入:
sudo gem install cocoapods -V
加上 -V
就可清楚看到一步步的安裝過程,好了!
這次就分享到這,感謝您的閱讀。
繼續閱讀|回目錄
Reference: