CoderWGB

V1

2022/10/23阅读:378主题:橙心

升级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 https://developer.apple.com/download/more/

下载了一个 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 所以干脆直接写命令行脚本去执行打包,这样就可以不用切来切去的

参考文章

高版本 MacOS 系统安装旧版 XCode 提示版本过低请前往 Apple Store 下载的解决方法_Atom丶pro的博客-CSDN博客_macos版本低下不了xcode https://blog.csdn.net/prokgtfy9n18/article/details/126049669

分类:

移动端开发

标签:

IOS

作者介绍

CoderWGB
V1