CoreData:Ubiquity:无效选项:NSPersistentStoreUbiquitousContentNameKey 的值不应包含句点:com.YashwantChauhan.Outis
-PFUbiquitySwitchboardEntryMetadata setUseLocalStorage::CoreData:Ubiquity:mobile~20BF44C9-C39F-48DC-A8A1-B45FC82C7E20:com.YashwantChauhan.Outis
我在与 iCloud 同步时遇到问题。上面这两个错误是向我抛出的。我不知道是什么问题,我设置了 Entitlements 文件,并将 Ubiquity Container 设置为com.YashwantChauhan.Outis
.
我使用 MagicalRecord 的方法启动 CoreData 堆栈:
[MagicalRecord setupCoreDataStackWithiCloudContainer:@"N6TU2CB323.com.YashwantChauhan.Outis" localStoreNamed:@"Model.sqlite"];
但这并不重要,因为 MagicalRecord 只是简化了 CoreData 方法。
非常感谢帮助。
好的更新:
-[NSFileManager URLForUbiquityContainerIdentifier:]:获取 ubiquity 容器 URL 时出错:错误域 = LibrarianErrorDomain Code=11“操作无法完成。(LibrarianErrorDomain 错误 11 - 客户端的 com.apple 不允许请求的容器标识符.developer.ubiquity-container-identifiers 权利。)" UserInfo=0x15e0d8a0 {NSDescription=客户端的 com.apple.developer.ubiquity-container-identifiers 权利不允许请求的容器标识符。}
这是我收到的最新错误消息,我意识到这与问题的初始错误不同,但事实证明旧消息是某种奇怪的错误。我通过从我的 Ubiquity Container 标识符中删除句点来尝试@Rauru Ferro 的解决方案。我知道这行不通,因为对标识符的要求是包含句点,但是当我把句点放回去时,它会吐出上面的错误消息。这比不使用句点更有意义。我们都知道我们这样做。
我还发现了这个方便的代码片段,它实际上可以通过获取它来检查我的 Ubiquity 容器标识符。有用的片段可以快速检查您是否有任何问题。
NSString *containerId = @"com.YashwantChauhan.Outis";
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *iCloudURL = [fileManager URLForUbiquityContainerIdentifier:containerId];
NSLog(@"%@", [iCloudURL absoluteString]);
另一个更新:看起来,这个愚蠢的东西NSPersistentStoreUbiquitousContentNameKey should not contain periods
一团糟。如果NSPersistentStoreUbiquitousContentNameKey
像某种文件夹(Tutorial)一样创建,那么要求是.
名称前面没有,.com.YashwantChauhan.Outis
但事实并非如此。我在这里开始发疯了!Entitlements 文件没有问题,在 MagicalRecord 中获取 iCloud 容器 ID 也没有任何问题。我开始认为这是在 Xcode 5 中设置 iCloud 的内部问题,但我当然不知道。话虽如此,我可能只是因为一些琐碎的事情或实际上会让其他人头疼的事情而失去理智。
任何人都可以发布他们的权利文件,以便我可以验证实际工作版本的外观。当然是删减了。谢谢!