Xcode 12适配更新项目编译报错:AFNetworking关联PhaseScriptExecution非零退出码
Xcode 12 适配后 AFNetworking 编译报错处理方案
报错背景
项目适配升级至 Xcode 12 版本后,编译构建阶段触发异常报错,提示与 AFNetworking 依赖相关的错误:
Command PhaseScriptExecution failed with a nonzero exit code
开发者暂未明确报错具体诱因,排查过程可结合已附上的报错界面截图、项目 Podfile 配置交叉验证。
根因分析
该报错并非 AFNetworking 本身代码逻辑问题,属于 Xcode 12 版本更新后引入的编译规则兼容问题,常见触发场景:
- 本地 CocoaPods 版本过低,未适配 Xcode 12 新增的脚本执行权限规则
- 项目开启了 Use Script Sandboxing 选项,导致 Pod 依赖自带的初始化脚本无项目目录读写权限
- Xcode 12 默认新增 arm64 模拟器架构支持,与旧版 AFNetworking 的预设编译配置冲突
可落地解决步骤
按优先级执行,每步完成后重新编译验证:
- 升级 CocoaPods 至最新稳定版,执行命令:
升级完成后删除项目根目录下的sudo gem install cocoapodsPodfile.lock文件、Pods文件夹,重新执行pod install拉取依赖 - 调整脚本执行权限:
进入项目 Target 配置 -> Build Phases 面板,找到与 AFNetworking 相关的依赖初始化/嵌入脚本,取消勾选脚本配置中的沙箱模式限制,手动为脚本添加可执行权限 - 修正架构兼容配置:
进入项目 Target 配置 -> Build Settings 面板,找到 Excluded Architectures 选项,针对 Debug 模式下的Any iOS Simulator SDK子项,添加arm64排除配置,避免旧版 AFNetworking 不兼容模拟器 arm64 架构 - 校验 Podfile 配置:
检查 Podfile 中 AFNetworking 的版本声明,优先使用适配 Xcode 12 的正式版本,示例配置:pod 'AFNetworking', '~> 4.0'
内容的提问来源于stack exchange,提问作者DenisuDevForFood
相关产品推荐
相关产品推荐

