1

背景

我有一个 iOS 应用程序,它在后台扫描 BLE 设备。在我更新到 iOS12 之前它运行良好。这就是我所拥有的:

  1. 应用程序配置为在后台运行(例如 .plist 中的位置和蓝牙中心键)
  2. 应用程序应该在后台连续运行,扫描外围设备。不要将这与背景提取相混淆,后者是一个不同的用例。
  3. 应用程序连接到外围设备。它只读取广告数据包。
  4. 应用程序在后台运行几个小时后被暂停。
  5. 应用程序在被带到前台时恢复正常运行
  6. 应用程序在 iOS 11 中正常运行。更新到 iOS 12.x 后开始出现问题

我将日志消息放在 App Delegate 方法中。我看到的最后一件事是应用程序进入后台状态。我从来没有看到对 的调用applicationWillTerminate(),因为它仅在应用程序位于前台时才调用。

我已经看到其他帖子(例如iOS 12 无缘无故地在后台终止应用程序)与位置堆栈的类似行为。使用帖子作者编写的测试应用程序,我验证了该问题已在 iOS 12 中针对定位服务进行了修复。但是BLE问题仍然存在。

有没有人找到解决这个问题的方法?

提前致谢。

4

0 回答 0