我在 App Store 中有一个现有的应用程序,它与 iOS 7 和 8 配合得非常好。这是一个使用 Core Data 存储用户添加的信息的应用程序,以及用于同步的 iCloud(无键值存储)。
使用 Xcode 5.1.1,一切运行良好。我刚刚花了一些时间为我的用户发布了一个紧急时区修复程序,因此该修复程序与 iCloud 和 Core Data 无关。自从 Xcode 6.0.1 和 iOS 8 SDK 发布以来,我继续前进并开始使用它。
今天早上验证我的应用程序时,我收到以下错误:
Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in a provisioning profile. The bundle contains a key that is not included in the provisioning profile: 'com.apple.developer.icloud-container-environment' in Payload/AppName.app/AppName'.
在开发者门户中,我的 App ID 启用了 iCloud,但仅适用于 Xcode 5,因为我还不想使用 CloudKit:
在 Xcode 部分中,在 Xcode 6 中,我现在看到以下内容,其他人也一样:
使用我的权利文件夹。所以在我的例子中,它类似于 82828282.com.company.app,它位于 Capabilities 部分的 RED 中。
我不太明白我应该做些什么来让它工作。
问题
1) 我应该使用 CloudKit 吗?
2) 我必须在开发者门户的 App ID 中启用 CloudKit 吗?
3) 我应该在开发者门户中使用 iCloud 容器吗?
我当前的 iCloud 设置是使用权利:TeamID.identifier。
我已经通过从 Xcode 5.1.1 提交应用程序来解决这个问题,因为这是一个紧急修复,但我只是不明白如何使用 iOS 8 和 Xcode 6.0.1 进行未来开发,使用 iCloud 和我的应用程序中仍然非常启用核心数据。
我在 SO 中看到了一些类似的案例,比如这里(iCloud Core Data Not available after running in Xcode 6 / ios 8 SDK)和Using Core Data, iCloud and CloudKit for sync and backups and how it works together but I'm really not确定要做什么。
任何指导都将不胜感激。