【发布时间】:2015-10-05 01:27:13
【问题描述】:
我正在尝试构建一个快速的 OSX 应用程序,该应用程序可以运行一些 shell 命令来挂载用户请求的 VPN。我尝试使用 NSAppleScript,但每次尝试以管理员权限运行时都会出错,因此我决定使用 NSTask 调用将以管理员身份运行并挂载 VPN 的苹果脚本。
为了调试让 shell 命令通过 NSTask 快速运行,我制作了一个测试脚本文件,其中只有一个简单的 whoami 命令,当我在脚本编辑器和终端中使用 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"
【问题讨论】:
-
您是否在等待命令以
task.waitUntilExit()结束? -
@Kametrixom 我也试过用它运行,同样的错误
-
@ThomasKilian 我已经仔细阅读过,该用户收到错误 -2741,但我不是。
-
你试过用 bash 或 Perl 代替 Applescript 吗?
标签: macos swift shell applescript