React Native+Fastlane在CircleCI构建iOS Archive失败及默认Xcode设置问题
问题解答
1. 构建失败的根源判断
退出状态码65是Xcode构建过程中自定义Run Script脚本执行出错的典型标识,大概率和Fastlane本身无关,更偏向CircleCI环境或项目构建配置的问题:
- Fastlane只是封装调用Xcode的
xcodebuild命令触发Archive流程,本身不会直接导致Run Script失败,除非你的Fastlane Lane里有额外修改构建环境的逻辑,但你切换Xcode版本后问题依旧,基本可以排除Fastlane的问题。 - 可能的CircleCI环境相关原因:
- Xcode13.0.0的CircleCI镜像可能被更新移除了部分依赖(比如旧版本的CocoaPods、Node.js),导致原本正常的脚本现在找不到依赖工具
- 切换到Xcode13.4.1后,环境变量、工具路径(比如
pod、node的全局路径)和旧版本Xcode的镜像不一致,Run Script里的命令找不到对应工具 - 两个Xcode版本共存时,默认Xcode的
xcodebuild版本和你指定的版本不匹配,导致构建参数冲突
2. 将Xcode13.4.1设置为默认版本的方法
在CircleCI的config.yml配置里,有两种可靠的方式:
方式一:直接用xcode-select命令切换
在构建job的steps里,先切换默认Xcode版本,再执行Fastlane命令:
jobs: build-ios: macos: xcode: 13.4.1 steps: - checkout - run: name: Set default Xcode to 13.4.1 command: sudo xcode-select -s /Applications/Xcode_13.4.1.app/Contents/Developer - run: fastlane ios archive
注:先确认CircleCI镜像里Xcode13.4.1的实际路径,可通过ls /Applications/命令查看,通常命名为Xcode_13.4.1.app
方式二:使用CircleCI Xcode Orb(更简洁规范)
如果你的配置里已经引入了Xcode Orb,直接指定版本即可自动设置为默认:
orbs: xcode: circleci/xcode@2.0.0 jobs: build-ios: executor: xcode:13.4.1 steps: - checkout - run: fastlane ios archive
内容的提问来源于stack exchange,提问作者crystal_17
相关产品推荐
相关产品推荐

