iCloud Core Data 在 Xcode 6 / ios 8 SDK 中运行后不可用

Posted

技术标签:

【中文标题】iCloud Core Data 在 Xcode 6 / ios 8 SDK 中运行后不可用【英文标题】:iCloud Core Data Not available after running in Xcode 6 / ios 8 SDK 【发布时间】:2014-09-13 00:57:30 【问题描述】:

我有一个使用 Core Data 和 iCloud 同步的应用程序。它在 ios 7 中运行良好。

我在 XCode 6 中运行它后遇到了一些麻烦,即使在 iOS 7 设备上也是如此。这是我的测试:

在 iOS 7 设备上:从应用商店下载当前实时应用 从 iCloud 同步数据 构建并运行新版本的应用 Persistent Stores 发生变化,原始数据不再可用

这是我的配置文件和 xcode 设置的屏幕截图:

我还尝试了以下权利:

    com.apple.developer.icloud-container-identifiers com.apple.developer.ubiquity-container-identifiers这是我以前的。当我使用它运行测试时,数据第一次在那里,但在第二次运行时没有。没有关于商店更改的事件,但它在第一次和第二次运行时显示Using local storage: 1 以上两者。得到与 #2 相同的结果

【问题讨论】:

从 Apple 支持收到的任何更新/解决方案?我有同样的问题 Apple 曾表示,使用新模型运行临时构建将不起作用,但签名/应用商店版本将起作用。可怕!无论哪种方式都会报告。 真的吗?我们如何测试它?我的试飞测试版似乎仍然存在问题。请让我发布你所看到的。谢谢。 如果我是你,我会和苹果一起提高你自己的票,你不能乱搞这些东西,没有人能掌握他们所做的知识。您将获得 2 张使用您的应用商店会员资格的门票。在你形成我之前,你可能会从他们那里得到答案 【参考方案1】:

根据权利的屏幕截图,您似乎同时拥有旧的(普遍存在的容器)和新的(iCloud 容器)相关权利。我发现并看到了新旧权利同时存在的问题。

对于我的应用程序,我只保留了旧的权利,并删除了 XCode 6 将尝试添加的两个新权利,以解决它认为存在于 iCloud 中的问题。我删除的两个键是:

com.apple.developer.icloud-container-identifiers com.apple.developer.icloud-services

我只保留了原始密钥 (com.apple.developer.ubiquity-container-identifiers) 并没有更改它的值。这样,当使用 XCode 6 GM 构建时,该应用程序仍然可以在 iOS 7 中运行,并且可以像以前一样访问所有数据。在 iOS 8 中它也可以工作,但它似乎要求用户将他们的帐户更新到 iCloud Drive。

【讨论】:

感谢伊恩。不幸的是它不起作用:(我已经更新了问题 如果您看到“使用本地存储:1”,那么这是有希望的。这意味着它至少连接到 iCloud。它是否曾经更改为“使用本地存储:0”?这是在设备上还是模拟器上? 它在设备上。它显示 Using local storage: 1 在两次运行中,但在第二次运行时数据不可用。 如果它永远不会更改为“使用本地存储:0”,那么这意味着它只停留在临时存储上。如果您通过 Xcode 在您的设备上运行该应用程序,它会显示任何 iCloud 活动吗?要同步的初始数据量是否很大? 嗨@Iain 感谢您的时间和专业知识。我已经向 Apple Developer Technical Support 提出了这个问题,因为在您和其他一些人的帮助下,我不再相信这是我犯了一个错误。再次感谢。我得到答案后会发布。

以上是关于iCloud Core Data 在 Xcode 6 / ios 8 SDK 中运行后不可用的主要内容,如果未能解决你的问题,请参考以下文章

使用 iCloud 在多台设备上同步 Core Data

如何在发布更新时启用 iCloud 并迁移 Core Data?

iOS Core Data iCloud 同步 - 可选

在应用程序运行时启用/禁用 Core Data 的 iCloud 同步

iCloud、Core Data 和副本以及如何播种初始数据?

将 Core Data 应用程序迁移到 iCloud