Я создаю изолированное macOS-приложение.Я получаю URL файла из NSOpenPanel
, создаю данные закладки и сохраняю в хранилище данных.Затем я могу успешно восстановить URL из данных закладок и получить доступ к данным файла из моего приложения.
У меня также есть другая цель с XPC Service
в проекте, я передаю восстановленный URL этой цели, но у меня нет доступа кфайл из этого URL, когда я пытаюсь прочитать файл из этого XPC Service
.
Мое базовое приложение и XPC Service
цель оба имеют com.apple.security.files.bookmarks.app-scope
com.apple.security.files.bookmarks.document-scope
com.apple.security.files.user-selected.read-write
Что я долженсделать доступ к файлам с восстановленных URL в XPC Service
target?И я могу скопировать или удалить файл из XPC Service
?
Базовое приложение
NSURL *url = [NSURL URLByResolvingBookmarkData:file.bookmarkData
options:NSURLBookmarkResolutionWithSecurityScope
relativeToURL:nil
bookmarkDataIsStale:nil
error:nil];
[url startAccessingSecurityScopedResource];
...
[self.connection.remoteObjectProxy getDataFromURL:url
withReply:aReply];
Служба XPC
- (void)getDataFromURL:(NSURL *)anURL
withReply:(void (^)(NSData *))aReply {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
aReply([NSData dataWithContentsOfURL:anURL]);
});
}
[NSData dataWithContentsOfURL:anURL]
равно nil