NSFileManager ubiquityIdentityToken意外返回nil?

时间:2014-08-01 21:23:38

标签: ios ipad icloud nsfilemanager

我在我的应用程序中使用此iCloud库:https://github.com/iRareMedia/iCloudDocumentSync

在运行iOS 8的iPhone上运行应用程序,ubiquityIdentityToken返回一个值,一切正常。但是在运行iOS 7.0.4的iPad上,它返回nil。

我确保了iPad上的一些东西:

  1. iPad已连接到wifi并可以正常连接到互联网

  2. iCloud实际上是在iPad上设置的。我可以看到这个,因为它在“设置”中表示,iCloud选项卡在Safari中正常工作。

  3. 实际上启用了文档和数据选项

  4. Xcode通过iCloud选项卡自动设置iCloud,它可以在我的iPhone上使用相同的设置。

  5. 有什么理由可以解决这个问题吗?似乎很难相信它可以在一台设备上运行而不是在下一台设备上运行。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我不确定这是否是您的问题,但Apple确实在What's New in iOS 8中提到用户在iOS 8中的iCloud数据与iOS 7不兼容:

"当在用户设备和服务器之间传输文档和数据时,iCloud基础架构更加强大和可靠。当用户安装iOS 8并使用iCloud帐户登录设备时,iCloud服务器会对该用户帐户中的文档和数据执行一次性迁移。此迁移涉及将文档和数据复制到应用程序容器目录的新版本。只有运行iOS 8或OS X v10.10的设备才能访问此新容器。运行较旧操作系统的设备将继续访问原始容器,但在该容器中所做的更改不会出现在新容器中,反之亦然。"

编辑:

要查看这是否是您的问题,您应该在两台iOS 8设备上进行测试,并与两台iOS 7设备进行比较。如果你仍然在相同版本的iOS上遇到同样的问题,那么还会发生其他事情。

答案 1 :(得分:0)

我知道iOS 8仍然在NDA之下,所以这个答案在这里可能不像我希望的那样具体,但我只想说明以下内容。这个答案:https://stackoverflow.com/a/24584019/394736指向此链接:https://devforums.apple.com/thread/229509并在iOS 7和iOS 8设备上为我修复了它!