繁体   English   中英

在Swift中运行Shell命令

[英]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部分有关:

  1. script error -54

    ↳-54文件权限错误

  2. Couldn't get error text because of error -1700.

    ↳不能使...成为类型项目。

您的脚本可能会尝试执行无权执行的操作,并尝试分配错误的类型 - 无需查看脚本或知道它的作用,这是未知的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM