【问题标题】:Core data and iCloud sync not working in live App核心数据和 iCloud 同步在实时应用程序中不起作用
【发布时间】:2020-05-22 21:43:07
【问题描述】:

刚刚完成和使用核心数据和 iCloud 同步的应用程序。该应用程序在模拟器和设备上进行测试时运行良好:将文本和图像添加到持久存储中没有问题,所有数据都恢复并且所有设备:在模拟器和真正的 iPhone 上。我做了很多测试,比如从手机和模拟器中删除应用程序,每次重新安装/运行应用程序时数据都会保留。

现在该应用在 App Store 中“上线”,但数据未在设备之间同步。我已使用相同的 Apple 用户名/ID 在两部 iPhone 上安装,在两部设备上都添加了记录,但数据未按预期在每部手机上恢复或复制。

有什么想法吗?

【问题讨论】:

  • 您在访问 iCloud 时是否遇到任何错误?
  • 没有。两部手机都在使用 iCloud,并且两部手机都显示了一些已使用的 iCloud 空间(> 2 MG)
  • 如果两部手机都显示已使用的 iCloud 空间,它们是否使用相同的(可能是公共的)iCloud 空间进行同步?
  • 它应该使用相同的空间。不确定发生了什么。从 Xcode 重新安装并运行模拟器,按预期工作,但在“实时”应用程序上没有。
  • @ReinhardMänner 看看下面的解决方案。谢谢!!!

标签: ios core-data icloud


【解决方案1】:

我不知道,但是一旦 App 获得批准,我们需要将架构部署到生产中,否则 Cloudkit 将无法上线。

为此,请转到 icloud.developer.apple.com,在您的仪表板上,点击齿轮图标和“将架构部署到生产环境”。

希望这可以帮助遇到同样困境的其他人;)

【讨论】:

    【解决方案2】:

    您还需要将权利文件中的com.apple.developer.icloud-container-environment 密钥设置为“生产”。

    【讨论】:

    • 感谢您对此问题的回答。但是,在我的 .entitlements 文件中,我只找到这个条目:APS Environment set to development。这是一样的吗?
    • 不,不一样。在您的权利文件中创建一个新行并将其命名为 com.apple.developer.icloud-container-environment 并将其设置为 String 并为其提供“生产”或“开发”值,具体取决于您希望如何构建应用程序项目。
    • 这在 iOS 15 中仍然存在吗?我的意思是我的 testflight 上有生产数据库,一切都很好地同步,没有在权利文件中设置任何内容
    • 您必须明确地将您的应用指向正确的环境。仅仅将开发方案部署到生产环境是不够的。即使在您将开发方案部署到生产环境之后,您的应用程序仍会使用开发方案。在您将正确的键/值对添加到您的权利文件之前,您的应用程序将不会使用正确的环境。开发、测试和审查都可以使用,但在您的应用发布到应用商店时将停止工作。
    猜你喜欢
    • 2011-12-30
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 2017-03-23
    相关资源
    最近更新 更多