如何在本地构建Flutter应用?自行使用时存储相关功能失效如何解决?
问题解答
你遇到的问题和构建流程、产物路径无关,本质是macOS平台默认的应用沙箱权限限制导致所有存储相关接口无法正常调用。下面逐个对应你的疑问解答:
- 构建流程:仅本地自用不需要走官方的发布签名、公证流程,
flutter build macos已经是完整的Release构建操作,无需额外修改构建步骤。 - 产物路径:你找到的
build/macos/Build/Products/Release/nameofmyapp.app是Release构建产物的正确路径,不存在路径查找错误的问题。 - 权限配置:Flutter默认生成的macOS项目开启了应用沙箱限制,且默认未授予文件读写、用户文件选择的权限,需要你手动修改项目配置开启对应权限,这是macOS平台的标准要求,不属于Flutter框架自动处理的范畴。
具体操作步骤
- 进入你项目的macos目录,双击打开
Runner.xcworkspace文件(必须用Xcode打开) - 在左侧项目导航栏选中顶层的Runner项目,在右侧编辑区的TARGETS列表中选中Runner,切换到「Signing & Capabilities」标签页
- 找到「App Sandbox」板块,在下方的File Access配置项中做如下修改:
- 若需要直接访问Documents目录,将Documents对应的权限选项改为「Read/Write」
- 将「User Selected File」对应的权限选项改为「Read/Write」,保证文件选择器可以正常弹出、读取用户选中的文件
- 保存配置后重新执行
flutter build macos,新生成的应用即可正常调用所有存储相关接口。
内容的提问来源于stack exchange,提问作者Andrea
相关产品推荐
相关产品推荐

