ios - 从 iOS 14 或 14.0.1 开始 WiFi 可以工作,但 LTE 不能

标签 ios networking cloudkit ios14 lte

我正在开发一个使用 CloudKit 的应用程序,并且一直运行良好。将 iPhone 升级到 iOS 14.x 后,它可以继续使用 WiFi,但使用 LTE 时,它不再完成 CKFetchDatabaseChangesOperation。我可以重新打开 WiFi,一切正常,切换到 LTE 并挂起 CKFetchDatabaseChangesOperation。我什至可以使用 LTE 启动,它挂起,在运行应用程序时切换到 WiFi,它会正常完成操作。

任何人都可以帮我弄清楚这是我的代码中的某些内容还是 iOS 错误吗?

我已经检查了 xCode 12 iOS 14.x 之前的两个副本,并且发布后两者的行为都表现得同样奇怪?

最佳答案

我会检查一些事情。

== 1 ==

首先,确保您的应用已开启蜂窝数据:

设置 > 蜂窝网络 > [您的应用]

== 2 ==

要检查的第二件事是将您的操作设置为具有更高的优先级。它可能实际上正在工作,但速度非常慢。

let operation = CKFetchDatabaseChangesOperation()
  
//Set these...
operation.qualityOfService = .userInitiated
operation.queuePriority = .veryHigh

...

iCloud 可能会延迟数据传输,以免使用过多的蜂窝数据。

关于ios - 从 iOS 14 或 14.0.1 开始 WiFi 可以工作,但 LTE 不能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64104512/

相关文章:

networking - 联网系统 - "blocking"和 "non-blocking"协议(protocol)有什么区别?

java - 尝试打开与 http URL 的连接时出现 IOException

c++ - 套接字心跳与保活

ios - 你能在不同的应用程序之间共享 CloudKit 上的数据吗

ios - 在 CloudKit 开发环境中使用 TestFlight

iphone - 使用什么样的标签

iPhone SDK 日期格式

ios - 过滤器在 ios 中不起作用

iphone - 如何在项目中实现UIPageController

ios - 禁用 CloudKit 调试日志