[英]Running Shell Command in Swift
我试图构建一个swift OSX应用程序,可以运行一些shell命令来挂载用户请求的VPN。 我尝试使用NSAppleScript但每次尝试使用Admin权限运行时都会出错,因此我决定使用NSTask来调用将以管理员身份运行的苹果脚本并安装VPN。
为了通过NSTask调试获取在swift中运行的shell命令,我创建了一个测试脚本文件,它只有一个简单的whoami命令,当我在脚本编辑器和终端中使用osascript /Users/amaloney/Desktop/test.scpt
运行它时osascript /Users/amaloney/Desktop/test.scpt
但是在我的Swift文件中
import Foundation
let task = NSTask();
task.launchPath = "/usr/bin/osascript"
task.arguments = ["/Users/amaloney/Desktop/test.scpt"]
task.launch()
我继续得到以下错误
脚本错误-54。 由于错误-1700,无法获取错误文本。
关于如何让这个工作的任何想法?
谢谢!
供参考 - test.scpt
do shell script "whoami"
我在一个Xcode Playground中运行它,这显然是问题的根源。 一旦我继续将此代码集成到我的OSX应用程序中,它工作正常。
问题似乎与代码的AppleScript
部分有关:
script error -54
↳-54文件权限错误
Couldn't get error text because of error -1700.
↳不能使...成为类型项目。
您的脚本可能会尝试执行无权执行的操作,并尝试分配错误的类型 - 无需查看脚本或知道它的作用,这是未知的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.