升級Xcode14之後如何打出帶有armv7架構的SDK包

Xcode14以前是默認armv7arm64的, 升級Xcode之後就被蘋果這廝移除了, 所以答案是Xcode14是打不出來armv7的包的,

因爲某些資本家的理念: 寧可兼容到每一個古董機型,也不允許放走一個潛在的客戶~

雖然蘋果升級的很快而且支持最低系統版本已經到iOS 11.0起步了,作爲卑微的打工人👷🏻‍♂️ 所以只能通過下載舊版的Xcode去編譯兼容了

Xcode14直接編譯則報錯如下:

warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 7.0, but the range of supported deployment target versions is 11.0 to 16.0.99.
error: The armv7 architecture is deprecated. You should update your ARCHS build setting to remove the armv7 architecture. (in target 'xxxKit' from project 'xxxKit')

解決方案:

MacOS 12.5 已經裝了AppStore最新版本的Xcode14

再下載個Xcode13或者Xcode12去打包

下載舊版Xcode

下載了一個 Xcode_12.4.xip,解壓之後打開提示如下:

#免去解壓前的認證過程 先執行下然後雙擊點開
xattr -d com.apple.quarantine Xcode_12.4.xip

安裝在此Mac上的Xcode版本與macOS Monterey不兼容。 從App Store免費下載最新版本

無法直接點擊圖標打開,只能通過命令行去操作

~/Desktop/MacTools/Xcode.app/Contents/MacOS/Xcode

切換Xcode

#解壓後重命名爲xcode12拖到應用程序目錄下(不重命名的話會與AppStore下載的衝突覆蓋)
sudo xcode-select -s /Applications/Xcode12.app

SDK打包採用命令行執行即可,默認xcodebuild 都是會走切過之後的

大部分命令行工具都在/Applications/Xcode12.app/Contents/Developer/usr/bin 目錄下

所以就算是不切換Xcode也可以直接調用只是需要補全命令的全路徑, 因爲切換之後路徑存在某個環境變量裏就是全局的,所以可以省去前面的路徑

/Applications/Xcode12.app/Contents/Developer/usr/bin/xcodebuild -configuration Release -scheme BuildSDKScript -sdk iphoneos  -workspace xxxKit.xcworkspace;

Xcode14走的是iphoneos16.0 Xcode12.4走的是 iphoneos14.4

一點 小Tips:

如果開發中只會用到Xcode14 , 只有打包的時候纔會用Xcode12 所以乾脆直接寫命令行腳本去執行打包,這樣就可以不用切來切去的

參考文章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章