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

Flutter桌面MacOS端无法在项目文件夹外创建目录如何解决

问题根因

MacOS 对桌面应用默认开启 App Sandbox 沙箱隔离规则,即便你已经给 VSCode、终端授予了全磁盘访问权限,你编译运行的 Flutter 桌面应用本身是独立的运行进程,沙箱限制会直接禁止它访问项目目录外的路径,这是触发权限报错的核心原因。

解决方案步骤
  • 调整应用权限配置
    找到 Flutter 项目 macos 目录下的 Release.entitlements、DebugProfile.entitlements 两个配置文件,按需修改权限规则:
    1. 仅本地自用/企业分发无需上架 App Store 可以直接关闭沙箱,将配置中 com.apple.security.app-sandbox 对应的布尔值改为 false
    2. 需要保留沙箱的场景,添加对应路径的访问权限:
    <!-- 允许读写用户主动选择的任意路径 -->
    <key>com.apple.security.files.user-selected.read-write</key>
    <true/>
    <!-- 允许读写用户主目录下指定路径 -->
    <key>com.apple.security.files.home-relative-path.read-write</key>
    <string>/Users/test/</string>
    
  • 给应用授予系统级全磁盘访问权限
    打开 Mac 系统设置→安全与隐私→隐私→完全磁盘访问权限,解锁后点击+号,找到编译生成的应用文件(默认路径为项目下 build/macos/Build/Products/Debug/你的应用名.app 或 Release 对应路径),添加并勾选权限。
  • 重新编译运行
    执行 flutter clean 清理旧缓存后,重新运行 flutter run -d macos 测试目录创建逻辑即可。

提示:如果需要上架 App Store,不能直接关闭沙箱,需严格按照苹果审核规则申请对应的权限条目,避免审核被拒。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:45:03