[iOS]Xcode15.1编译报错Command PhaseScriptExecution failed with a nonzero exit code

本文介绍了在使用Xcode15.1打包或编译时遇到的CommandPhaseScriptExecutionfailed错误,提供了解决方案,包括修改source路径为$(readlink-f)以及针对Xcode15.2中Sandbox问题的处理。升级到Xcode15.3后,需关闭UserScriptSandboxing以避免新错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Xcode 15.1打包或者编译时,报错Command PhaseScriptExecution failed with a nonzero exit code.

方法一:
在项目中搜索

source="$(readlink "${source}")"

修改为

source="$(readlink -f "${source}")"

升级Xcode 15.3后, Xcode已经默认修改source="$(readlink -f "${source}")"了, 直接参考下方的链接, 关闭User Script Sandboxing即可.

方法二:
升级Xcode 15.2, 升级后这个错误就没了,可是会有新的错误.

 Sandbox: rsync(xxxx) deny(1) file-write-create

在这里插入图片描述

解决方法参考文章:[iOS]Xcode 15.2 Sandbox: rsync(xxxx) deny(1) file-write-create

### iOS gameAssembly Command PhaseScriptExecution Failed with a Nonzero Exit Code 当遇到 `Command PhaseScriptExecution failed with a nonzero exit code` 错误时,这通常意味着构建过程中某个脚本执行阶段出现问题。对于特定于 `gameAssembly` 的情况,可能涉及多个方面的原因。 #### 可能原因分析 1. **环境配置不一致** 如果项目的依赖项或工具链版本与当前 Xcode 版本不符,可能会导致此类错误。确保所有使用的库和框架都兼容当前的 Xcode 和 Swift 编译器版本[^2]。 2. **权限问题** 构建过程中的某些操作可能需要更高的文件系统访问权限。确认项目目录及其子文件夹具有适当的读写权限[^3]。 3. **第三方库集成不当** 对于游戏开发而言,尤其是涉及到 Cocos2d-x 或 Unity 这样的引擎时,如果这些外部资源未正确导入或链接,则可能导致此错误。检查并更新 Podfile 中的相关设置以及任何自定义脚本[^1]。 4. **Shell Script 设置有误** 查看 Build Phases 下面的 Run Scripts 部分是否有语法错误或其他逻辑缺陷。特别是那些用于处理 asset bundle、代码混淆或者其他预处理工作的 shell 命令。 5. **缓存残留影响** 清理 Derived Data 文件夹可以有效排除因旧数据干扰而引发的新问题。通过菜单栏选择 Product -> Clean Build Folder 来清除不必要的中间产物。 6. **架构支持冲突** 确认 Target Settings 中 Architectures 字段下的值是否合理,避免 armv7/8 vs x86_64 之间的矛盾引起的问题。 #### 实际解决方案建议 针对上述提到的各种可能性,采取以下措施有助于解决问题: - 更新 CocoaPods 并重新安装依赖包: ```bash pod repo update && pod install ``` - 修改 Scheme 设置以禁用 Parallelize build option,在编辑 scheme 后保存更改再尝试重建工程。 - 审查所有的 Shell scripts, 尤其注意路径变量 ($PATH) 是否指向正确的 SDK 工具位置;必要时调整 PATH 环境变量声明顺序。 - 使用命令行参数 `-UseModernBuildSystem=0` 强制回退到传统构建模式测试效果如何。 - 若仍无法定位具体成因,考虑创建一个新的空白项目逐步迁移现有功能模块过来排查潜在隐患所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值