You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级macOS Sonoma后Xcode构建Ionic iOS项目遇Sandbox权限错误

解决Ionic iOS项目在Xcode 15.3 + Appflow构建时的Sandbox权限错误

问题重现

升级到macOS Sonoma 14.4.1后,使用Xcode 15.3构建Ionic iOS项目时出现沙箱权限错误:

Sandbox: bash(2538) deny(1) file-read-data /Users/.../ios/App/Pods/Target Support Files/Pods-App/Pods-App-frameworks.sh

本地修改User Script Sandboxing为No可正常构建,但Ionic Appflow构建同一提交版本时仍报错。

解决方案

1. 通过Podfile钩子强制关闭所有Pods Target的沙箱限制

由于pod install会自动生成并覆盖Pods Target的构建配置,仅修改主项目设置无法同步到Appflow环境,需在Podfile中添加Post-install钩子:

  • 打开ios目录下的Podfile
  • 在文件末尾添加以下代码:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['USER_SCRIPT_SANDBOXING'] = 'NO'
    end
  end
end
  • 执行pod install更新配置
  • 提交修改后的Podfile和Podfile.lock到版本库

2. 持久化主项目的User Script Sandboxing设置

确保主App Target的沙箱限制也被关闭:

  • 用Xcode打开ios/App/App.xcodeproj
  • 选择主App Target,进入Build Settings
  • 搜索User Script Sandboxing,将其值改为No
  • 保存项目,提交project.pbxproj文件到版本库

3. 清理Appflow构建缓存

Appflow的缓存可能导致旧配置残留,操作步骤:

  • 登录Ionic Appflow后台,进入对应项目的构建页面
  • 找到失败的构建任务,选择Clean Cache后重新触发构建
  • 确认构建步骤中包含pod install命令(默认Ionic构建流程已包含)

原因说明

Xcode 15+默认开启了User Script Sandboxing,对脚本文件的读取权限进行严格限制。本地修改仅作用于本地Xcode配置,但Appflow构建环境会重新执行pod install生成Pods配置,若未通过Podfile钩子持久化设置,Pods Target的沙箱限制会被重新开启,导致权限错误。

内容的提问来源于stack exchange,提问作者Patrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 23:42:15