升级至Watch OS 9后App出现NSURLErrorNotConnectedToInternet错误求助
Watch OS 9 下 NSURLSession 网络连接失败问题排查
一、Watch OS 9 新增的网络访问要求
Watch OS 9 对网络权限管控更严格,以下是必须的配置项:
- 必须在 Watch App 的
Info.plist中添加NSNetworkUsageDescription键,填写清晰的网络使用用途说明(比如“用于获取实时数据”),否则会被 NECP(Network Extension Configuration Policy)拦截,触发你遇到的“Path was denied by NECP policy”错误。 - 若你的 App 是独立 Watch App(不依赖 iPhone 运行),需确保
Info.plist中WKWatchOSApp字典内的WKCompanionAppBundleIdentifier与配对 iPhone 上的主 App Bundle ID 完全匹配,且主 App 已正确配置网络权限。
二、其他可能的排查方向
- NECP 策略冲突:检查 Watch 上是否运行了 VPN、内容过滤类 App,这类应用的网络规则可能会与你的 App 请求路径冲突,导致 NECP 拦截。
- NSURLSession 配置错误:检查你的
NSURLSessionConfiguration配置,确认未错误设置allowsCellularAccess或allowsConstrainedNetworkAccess为NO(即使当前连了 WiFi,配置错误也可能触发网络不可用提示)。 - App 沙箱权限:在 Xcode 的「Signing & Capabilities」面板中,确认 Watch App 的 App Sandbox 已勾选「Outgoing Connections (Client)」权限。
- ATS 配置问题:若你的请求使用 HTTP 而非 HTTPS,需在
Info.plist中配置NSAppTransportSecurity相关规则(比如针对特定域名的例外或全局允许),Watch OS 9 对 ATS 的执行力度比之前版本更严格。 - 配对设备的网络共享问题:若 Watch 依赖 iPhone 共享网络,检查 iPhone 上的主 App 是否有网络权限,同时确认 iPhone 的网络共享功能正常开启。
内容的提问来源于stack exchange,提问作者Ray
相关产品推荐
相关产品推荐

