如何快速从xcode运行终端的命令行?

时间:2019-07-17 11:49:09

标签: ios swift xcode macos

我想运行终端的此命令,但是要从swift中调用它:

osascript /Users/faranegar/Desktop/sms.scpt 00989194774880 "It's okay"

我已经尝试过这种方式,但是它不会出现以下错误:

@discardableResult
func shell(_ args: String...) -> Int32 {
    let task = Process()
    task.launchPath = "/usr/bin/env"
    task.arguments = args
    task.launch()
    task.waitUntilExit()
    return task.terminationStatus
}

@IBAction func sendPressed(_ sender: NSButtonCell) {
    shell("osascript /Users/faranegar/Desktop/sms.scpt 00989194774880 \"some text\"")
}
  

错误:env:osascript /Users/faranegar/Desktop/sms.scpt 00989194774880“某些文本”:没有这样的文件或目录

如果我这样写:

shell("osascript", "/Users/faranegar/Desktop/sms.scpt", "00989194774880", "\"It's okay\"")

然后我会收到此错误:

  

/Users/faranegar/Desktop/sms.scpt:脚本错误-54。由于错误-1700而无法获得错误文本。

您知道如何运行命令而不出现错误吗?

1 个答案:

答案 0 :(得分:0)

我找到了我所需要的。 我想通过为macOS用swift编写的应用程序向iMessage发送消息。 这是我使用的代码:

@IBAction func sendPressed(_ sender: NSButtonCell) {
    let service = NSSharingService(named: NSSharingService.Name.composeMessage)!
    service.recipients = [phoneNumberTextField.stringValue]
    service.perform(withItems: [messageTextField.stringValue])
}