iOS 8发布后,iCloud容器发生了变化。

8
自从iOS 8在17日发布以来,我所有的开发和部署配置文件都显示为无效的,而且在实际设备上,无论是在Xcode 5.1还是6 GM中,都无法运行使用iCloud的应用程序。会收到一个消息,指出授权内容与配套文件不匹配。现在唯一可接受的iCloud容器必须以iCloud开头,这不识别先前需要使用的iCloud容器命名结构中已存储的数据。

有任何解决办法吗?我已经在网络和苹果开发者网站上搜索了几个小时,但没有找到任何解决方案。我不能是唯一遇到这个问题的人。很沮丧,因为我刚刚发布了一个应用程序,现在无法更改任何代码以更新它!


我有一个类似的问题,目前甚至无法构建我的项目,因为显然授权不正确(没有任何有效的配置文件允许指定的功能:特性:iCloud。iCloud容器:)。 - theLastNightTrain
我仍在寻找解决方案。目前还没有任何有效的方法。 - Fred
2
我的问题通过在iCloud功能中选择“使用默认容器”来解决。 - theLastNightTrain
我可以在XCode提供的容器列表中选择旧类型容器(对应于$(TeamIdentifierPrefix)$(CFBundleIdentifier)),但似乎iOS 8的更新本身破坏了某些东西,我只看到无尽的CoreData+iCloud错误消息试图对已经存在的存储进行操作。一旦我删除了应用程序并重新安装了来自商店的iOS7版本 - 一切都开始按照预期工作 - 云中的数据传输到了应用程序的数据库中。 - berec
2个回答

1
  1. 点击 使用默认容器
  2. 点击 指定自定义容器
  3. 重新选择您的自定义容器

0

不确定这是最终答案,但我终于找到了一种在设备上访问旧iCloud信息的方法。我回到了Xcode 5.1.1,在我的项目中删除了授权文件。在iTunesConnect上编辑了开发和分发配置文件(使用现在仅允许的iCloud.xxxx设置),并在Xcode 5.1.1中下载和安装。我检查了键值存储:在iCloud功能下点击Ubiquity容器下的+,并确保应用程序中每个目标都有相同的容器(com.companyName.AppName)。然后连接了iOS设备并运行了应用程序。出现错误后,返回到每个目标并在“能力 - iCloud”下点击“修复”。必须多次点击“修复”,直到不再出现为止。然后再次运行应用程序,之前在iOS 8发布之前存储在应用程序中的iCloud数据显示在应用程序中,并且所有内容似乎都正常工作。

以上操作导致每个目标都有一个单独的授权文件,以前所有目标都使用同一个授权文件。

我还没有尝试过Xcode 6,但我终于可以通过Xcode 5.1.1访问我的应用程序,并可以为我的已发布应用程序进行修复和增强。

更新(2014年11月5日):使用上述方法,我能够在Xcode 5中上传到应用商店进行测试,没有任何问题。

希望这能帮助其他人。


我已经这样做了,但旧的iCloud文档不再出现。我担心如果我提交一个带有新的iCloud容器命名方案(iCloud.xxx)的更新,我的用户将失去所有数据。我错过了什么? - RawMean
你能否成功使用XCode 6.x构建你的应用程序? - berec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接