Mac连接VPN时iOS模拟器启动ReactNative应用出现Access Denied报错
Mac连接VPN时iOS模拟器运行React Native项目Access Denied报错解决方案
报错提示:Access Denied (policy_denied)
该问题的核心原因是Mac连接VPN后,系统全局代理规则被改写,iOS模拟器默认继承Mac的代理配置,React Native本地调试服务(默认端口8081)的流量被VPN安全策略拦截。真机调试走USB/本地局域网通道,不受Mac代理规则影响,因此运行正常。
以下是可直接落地的解决方案:
- 方案1:修改iOS模拟器代理规则
打开运行中的模拟器,点击顶部菜单栏Features→Network→Proxy Settings,关闭自动代理相关选项,在「绕过代理设置」输入框中添加localhost,127.0.0.1,*.local,保存后重启模拟器和应用即可。 - 方案2:强制指定RN调试服务器地址
模拟器内摇一摇调出RN调试菜单,选择Settings→Debug server host & port for device,手动输入127.0.0.1:8081后重启应用。也可以在Xcode项目的Build Phases→Bundle React Native code and images脚本中新增export RCT_PACKAGER_HOSTNAME=127.0.0.1配置,永久生效。 - 方案3:修改Mac VPN路由规则绕过本地流量
打开终端执行networksetup -listallnetworkservices查看当前VPN对应的接口名称,再执行sudo networksetup -setadditionalroutes <你的VPN接口名> 127.0.0.1 255.255.255.255 127.0.0.1,该配置可保证本地服务流量不会走VPN通道。 - 方案4:调整VPN客户端分流规则
打开VPN客户端设置,找到「路由模式」「分流规则」选项,开启「绕过局域网地址」「仅代理指定区域流量」类开关,保存后重连VPN即可。
以上方案执行后无需重新安装node依赖或pod库,直接启动应用验证即可。
内容的提问来源于stack exchange,提问作者tamtoum1987
相关产品推荐
相关产品推荐

