前兩天新入職了公司,公司給配置的電腦是最新的采用M1芯片,arm64架構(gòu)的mac mini,想著用來(lái)開(kāi)發(fā)會(huì)不會(huì)有很多不兼容的地方,果不其然pod安裝完后就跑不起來(lái)了。經(jīng)歷了一天的踩坑,終于順利把pod運(yùn)行起來(lái),特此記錄。
首先,使用arm64架構(gòu)去安裝pod,可以安裝,但是運(yùn)行的時(shí)候會(huì)報(bào)錯(cuò),因?yàn)閜od還沒(méi)有兼容arm64架構(gòu)。還好蘋(píng)果為了防止這種情況發(fā)生,有另外搞了一個(gè)兼容模式,首先找到“終端”app,右鍵顯示簡(jiǎn)介可以看到這個(gè):
勾選“使用Rosetta打開(kāi)”,這時(shí)再打開(kāi)終端,就是一個(gè)在x86_64架構(gòu)下運(yùn)行的環(huán)境了。這個(gè)選項(xiàng),是應(yīng)用程序同時(shí)兼容arm64和x86_64時(shí)才會(huì)有,勾選了之后,軟件就會(huì)以x86_64架構(gòu)去運(yùn)行,蘋(píng)果自帶的軟件都有這個(gè)選項(xiàng)。第三方的軟件,如果還沒(méi)有兼容arm64架構(gòu),蘋(píng)果就會(huì)默認(rèn)使用Rosetta模式去運(yùn)行這個(gè)軟件。
具體說(shuō)明見(jiàn)這里 如果需要在 Mac 上安裝 Rosetta
蘋(píng)果并沒(méi)有默認(rèn)安裝Rosetta,蘋(píng)果的說(shuō)明是在開(kāi)啟某些app時(shí)會(huì)提示安裝(應(yīng)該是開(kāi)啟第三方的x86_64架構(gòu)app),但我這邊一直沒(méi)有這個(gè)提示,所以保險(xiǎn)起見(jiàn)可以用命令行手動(dòng)安裝下:
softwareupdate --install-rosetta --agree-to-license
如果安裝成功,會(huì)提示:
softwareupdate --install-rosetta --agree-to-license
By using the agreetolicense option, you are agreeing that you have run this tool with the license only option and have read and agreed to the terms.
If you do not agree, press CTRL-C and cancel this process immediately.
Package reference com.apple.pkg.RosettaUpdateAuto is missing installKBytes attribute
Install of Rosetta 2 finished successfully
如果你已經(jīng)安裝過(guò)了,或者在安裝了macOS Big Sur或更高版本的intel芯片mac上運(yùn)行,會(huì)提示:
softwareupdate --install-rosetta --agree-to-license
Installing Rosetta 2 on this system is not supported.
更詳細(xì)的關(guān)于安裝Rosetta看這里Installing Rosetta 2 on M1 Apple Silicon Macs
使用Rosetta模式打開(kāi)終端后,接下來(lái)就是安裝pod的常規(guī)流程了,這個(gè)網(wǎng)上很多,這里貼一篇文章 CocoaPods安裝方法-2020.12.18。ruby可以使用系統(tǒng)自帶的,但有同事反饋使用系統(tǒng)默認(rèn)ruby報(bào)錯(cuò),如果報(bào)錯(cuò)就使用rvm安裝和管理ruby。
講一些幾個(gè)注意的點(diǎn):
(1)先安裝homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
(2)安裝pod之前先安裝xcode-select,使用Rosetta模式后xcode-select需要重新安裝
xcode-select --install
(3)pod安裝完成之后,還得安裝這個(gè)
sudo gem install ffi
至此,pod就能在m1芯片的mac上正常運(yùn)行了,但有可能你在安裝過(guò)程中還是會(huì)報(bào)錯(cuò),所以貼一下我參考的一些鏈接,如果安裝不順利可以看看:
https://github.com/CocoaPods/CocoaPods/issues/10220
M1芯片使用cocoapods進(jìn)行pod install 時(shí),報(bào)錯(cuò)[!] Oh no, an error occurred
MAC升級(jí)到macOS Catalina重新安裝cocoaPods
Ruby 環(huán)境設(shè)定-for mac
Mac用RVM安裝ruby,出現(xiàn)make失敗,導(dǎo)致安裝不成功
tips:之前項(xiàng)目跑模擬器一直失敗,也是因?yàn)槟M器現(xiàn)在是arm64版本了,一些第三方庫(kù)不兼容導(dǎo)致的。這個(gè)使用Rosetta也是可以解決的,Xcode和Xcode Simulator都勾選“使用Rosetta打開(kāi)”,再重啟Xcode和Xcode Simulator,Xcode clean一下重新編譯就可以了。