如何升级iOS构建至iOS 16.1 SDK?解决Xcode 14.2构建错误
解决iOS SDK版本警告(ITMS-90725)及Xcode14.2构建错误
一、在Fastfile、Podfile、Travis.yml中配置iOS 16.1 SDK/Xcode版本
1. Travis.yml
Travis作为CI环境,核心是指定对应Xcode版本(Xcode14.1及以上自带iOS16.1+ SDK),直接在配置里添加:
os: osx osx_image: xcode14.2 # 也可选xcode14.1,两者都包含iOS16.1 SDK xcode_workspace: YourApp.xcworkspace # 替换成你的项目workspace或project路径 xcode_scheme: YourAppScheme # 替换成你的项目scheme名称 xcode_destination: platform=iOS Simulator,name=iPhone 14
指定osx_image后,Travis会自动使用该Xcode版本携带的SDK进行构建。
2. Fastfile(Fastlane)
有两种方式确保用iOS16.1 SDK构建:
- 方式一:直接指定SDK版本
lane :build do build_app( workspace: "YourApp.xcworkspace", scheme: "YourAppScheme", sdk: "iphoneos16.1", # 明确指定iOS16.1 SDK xcode_path: "/Applications/Xcode_14.2.app" # 可选,指定Xcode安装路径 ) end - 方式二:切换到目标Xcode版本
如果本地有多个Xcode版本,用xcode_select切换到14.2版本后再构建:lane :build do xcode_select("/Applications/Xcode_14.2.app") build_app( workspace: "YourApp.xcworkspace", scheme: "YourAppScheme" ) end
3. Podfile
Podfile不直接控制SDK版本,但要确保依赖适配Xcode14.2:
- 确认
platform :ios设置的版本不低于App的最低支持版本,比如:platform :ios, '13.0' - 升级CocoaPods到1.11.3及以上版本(适配Xcode14),然后执行
pod install --repo-update重新安装依赖。
二、解决Xcode14.2升级后的构建错误
1. 未找到本地代码签名身份
- 用Fastlane Match管理签名:如果之前用Match同步签名文件,在构建lane里添加同步步骤,确保CI环境能获取到正确的证书和Profile:
同时在Travis项目设置里添加lane :build do match(type: "appstore") # 根据构建类型选appstore/development build_app(...) endMATCH_PASSWORD环境变量,用于解锁签名仓库。 - 清理密钥链冲突:在Travis构建前添加步骤清理旧密钥链,避免证书冲突:
before_install: - security delete-keychain ios-build.keychain || true - security create-keychain -p travis ios-build.keychain - security default-keychain -s ios-build.keychain - security unlock-keychain -p travis ios-build.keychain - security set-keychain-settings -t 3600 -u ios-build.keychain - 检查项目签名设置:确保Xcode Target的Signing & Capabilities里,要么开启Automatically manage signing(搭配Match),要么手动指定正确的Provisioning Profile。
2. 错误可能由使用错误版本的Xcode导致
- 确认Travis.yml的
osx_image是xcode14.2,不要和旧版本混用; - 在Fastlane里用
xcode_select明确指定Xcode路径,避免系统默认版本不对; - 构建前验证Xcode版本:在Travis的
before_install里添加检查步骤,确认当前使用的Xcode版本:before_install: - xcodebuild -version # 输出Xcode版本,确认是14.2
内容的提问来源于stack exchange,提问作者s-hunter
相关产品推荐
相关产品推荐

