Xcode14
以前是默認armv7
和arm64
的, 升級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_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
所以乾脆直接寫命令行腳本去執行打包,這樣就可以不用切來切去的
參考文章