iOS 13.2 消息:nehelper 为 Wi-Fi 信息请求发送了无效的结果代码 [1]

Posted

技术标签:

【中文标题】iOS 13.2 消息:nehelper 为 Wi-Fi 信息请求发送了无效的结果代码 [1]【英文标题】:iOS 13.2 message: nehelper sent invalid result code [1] for Wi-Fi information request 【发布时间】:2020-03-06 12:44:46 【问题描述】:

我的应用在后台使用定位服务进行跟踪和地理围栏。

现在使用 ios 13.2,我每秒都会在控制台中看到以下消息:

Anchorwatch nehelper sent invalid result code [1] for Wi-Fi information request

我的应用对 WiFi 系统没有任何作用,当我在设备上禁用 WiFi 时,消息消失。

虽然该消息似乎没有负面影响,但我很难理解忽略消息可能是一个坏主意。

谁能提示我为什么会出现这条消息以及我可以做些什么来抑制它?

【问题讨论】:

【参考方案1】:

我已经设法在 iOS 13.3 上实现了。这是我的制作方法。 (2020 年 8 月编辑:我已经在 iOS 13.6 上对此进行了测试并且工作相同)

CNCopyCurrentNetworkInfo 的官方documentation 表示该功能是提供应用程序当前连接的真实SSID/BSSID

拥有“访问 WiFi 信息授权”(请参阅​​here)和 是 1) 核心位置、2) 使用 NEHotspotConfiguration 连接当前 Wi-Fi 网络和 3) *** 应用程序之一。

我已经配置了“访问WiFi信息权限”,所以只满足第一个要求。它适用于 iOS 13.1,但不适用于 iOS 13.3。为了满足后一个要求,我决定在我的 APP 中包含核心位置。我已经检查了here 中的代码,但我必须在我的应用程序的 Info.plist 中添加一些常量以避免错误。

    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
    <string>Application requires user’s location for better user experience.</string>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>Application requires user’s location for better user experience.</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Application requires user’s location for better user experience.</string>

我也需要打电话

manager.requestWhenInUseAuthorization()

之前

manager.requestAlwaysAuthorization()

在用户首次启动应用时弹出对话框。

用户需要在首次启动时允许该权限。如果允许为“始终”,则应用可以正常使用 CNCopyCurrentNetworkInfo。

【讨论】:

【参考方案2】:

最终结果是,我的应用使用的第三方框架启动了对 CNCopyCurrentNetworkInfo 的调用。

在我将here 描述的 WiFi 访问功能添加到应用程序本身后,错误消息消失了

【讨论】:

【参考方案3】:

查看 WWDC 19 session 713,发生这种情况是因为在 iOS13 中,为了获取 WiFi 详细信息,您应该允许位置权限,每次您尝试从 CNCopySupportedInterfaces 数组中提取 CNCopyCurrentNetworkInfo 数据时,您都会收到此日志。

愚蠢的解决方案可能是尝试启用位置权限,您将不会再收到此错误

【讨论】:

是的,我知道。但是我的应用程序确实已经使用了位置服务,因此当然具有位置权限。我的应用没有直接调用 networkinfo,但似乎是位置服务。 就我而言,在我授予位置权限后它工作正常!

以上是关于iOS 13.2 消息:nehelper 为 Wi-Fi 信息请求发送了无效的结果代码 [1]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Firebase 登录 iOS 13.2 的导航/Segue

无法调用选择器和手势委托 iOS 13.2

应用程序因 iOS 13.2 中的 cpu 使用而终止

SwiftUI 表单 TextField 在 iOS 13.2 中的普通 UINavigationViewController 中包装时消失

collectionView iOS 13.2 中的 UILongPressGestureRecognizer 位置功能问题

Xcode 不断提供 .signUp 仅在 iOS 13.2 中可用。这是一些 Xcode 错误吗?