swift - 无法在 Swift 中将文件传输/删除到 ~/Library/Application Scripts/
问题描述
我正在尝试将一组 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 “...无法删除,因为您无权访问它。”
解决方案
如果应用程序是沙盒的,那么脚本必须在
FileManager.SearchPathDirectory.applicationScriptsDirectory
文件夹中。沙盒应用程序可以读取但不能写入此文件夹。
推荐阅读
- html - HTML 字符串转纯文本
- c# - 无法将 COM 对象中的字符串与字符串文字进行比较
- pine-script - Pine Script v4 - 本月最后 n 天和前 n 天的背景着色
- docker - 如何在 docker 项目下将图像魔法添加到我的 laravel?
- asp.net-core - Elmahcore 最大日志数
- laravel - 如何使用 jenssegers 将数据从一个 MongoDB 集合复制到另一个
- sql - postgresql 函数中的 IF ELSE
- python - 如何在 Python 中下载 zip 文件?
- flutter - Flutter - 行内有 3 个小部件,最后一个右对齐
- jekyll - 带有“包含”表达式的 Jekyll `where_exp` 过滤器