gpt4 book ai didi

swift - 使用 Swift 运行多个终端命令

转载 作者:行者123 更新时间:2023-11-28 06:02:53 30 4
gpt4 key购买 nike

我想在 macOS 应用程序中一个接一个地执行两个命令。例如 cd ~/Desktop/MyiOSProject 和 'faSTLane releaseBeta'

我在下面的方法中实现了命令行执行。当我调用波纹管方法 command("cd ~/Desktop/MyiOSProject && faSTLane releaseBeta") 它抛出错误

env: cd ~/Desktop/MyiOSProject && fastlane releaseBeta: No such file or directory

func command(args: String..., completion: @escaping (Bool,String, Process)->Void) {
let task = Process()
task.launchPath = "/usr/bin/env"
task.arguments = args
let outPipe = Pipe()
task.standardOutput = outPipe
task.launch()
task.terminationHandler = {process in
let outdata = outPipe.fileHandleForReading.readDataToEndOfFile()
if var string = String(data: outdata, encoding: .utf8) {
string = string.trimmingCharacters(in: .newlines)
if process.terminationStatus == 0 {
completion(true, string, process)
}else {
completion(false, string, process)
}

return
}
completion(false, "Failed to run command", process)
}
}

最佳答案

Process 实例中,您所拥有的环境与终端内的环境不同。 IE。搜索路径不同——尽管您使用的是 /usr/bin/env。我怀疑找不到faSTLane 命令。如果是这样,解决方案很简单:指定它的完整路径,即。 e. /usr/local/bin/faSTLane.

关于swift - 使用 Swift 运行多个终端命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49068732/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com