设备锁定时的iOS 11信标检测问题

时间:2017-11-20 07:06:42

标签: ios objective-c bluetooth core-location ibeacon

我正在开发beacon应用程序,我正在使用Kontkat.io beacon。应用处于前台和后台时,信标监控(进入/退出事件)正常工作。

在iOS 11中,app处于前台时工作正常,但是当设备被锁定时,信标检测将停止,并且不会进入/退出事件。如果设备屏幕已锁定或应用程序处于后台,我已使用较低的iOS 11版本及其触发器进入/退出事件进行检查。这是iOS 11的限制还是我错过了什么?

注意:
 我在info.plist中添加了NSLocationAlwaysAndWhenInUseUsageDescription。

2 个答案:

答案 0 :(得分:0)

转到设置 - >应用程序 - >权限并确保"始终"已经授予了位置权限,而不仅仅是在使用时#34;。

除了info.plist中的NSLocationAlwaysAndWhenInUseUsageDescription之外,还要确保您有一个NSLocationWhenInUseUsageDescription字符串。这两者都是iOS 11所必需的

如果您之前使用XCode 8进行构建和安装,也可能需要卸载并重新安装。确保您看到权限对话框并选择" always"选项。

答案 1 :(得分:0)

我不确定这是一个答案,更多我的发现包含可能的答案。

我也在不同的设备和不同的设置上看到了这个问题。

我发现如果我有一个完全"新鲜" iPhone没有从iCloud备份恢复,也没有登录到iCloud帐户,它将起作用。如果我从链接到我的iCloud帐户的iCloud备份恢复相同的设备,它就不起作用。

我已在多台设备上多次完成此操作,使用我的iCloud帐户结果相同。

我已经尝试过与其他人的iCloud帐户相同的测试(以及从他们拥有的iCloud备份中恢复iPhone),而且似乎并非在所有iCloud帐户中都发生过。

当我似乎能够通过关闭" iCloud Backup"来解决这个问题时,我认为我已经接近了解决方案。但这似乎只是巧合。

尝试在"新鲜"上运行您的应用iOS设备,看看会发生什么。