macOS运行Flutter打包的Release应用报Dio主机查找失败错误如何解决
macOS Flutter Release包网络访问异常修复方案
问题根因
macOS 平台默认启用 App Sandbox 沙箱安全机制,未主动声明的系统权限会被系统拦截禁用。你遇到的域名解析失败报错,是因为 Flutter macOS 构建默认没有开启出站网络访问权限,导致应用无法发起网络请求。
修复步骤
你可以任选以下两种方式之一配置权限,配置完成后重新打包即可生效:
方式1:直接修改权限配置文件
- 打开项目根目录下的
macos/Runner/文件夹 - 找到并分别编辑两个权限配置文件:
DebugProfile.entitlements:调试、Profile 模式生效Release.entitlements:Release 打包模式生效
- 在两个文件的
dict标签节点内添加如下配置:
<key>com.apple.security.network.client</key> <true/>
- 保存文件后重新执行打包命令即可。
方式2:通过Xcode可视化配置
- 用Xcode打开项目下的
macos/Runner.xcworkspace文件 - 左侧导航栏选中
Runner项目,在目标列表中选中Runner - 切换到顶部的
Signing & Capabilities标签页 - 找到
App Sandbox配置区块,在Network分类下勾选Outgoing Connections (Client)选项 - 关闭Xcode后重新执行打包操作即可。
补充说明
如果你的应用需要上架 Mac App Store,该权限属于常规权限声明,仅需在审核时如实填写权限用途即可,不会导致审核受阻。
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

