首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iCloud同步失败,使用"CoreData: Ubiquity:无效选项: NSPersistentStoreUbiquitousContentNameKey的值不应包含句点“

iCloud同步失败,使用"CoreData: Ubiquity:无效选项: NSPersistentStoreUbiquitousContentNameKey的值不应包含句点“
EN

Stack Overflow用户
提问于 2013-10-06 13:40:39
回答 4查看 3.7K关注 0票数 9

CoreData: Ubiquity:无效选项: NSPersistentStoreUbiquitousContentNameKey的值不应该包含句点: com.YashwantChauhan.Outis mobile~20BF44C9-C39F-48DC-A8A1-B45FC82C7E20:com.YashwantChauhan.Outis:-PFUbiquitySwitchboardEntryMetadata setUseLocalStorage::CoreData: Ubiquity

我对与iCloud同步有问题。上面这两个错误是对我造成的。我不知道问题出在哪里,我设置了权利文件,并将Ubiquity设置为com.YashwantChauhan.Outis

我使用MagicalRecord的方法启动CoreData堆栈:

代码语言:javascript
运行
复制
[MagicalRecord setupCoreDataStackWithiCloudContainer:@"N6TU2CB323.com.YashwantChauhan.Outis" localStoreNamed:@"Model.sqlite"];

但这一点都不重要,因为MagicalRecord只是简化了CoreData方法。

非常感激的帮助。

Ok更新:

在获得无处不在的容器URL:-NSFileManager Domain=LibrarianErrorDomain Code=11时发生了错误。“操作无法完成。(LibrarianErrorDomain错误11 --客户端的权限不允许请求的容器标识符)。”客户端的com.apple.developer.ubiquity-container-identifiers权限不允许UserInfo=0x15e0d8a0 {请求的容器标识符。}

这是我最近收到的错误信息,我意识到这与问题的初始错误不同,但原来的错误是某种奇怪的错误。我尝试了@Rauru的解决方案,方法是从泛容器标识符中删除句点。我知道这是行不通的,因为标识符的要求是包含句点,但是当我把句点放回去时,它会发出上面的错误消息。这比不使用句号更有意义。我们都知道我们

我还找到了这个方便的代码片段,它可以通过获取来检查我的Ubiquity容器标识符。有用的片段,以快速检查您是否有任何问题。

代码语言:javascript
运行
复制
NSString *containerId = @"com.YashwantChauhan.Outis";
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *iCloudURL = [fileManager URLForUbiquityContainerIdentifier:containerId];
NSLog(@"%@", [iCloudURL absoluteString]);

另一个更新:,从外观上看,这个愚蠢的NSPersistentStoreUbiquitousContentNameKey should not contain periods是一团糟。如果NSPersistentStoreUbiquitousContentNameKey是像某种文件夹(教程)一样创建的,那么需要的是没有名称的.,比如.com.YashwantChauhan.Outis,但事实并非如此。我开始发疯了!权利文件没有问题,在MagicalRecord中获取MagicalRecord容器ID也没有问题。我开始认为这是在Xcode 5中设置iCloud的内部问题,但我当然不知道。说到这里,我可能会忘记一些琐碎的事情,或者会给其他人带来头痛的事情。

任何人都可以张贴他们的权利文件,以便我可以核实一个实际的工作版本是什么样的。当然是编辑了。谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-03 10:01:59

参考https://forums.pragprog.com/forums/252/topics/12315

引述答复:

这是最近改变的(小牛队)。幸运的是,由于您刚刚添加了iCloud,所以影响很小。

您需要更改以下代码行:

[options setValue:[NSBundle mainBundle bundleIdentifier] [NSBundle mainBundle bundleIdentifier])那是什么别的东西?我会向您的应用程序推荐一些描述性的内容。最近我一直在使用类名,比如结构。所以我会把它改成你的应用程序的名字,或者简单地说是“DataStorage”。

名称对于您的应用程序是唯一的,所以只要您理解它,实际值就不重要。

所以我修改了下面的代码..。

代码语言:javascript
运行
复制
        options = [NSDictionary dictionaryWithObjectsAndKeys:
                   [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,     // Key to automatically attempt to migrate versioned stores
               [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption,           // Key to attempt to create the mapping model automatically
               @"TrafficCamNZ_DataStore", NSPersistentStoreUbiquitousContentNameKey,                // Option to specify that a persistent store has a given name in ubiquity.
               cloudURL, NSPersistentStoreUbiquitousContentURLKey,                              // Option to specify the log path to use for ubiquitous content logs.
               nil];

请参阅TrafficCamNZ_DataStore之前有TrafficCamNZ.DataStore的一行

  • 大卫
票数 5
EN

Stack Overflow用户

发布于 2015-06-19 15:00:39

我使用的是一个共享容器,只是弹出了同样的错误警告。我可以通过替换所有变化的云标识符字符串来修复它,如:

  • "$(TeamIdentifierPrefix)com.mydomain.myapp"
  • "com.mydomain.myapp"
  • "ABCDEF0123.com.mydomain.myapp"

仅使用这个显式云容器字符串:

  • "ABCDEF0123.com.mydomain.myapp"

我猜想,在某个时候,Xcode必须更新了权限并重新插入了"$(TeamIdentifierPrefix)",这是由于共享容器导致的错误。而且,我已经忘记了代码中的标识符,就像您似乎有的那样:

代码语言:javascript
运行
复制
NSString *containerId = @"com.YashwantChauhan.Outis";

应该是这样的:

代码语言:javascript
运行
复制
NSString *containerId = @"ABCDEF01234.com.YashwantChauhan.Outis";
票数 2
EN

Stack Overflow用户

发布于 2013-10-23 14:06:14

我也有同样的问题,我不知道问题是什么,也不知道为什么会有这个问题。根据我所读到的,我们应该能够使用containerId中的点。

然而,对我来说,它开始工作的方法是用tildes替换containerId中的点:

即:

代码语言:javascript
运行
复制
NSString *containerId = @"N6TU2CB323~com~YashwantChauhan~Outis";

而不是:

代码语言:javascript
运行
复制
NSString *containerId = @"N6TU2CB323.com.YashwantChauhan.Outis";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19209504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档