Мое приложение для Mac OS получает псевдоним NSURL при взаимодействии с пользователем (перетаскивание), поэтому у приложения есть разрешение на чтение файла псевдонима, но у него нет разрешения на чтение исходного файла в изолированной программной среде приложения (Mac OS X 10.7). /8).
Я разрешаю псевдоним
NSData* bookmark = [NSURL bookmarkDataWithContentsOfURL:aliasURL error:nil];
origURL = [NSURL URLByResolvingBookmarkData:bookmark
options:NSURLBookmarkResolutionWithoutUI
relativeToURL:nil
bookmarkDataIsStale:nil
error:&error];
Когда я пытаюсь прочитать файл origURL, я получаю сообщение об ошибке: The file couldn’t be opened because you don’t have permission to view it
.
Я также пытался вызвать start/stopAccessingSecurityScopedResource
по origURL, но не помогло.
Я также пытался разрешить данные закладок с помощью параметра NSURLBookmarkResolutionWithSecurityScope
, но получаю ошибку "The file couldn’t be opened because it isn’t in the correct format."
из метода URLByResolvingBookmarkData.
Итак, как это сделать? Спасибо.
NSURL
изначально создан с областью безопасности? Если у вас есть код, который генерирует исходный URL-адрес псевдонима, было бы полезно его увидеть. Из каких приложений берутся URL-адреса? - person Dov   schedule 16.10.2012aliasURL = [NSURL URLFromPasteboard:pb]
- person kliu   schedule 17.10.2012+ URLByResolvingAliasFileAtURL:options:error:
. Однако в нем указано, что параметрNSURLBookmarkResolutionWithSecurityScope
не поддерживается. Итак, по-прежнему нет доступа через псевдоним. - person user362515   schedule 23.10.2015