Ani*_*lik 7 macos objective-c findersync
在我的finder同步扩展中解析Security Scoped Bookmark时出现以下错误.
错误域= NSCocoaErrorDomain代码= 259"无法打开文件,因为格式不正确."
还可能是相关的日志记录:
无法读取CFPrefsPlistSource <0x6080000ee380>中的值(域:MyAppGroupName,用户:kCFPreferencesAnyUser,ByHost:是,容器:(null)):只允许使用带容器的kCFPreferencesAnyUser,系统容器,从cfprefsd分离
我正在使用以下代码在Container App中创建Security Scoped书签:
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];
Run Code Online (Sandbox Code Playgroud)
在Finder Sync Extension中,我使用以下代码:
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];
Run Code Online (Sandbox Code Playgroud)
我还添加了此权利密钥:
com.apple.security.files.bookmarks.app-scope
在Finder Sync Extension和Container应用程序中.
我是可可节目的新手,并没有找到任何运气查找问题.
我究竟做错了什么?有人可以帮我从这里出去吗?
小智 0
问题是您正在尝试解析查找器扩展中的书签数据。您需要解析包含应用程序本身的书签数据。
你可以得到selected item urls
和targeted url
延伸。
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"com.mycomp.xyz"];
NSURL* target = [[FIFinderSyncController defaultController] targetedURL];
NSArray* items = [[FIFinderSyncController defaultController] selectedItemURLs];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
380 次 |
最近记录: |