Dev方案Pipeline运行正常,UAT方案在Azure DevOps中报退出码65失败
解决Azure DevOps UAT Pipeline编译错误:找不到
RCTAppDelegate.h(退出码65) 核心问题分析
Dev方案构建正常但UAT失败,说明问题出在UAT方案的配置或Pipeline执行流程差异上,核心是编译阶段无法定位React Native的RCTAppDelegate.h头文件,导致xcodebuild进程退出码65。
针对性修复步骤
1. 确保UAT方案的Pod依赖正确安装
Dev环境依赖正常,但Pipeline中UAT可能未正确执行pod安装,或安装目标不匹配:
- 在iOS构建步骤前添加指定UAT方案的pod安装命令:
cd ios && pod install --project-directory=. --scheme UAT - 若启用了CocoaPods缓存,直接禁用缓存重新安装,避免旧依赖残留。
2. 同步UAT与Dev的头文件搜索路径
打开Xcode项目,对比Dev方案,检查UAT方案的Build Settings -> Header Search Paths:
- 确认包含React Native核心头文件路径,例如
$(SRCROOT)/Pods/Headers/Public/React-Core - 勾选路径的Recursive选项,确保递归搜索子目录
- 把Dev方案中存在、UAT缺失的路径全部同步添加
3. 修正AppDelegate.h的导入语句
避免使用相对路径导致UAT环境下路径失效:
- 将导入语句改为标准框架导入:
#import <React/RCTAppDelegate.h> - 若使用自定义路径,确认该路径在UAT方案的目录结构中存在
4. 清理Pipeline构建缓存与衍生数据
Azure DevOps缓存可能导致环境不一致:
- 在Pipeline中添加清理步骤:
rm -rf ~/Library/Developer/Xcode/DerivedData cd ios && rm -rf Pods Podfile.lock - 执行清理后重新安装依赖并触发构建
5. 对齐Dev与UAT的React Native版本
检查版本一致性:
- 查看
package.json中react-native版本,确保UAT未单独指定不同版本 - 确认Pipeline中npm依赖安装步骤未针对UAT做差异化版本处理
6. 排查UAT方案的构建脚本差异
对比Dev与UAT的Build Phases:
- 查看UAT是否有额外脚本删除/修改了React Native依赖文件
- 确保所有构建脚本的执行路径在UAT环境下与Dev一致
内容的提问来源于stack exchange,提问作者BlessySaini
相关产品推荐
相关产品推荐

