如何在Swift 4中执行终端命令?

时间:2017-10-05 18:54:01

标签: ios swift bash shell terminal

我有一个iOS应用程序,在单元测试(XCTests)中我需要执行一些终端命令,如 xcrun simctl shutdown [simulator-UDID]

我创建了这个函数来运行shell脚本

func commandLine(launchPath: String, arguments: [String]) -> String {
    // Used to be NSTask() before Swift 3
    let process = Process()

    // Set the task parameters
    process.launchPath = "/usr/bin/env"
    process.arguments = ["pwd"]

    // Create a Pipe and make the process
    // put all the output there
    let pipe = Pipe()
    process.standardOutput = pipe

    // Launch the process
    process.launch()

    // Get the data
    let data = pipe.fileHandleForReading.readDataToEndOfFile()
    let output = NSString(data: data, encoding: NSUTF8StringEncoding)

    print(output!)
}

然而,我收到错误说

  

使用未解析的标识符'过程'

在Swift 4中,某些研究结果Process()已重命名为CommandLine,但更改为CommandLine会导致不同的错误

  

'CommandLine'无法构造,因为它没有可访问的初始值设定项

0 个答案:

没有答案