Как получить доступ к файлу из защищенной URL-адреса закладки в службе xpc? - PullRequest
0 голосов
/ 15 февраля 2019

Я создаю изолированное 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

...