macos catalina起沙箱限制网络访问,需开启“本地网络”权限并配置app sandbox网络能力。检查系统设置中本地网络授权,修改entitlements文件添加network.client/server权限,清理构建后重新编译,同时排查gatekeeper拦截、代理及防火墙干扰。
macos 从 catalina 开始强化沙箱机制,对网络访问实施默认限制。微信开发者工具、flutter macos 应用、自研调试客户端等常因缺少「本地网络」或「网络客户端」权限而报 err_address_unreachable、连接超时或无响应——这不是代理或后端问题,而是系统级访问授权未开启。
✅ 检查并开启「本地网络」权限(适用于微信/字节/钉钉等第三方开发者工具)
这是 macOS Monterey(12.0)及之后版本(包括当前主流的 Sequoia / 15.x)的关键开关:
- 打开「系统设置」→「隐私与安全性」→「本地网络」
- 在应用列表中找到对应工具(如“微信开发者工具”“Tauri Dev Server”“Vite Preview”等)
- 将右侧开关点为蓝色(启用状态);若未列出,先启动一次该工具再回来刷新
- 退出工具并完全重启(右键 Dock 图标 → “退出”,不要仅关窗口)
✅ 配置 macOS App Sandbox 网络能力(适用于 Flutter / Electron / Tauri 等自打包桌面应用)
这类应用需在构建阶段声明网络权限,否则即使用户手动授权也无效:
- 定位到项目目录下的
macos/Runner/DebugProfile.entitlements和Release.entitlements - 添加以下两行(缺一不可):
- 若应用需监听本地端口(如
localhost:3000),network.server必须开启;仅发起请求则只需network.client - 修改后需 Clean Build Folder 并重新编译(Xcode 中 Product → Clean Build Folder)
✅ 补充排查:Gatekeeper 拦截导致工具无法启动或功能异常
部分开发者工具(尤其非 Mac App Store 分发的)首次运行被拦截后,可能静默失败,看似“能打开但连不上”:
- 检查是否弹出过「无法打开“XXX”,因为无法验证开发者」提示
- 若错过弹窗:前往「系统设置」→「隐私与安全性」→ 滚动到底部,点击「仍要打开」按钮(该按钮仅保留约 1 小时)
- 若频繁触发:终端执行
xattr -dr com.apple.quarantine "/Applications/微信开发者工具.app"移除隔离属性(仅限可信来源)
✅ 其他常见干扰项(快速排除)
权限开启后仍失败?顺手确认这几项:
-
代理冲突:关闭系统代理(「系统设置」→「网络」→「详细信息」→「代理」),或确保代理服务本身允许本地环回(
127.0.0.1/localhost) - 防火墙误拦:临时关闭「系统设置」→「隐私与安全性」→「防火墙」测试是否恢复
-
ATS 限制(仅原生 macOS App):若自己开发 Swift/Objective-C 应用且需访问 HTTP 资源,需在
Info.plist中配置NSAppTransportSecurity允许不安全请求(不推荐,优先改用 HTTPS)











