1. 程式人生 > 實用技巧 >No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=arm64, VALID_ARCHS=arm64 arm64e i386 x86_64,

No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=arm64, VALID_ARCHS=arm64 arm64e i386 x86_64,

編譯的時候會報標題的錯誤,想直接看標題的解決方式,則從第四條看起!!!前提cocoapods安裝成功哈~

最近換了新電腦,系統為macOS Big Sur 11.0.1,Xcode版本為12.2,在安裝完cocoapods以後,專案依然不能執行,因為嘗試時間較久,遇到的問題較多,最終找到原因並解決,過程中遇到的一些問題也做下記錄,方便以後自己參考,並深深的記住這次費時如此之久,靠著靈光一閃才解決的問題!!!因為是新電腦,所以可能需要從0說起,著急的可直接看後面第四條,僅供參考!!!

一、準備工作

1、安裝ruby:一種簡單快捷的面向物件(面向物件程式設計)的指令碼語言。iMac電腦自帶ruby,此步可省略
檢視ruby版本:ruby -v

2、安裝homebrew,一款軟體包管理工具,擁有安裝、解除安裝等功能,之所以安裝他是因為第三步出現了問題,需要安裝該軟體,才可以繼續,具體的錯誤和原因我也不記得了,該軟體裝了也並無壞處,以後也會用到的

xcode命令列工具:xcode-select --install
安裝homebrew:/bin/bash -c "$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

如果上面報錯,則輸入 git clonehttps://github.com/Homebrew/homebrew-core/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core --depth=1

如果繼續報錯
fatal: unable to access 'https://github.com/Homebrew/homebrew-core/': LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
則輸入brew doctor 即可進行安裝

3、安裝rvm,方便ruby環境進行管理,如升級或更換版本

curl -L get.rvm.io | bash -s stable
source ~/.bashrc
source ~/.bash_profile

以上安裝失敗,報如下錯:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 194 100 194 0 0 162 0 0:00:01 0:00:01 --:--:-- 162
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

解決方法:先修改下host,再進行網路請求
sudo vim /etc/hosts
在開啟的檔案中新增:199.232.28.133 raw.githubusercontent.com
再使用命令:curl -L get.rvm.io | bash -s stable

rvm的其他命令列:
檢視rvm版本:rvm -v
解除安裝rvm:rvm implode
設定ruby的預設版本:rvm use 2.6.3 --default
列出ruby可安裝的版本資訊:rvm list known
安裝某個版本的ruby:rvm install 2.6.3

二、更換ruby源

檢視當前ruby源:gem sources -l
如果沒有源或是.org的源,則需要更換
先移除之前的源:gem sources --removehttps://rubygems.org/
新增新的源:gem sources --addhttps://gems.ruby-china.com/

成功的話會顯示如下內容:

ruby源

三、安裝cocoapods

1、10.11系統以後基本上都用該命令列安裝cocoapods:sudo gem install -n /usr/local/bin cocoapods
這一步完成後執行:pod setup
這一步本身需要很長時間,因為需要進行下載各庫,但我這裡這一步分分鐘就好了,所以我懷疑沒安裝上
檢查是否安裝上了:pod repo
若裡面有內容則代表安裝上了,返回0 repos則沒安裝上

image.png


也可以進入 ~/.cocoapods 檔案檢視repos中的檔案裡是否都有內容

image.png


如果是空的,代表庫沒有下載下來
解決方法:
1、安裝本地的
(1)將https://github.com/CocoaPods/Specs下載到本地,放入repos資料夾,但好像需要進行關聯,自行查詢吧,我這裡網不成,就沒搞
(2)從原來專案中拷貝下來放到repos資料夾中(我採用的該方法)
(3)使用國內源安裝到本地
a、git clonehttps://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git
b、git clonehttps://git.coding.net/CocoaPods/Specs.git~/.cocoapods/repos/master
c、git clone[email protected]:CocoaPods/Specs.git

安裝過程中出現了該錯誤,所以我用c的方法進行了安裝
Warning: Permanently added 'gitee.com,120.55.226.24' (ECDSA) to the list of known hosts
公鑰出問題了,所以重新生成公鑰
git config --global user.name "使用者名稱"
git config --global user.email "郵箱"
搜尋~/.ssh,刪除其資料夾下的known_hosts檔案
ssh-keygen -t rsa -C "郵箱"
然後應該再按下回車,會生成兩個檔案,用記事本開啟id_rsa.pub,複製裡面的內容,再開啟GitHub官網,登入自己的賬號,在setting裡有個ssh and gpg keys ,建立ssh,將內容新增進去,再進行clone就可以了

以上方法我都試過,相對來說c方法比較麻煩,但因為bug一直有,我一直處於刪除,重灌,刪除,重灌的狀態,但我的網又不好,所以就直接使用本地的了
如果出現了以下情況,代表網不好。。。換種方式吧

image.png

四、建立podfile檔案,即標題中問題的最終解決方式

1、如果是已有Podfile檔案的話,需要刪除,刪除的地方有三個,缺一不可
(1)這四個檔案先要刪除

需要刪除的1.png

(2)開啟.xcodeproj,刪除pod

需要刪除的2

(3)target中的general中刪除對應的pod庫

需要刪除的3

2、刪除了以上內容後,重新建立podfile檔案
檔案路徑:cd 專案路徑
建立Podfile : touch Podfile
編輯Podfile : vi Podfile 注意:上面的源用的哪個,該檔案中的第一行就用哪個源
編輯完成後退出 : :wq
安裝Podfile : pod install

3、安裝成功後,執行專案發現還是錯的,此時最關鍵的一步來了
如圖的路徑下

image.png

新增如下內容 VALID_ARCHS x86_64

image.png

搞定!!!這時候專案就執行成功了,其實這是新的系統,新的xcode出現的一個不相容的問題,涉及的是處理器的指令集不相容的問題,新的xcode支援了x86_64,但pod庫中有些內容不支援,所以編譯時會一直報這個錯誤,關於指令集可以自行查閱瞭解

image.png

因為這個而引發出來的後面的各種錯誤:

image.png

或者是framework not found Pods_
或者是afnetworking.h not find之類的,反正意思基本就是pods沒有安裝上

以上是我這裡遇到的問題,僅供參考,如果有更好的解決辦法,可一起探索,歡迎來提出更好的解決方式!!!