在查找器同步扩展中解析安全范围书签时出现以下错误。
错误域 = NSCocoaErrorDomain 代码 = 259 “文件无法打开,因为它的格式不正确。”
也可能是相关的日志记录:
无法读取 CFPrefsPlistSource<0x6080000ee380> 中的值(域:MyAppGroupName,用户:kCFPreferencesAnyUser,ByHost:是,容器:(null)):仅允许将 kCFPreferencesAnyUser 与容器一起用于系统容器,与 cfprefsd 分离
我正在使用以下代码在 Container App 中创建安全范围书签:
NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"com.mycomp.xyz"];
NSURL * theSelectedFolder = ....selected folder from NSOpenPanel....
NSData *bookmarkData = [theSelectedFolder bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope includingResourceValuesForKeys:nil relativeToURL:nil error:NULL];
[sharedDefaults setObject:bookmarkData forKey:@"BookmarkData"];
[sharedDefaults synchronize];
在 Finder 同步扩展中,我使用以下代码:
NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"com.mycomp.xyz"];
NSData *bookmarkData = [sharedDefaults objectForKey:@"BookmarkData"];
BOOL bookmarkDataIsStale;
NSError *err;
NSURL *userSelectedUrl = [NSURL URLByResolvingBookmarkData:bookmarkData options:NSURLBookmarkResolutionWithSecurityScope relativeToURL:nil bookmarkDataIsStale:&bookmarkDataIsStale error:&err];
而且我还添加了此权利密钥:
com.apple.security.files.bookmarks.app-scope
在 Finder Sync Extension 和 Container 应用程序中。
我是可可编程的新手,无法找到任何运气发现问题。
我究竟做错了什么?有谁可以帮我离开这里吗?