
现在我正在开发一个独立的 Watch App 应用,但是我发现在模拟器上调试时是可以正常连接网络的。但是当我上传到真机时,就会出现无网络连接的问题。具体的报错如下:
2021-11-20 21:42:27.156338+0800 wTodo WatchKit Extension[1068:2225475] PDTask <29C198EA-480A-459F-B5B9-421D9C26C7D8>.<3> finished with error [-1009] Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={_NSURLErrorFailingURLSessiOnTaskErrorKey=LocalDataPDTask <29C198EA-480A-459F-B5B9-421D9C26C7D8>.<3>, NSLocalizedDescription=The Internet connection appears to be offline., _kCFStreamErrorCodeKey=50, _NSURLErrorRelatedURLSessiOnTaskErrorKey=( "LocalDataPDTask <29C198EA-480A-459F-B5B9-421D9C26C7D8>.<3>", "LocalDataTask <29C198EA-480A-459F-B5B9-421D9C26C7D8>.<3>" ), NSErrorFailingURLStringKey=https://baidu.com, _kCFStreamErrorDomainKey=1, NSErrorFailingURLKey=https://baidu.com} Apple Watch S7
系统版本: 8.1
网络环境: WIFI
我应该要如何解决这个问题呢?我已经翻找过 Google 和 Apple 的开发者论坛了,也只是找到一个相同问题,但没有解答,有点烦。https://developer.apple.com/forums/thread/664816?login=true
1 7gugu OP 问题解决了,但没完全解决。 可以确定的是,这是一个系统级别的 Bug 。由于 GPS 版 AppleWatch 用户不能在控制 Apple Watch 上面的独立应用的网络权限,因此默认是关闭状态的独立应用,将无法联网使用。 现在只能给出两种临时的解决方法: 1. 彻底关闭手机 该方法是为了让 Apple Watch 不去同步手机的网络设置(默认关闭网络),促使独立应用能够正常联网,但该方法仅适用于网络连接少或者无的独立应用,比如小说、阅读器等。 2. 开发 iOS 配套应用 如果 iOS 侧有配套应用,则用户就可以在 iOS 侧对应用的网络权限做控制,进而实现 Watch 侧应用联网,该方法适合对于网络请求较多的应用。 PS:这个 Bug 的出现真的是很无语,花了我一整天的时间才解决,心累啊。 |
2 tangzhiyong 2023-06-07 22:22:29 +08:00 wo 我也遇到这个问题, 跟你说的情况一样, 关手机就可以了, 无语 |
3 7gugu OP @tangzhiyong 没辙,反馈了也不修复。现在只好开发 App 的时候再开发多一个 iOS 的 App 来解决这个问题。 |
4 ResistanceTo 11 天前 嗨~我最近在开发一款仅 Apple Watch 的程序,我也遇到了这个问题。我找到了这里和你的博客,我看到你在博客中有提到 iOS17+已经能够解决此问题。我的手机和手表都是 26.0 ,但是没有在 “蜂窝网络” 中看到 “仅用于手表的 APP” 的选项,请问是设备问题吗?我是一个国航手机+美版蜂窝手表。 |
5 7gugu OP @ResistanceTo 这个我也不确定,当时我的设备是国行手机+国行手表。升级到 26 后,苹果给手表也加上允许蜂窝使用就没这个问题了。 |
6 ResistanceTo 9 天前 @7gugu 好的~调研了很多资料,感觉最合适的办法就是套一个 iPhone 的壳了。iPhone 的这个设置有些人能出现有些人无法出现。 |
7 7gugu OP @ResistanceTo #6 是的,最好是做一个 iOS 的入口 App ,这样子就保证能设置到网络问题,而且低版本 18 以下也不会有兼容问题。 |