Xcode 15 Beta运行脚本无法访问.git/HEAD和Info.plist的解决咨询
解决Xcode 15.0 Beta中脚本无法访问.git文件与Info.plist的沙箱权限问题
Xcode 15.0 Beta对构建脚本的沙箱权限管控进行了收紧,导致原有的git/PlistBuddy操作脚本触发权限拒绝。可以通过以下几种方式解决:
将脚本移至预构建阶段执行
原脚本如果是在Build Phases的Run Script中执行,会受到严格的沙箱限制。切换到Pre-build Actions可规避此问题:- 打开项目Scheme,选择「Edit Scheme」
- 切换到Build标签,展开Pre-actions
- 添加新的Run Script,粘贴原脚本内容
- 在「Provide build settings from」下拉框中选中你的目标项目,确保环境变量正常加载
使用Xcode环境变量替代相对路径
脚本中避免使用相对路径,改用Xcode提供的绝对路径变量:- 访问.git文件:用
${SRCROOT}/.git/HEAD替代自定义相对路径 - 访问Info.plist:用
${INFOPLIST_FILE}或${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}来定位文件
- 访问.git文件:用
临时关闭脚本沙箱限制(不推荐正式环境)
若上述方法无效,可临时关闭沙箱管控:
在项目Build Settings的User-Defined中添加键ENABLE_USER_SCRIPT_SANDBOXING,设置值为NO。注意此方法会降低构建安全性,仅用于测试场景,正式发布前务必恢复。
内容的提问来源于stack exchange,提问作者Reinhard Männer
相关产品推荐
相关产品推荐

