背景:? 為了適配 iOS 14的 一些新特性, Xcode 工具 需要更新 至最新的 Xcode12 , 由于 電腦空閑內(nèi)存空間不夠,清理了大量的Flutter 編譯產(chǎn)物.騰出內(nèi)存空間 安裝Xcode12 .
問題: 更新 Xcode 12 后, Xcode 工具 會默認 修改? 之前Xcode11 的 一些工程 編譯配置,最后導(dǎo)致編程 找不到相關(guān)庫 的編譯路徑. (Flutter? 項目 遇到的, 純原生項目 暫時未知)
比如 : 這個常見的 網(wǎng)絡(luò)庫AFNetworking 編譯找不到
? (這個庫 實際上 通過 cocoapods ?已經(jīng)下載安裝 成功,也編譯成 功了,但是 Flutter 產(chǎn)物 鏈接 這個庫時,找不到路徑,手動指定 路徑發(fā)現(xiàn)不生效, 因為 Flutter 工程 是通過 自己的編譯 配置文件 查找路徑的)
因為 上面的一些庫鏈接 不成功,所以 Flutter 產(chǎn)物自然生成 不了.
根本原因: (編譯配置文件 被 Xcode12 修改了)
錯誤的 編譯配置(如下):
正確的 編譯配置
如果 指定 正確的 編譯配置文件 后,還是 編譯不成功.
很大原因是? 上面的配置文件本身有問題,
因為上面的 編譯配置文件是 在 flutter build ios 這個命令 自動生成的
解決辦法:?
方法一:? Flutter 產(chǎn)物 這個文件夾下 所有產(chǎn)物以及 配置文件刪除掉.? 然后重新執(zhí)行 Flutter build ios 這個命令生成產(chǎn)物.
方法二: 放棄 上面整個 倉庫工程代碼,以及相關(guān)的編譯殘留配置.?
?? 從新拉取分支代碼,然后,按上面正確的工程配置,指定編譯文件,從新編譯產(chǎn)物.
?? (這個方法是牛逼中的戰(zhàn)斗機,可以解決莫名其妙的一些編譯報錯)
第二個 "坑"
報錯:Showing All Messages
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=arm64, VALID_ARCHS=armv64 arm64e x86_64? armv7).
原因: 升級 Xcode 12 后, Flutter 產(chǎn)物依賴的一些第三方 庫,的CPU 架構(gòu) 不對. 會導(dǎo)致模擬器無法運行,(Xcode 11 這些 配置其實之前有的,我這邊因為是 直接更新Xcode12,導(dǎo)致部分配置不對)
解決方法:
?看圖 配置,
1.Build Setting? —> 搜索? VALID_ARCHS ,?
?2. 對應(yīng)寫上? armv64 arm64e x86_64 ,就OJBK 了.
吐血總結(jié):
?記得千萬不要直接 在 APPStore 直接升級 Xcode, 因為這么升級是 直接頂替 掉舊版Xcode 的,這樣很容易導(dǎo)致之前的項目編譯配置不正常. 被新Xcode 從新組織配置了.
最保險升級Xcode 的方法 應(yīng)該是?
? 在官方蘋果 網(wǎng)站 下載安裝包, 然后 再安裝 Xcode12? , 這樣的話 電腦上 同時保留著 新舊 2個 Xcode , 方便升級過程中 有問題,直接在舊Xcode 處理臨時緊急問題.
?為什么沒這么干呢?? 因為電腦內(nèi)存空間嚴重不足(高清大片太多),難以同時支撐 2 個Xcode? 這么龐大的 家伙.
(說到底,還是人窮志短,沒法裝逼…)
搞完 成功 !!!?
尼瑪,真香!!!
特別鳴謝,金興大佬全程指點迷津!!!