Невозможно передать / удалить файлы в ~ / Library / Application Scripts / в Swift

Я пытаюсь скопировать набор файлов AppleScript в ~ / Library / Application Scripts / com.apple.test.MyApp-Runner /

let destinationURL = try! fileManager.url(
        for: FileManager.SearchPathDirectory.applicationScriptsDirectory,
        in: FileManager.SearchPathDomainMask.userDomainMask,
        appropriateFor:nil,
        create: true)
...

Когда я пытаюсь выполнить эту строку (если элемент существует в пункте назначения)

fileManager.replaceItem(at: destinationURL, withItemAt: theFileURL, backupItemName: nil, resultingItemURL: nil)

Я получаю ошибку

The file "AppleScript.scpt" couldn't be saved in the folder "com.apple.test.MyApp-Runner"

И когда я выполняю это (если элемент не существует в пункте назначения)

fileManager.copyItem(at: theFileURL, to: destinationURL)

Я получаю ошибку

setting security information: Operation not permitted

Разрешено ли FileManager писать в ~ / Library / Application Scripts /? Есть ли настройки разрешений, которые я должен применить?

изменить: Кроме того, выполнение

fileManager.removeItem(at: theFileURLInApplicationScript)

выдает код ошибки 513 «... не может быть удален, потому что у вас нет разрешения на доступ к нему».


person jn5047    schedule 30.08.2018    source источник
comment
stackoverflow.com/search?q=%5Bmacos%5D+sandbox   -  person El Tomato    schedule 31.08.2018
comment
Разве это не стандартная песочница?   -  person matt    schedule 31.08.2018
comment
Мое приложение находится в песочнице. Значит, с песочницей нет возможности перенести файл в папку Application Script?   -  person jn5047    schedule 31.08.2018
comment
Разве это не то, на что отвечает уже предоставленная вам поисковая ссылка?   -  person matt    schedule 31.08.2018


Ответы (1)


Из документации NSUserAppleScriptTask

Если приложение изолированное, то скрипт должен находиться в папке FileManager.SearchPathDirectory.applicationScriptsDirectory. Изолированное приложение может читать из этой папки, но не писать в нее.

person vadian    schedule 31.08.2018
comment
Вы можете записать папку, если у вас есть закладка с ограничением безопасности, как и в любом другом каталоге: objc.io/issues/14-mac/sandbox-scripting - person pkamb; 29.09.2018