【问题标题】:iCloud Sync does work on iPhone & Mac but not on iPadiCloud Sync 可以在 iPhone 和 Mac 上运行,但不能在 iPad 上运行
【发布时间】:2021-04-27 02:25:09
【问题描述】:

我发现 iCloud 同步有一个奇怪的问题。

情况:我使用 SwiftUI 开发了一个 iOS、iPadOS 和 macOS 应用程序。所有三个版本共享相同的代码库(macOS 版本是 Catalyst iPad 版本)。该项目确实支持通过NSPersistenceCloudKitContainer 同步 iCloud 以在所有 3 台设备之间同步数据。

问题: iCloud Sync 在我的 iPhone 和我的 Mac 之间完美运行,但是在我的 iPad 上使用它时,我遇到了一个非常奇怪的问题。在我的 iPad 上创建一个新的 CoreData 对象时,它会在几秒钟后出现在我的其他设备上,这完全没问题。但是,在我的 iPhone 或 Mac 上创建 CoreData 对象时,它不会出现在 iPad 上(我等了 10 分钟)。只有在关闭和重新打开 App 时才会出现 Object。

详情:我什至不必完全退出应用程序。只需向上滑动到应用程序选择器并再次选择应用程序就足够了。

问题:有没有人知道什么可能导致这个奇怪的错误?请记住:所有三款设备都使用相同的代码库。

【问题讨论】:

    标签: swift core-data icloud cloudkit nspersistentcloudkitcontainer


    【解决方案1】:

    确保您已根据Apple Documentation 启用推送和远程通知

    Project Settings > Signing and Capabilities 
    

    Sync CoreData with CloudKit 使用

    try? persistentContainer.viewContext.setQueryGenerationFrom(.current)
    

    【讨论】:

    • 这是在 loadPersistentStores 之前还是之后尝试?
    • 我把它放在后面。这样上下文就准备好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 2012-03-16
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多