Создайте файл в каталоге ApplicationScripts в изолированном приложении MacOS - PullRequest
0 голосов
/ 26 июня 2018

Я хочу создать (".scpt") файл в каталоге скриптов приложений приложений MacOS.

При первом запуске приложения я представляю NSOpenPanel, чтобы получить закладку в области безопасности для каталога сценариев приложения, который хранится на диске.

let data = try url.bookmarkData(options: .withSecurityScope, includingResourceValuesForKeys: nil, relativeTo: nil)
... // store to disk

Поиски ...

var bookmark: Bookmark = ... // load from storage
var isStale = false
let url = try! URL.init(resolvingBookmarkData: bookmark.value, options: .withSecurityScope, relativeTo: nil, bookmarkDataIsStale: &isStale

... и использование закладок работает: url.startAccessingSecurityScopedResource() возвращает true

Но создание файла внутри этого каталога завершается неудачно:

let bundleUrl = Bundle.main.url(forResource: "foo", withExtension: "scpt")!
try! FileManager.default.copyItem(at: bundleUrl, to: url.appendingPathComponent("copyOfFoo.scpt"))

Исключение:

Operation not permitted

Не удалось создать copyOfFoo.scpt ... невозможно скопировать, потому что у вас нет разрешения на доступ к "com ...

Есть подсказка? Заранее спасибо.

1 Ответ

0 голосов
/ 26 июня 2018

После переключения Функция песочницы приложения отключается и снова включается, как и ожидалось. ?

...