我想执行类似于使用 xcode 构建 IOS 的命令
var cp = require("child_process");
var cmd="xcodebuild archive -project xx.xcodeproj -scheme xxx -archivePath ~/Library/Developer/Xcode/Archives/xxx-ios.xcarchive";
var o = cp.exec(cmd, execOptions, {
stdio: "inherit"
});
o.stdout.on("data", function (chunk) {
if (!chunk || chunk.trim() === "" || chunk.trim().indexOf("UP-TO-DATE") != -1) return;
else {
console.info(chunk.trim().toString());
}
});
o.stderr.on("data", (data) => {
console.info(data);
});
o.on("close", function (code,signal) {
if (code === 1) {
console.info(cmd+ "close code : " + code);
reject(false);
} else {
console.info(cmd+ "close code : " + code);
resolve(true);
}
});
o.on("exit", (code) => {
console.info(cmd+ "exit code : " + code);
});
基本上,如果我给出简单的命令,它就可以工作,但我想通过 xCode 构建 ios,进程被代码 null 和信号“SIGTERM”关闭,我还添加了 maxBuffer 选项,但它仍然不起作用,我该如何让它工作?
哦,根本没有答案,所以我将添加我的解决方案来帮助其他人。 我的问题是它包含太多输出字,并且它达到了最大缓冲区,所以我只需通过以下命令获取更少的输出: var cmd="xcodebuild archive -project xx.xcodeproj -scheme xxx -archivePath ~/Library/Developer/Xcode/Archives/xxx-ios.xcarchive | egrep -w -i -C 2 "(ARCHIVE|错误)"
我无法发表评论,所以我会发表一个回复帖子,只是为了表示非常感谢。我已经被这个问题困扰好几天了,并且已经失去了希望。这是我发现的唯一关于它的帖子。您的解决方案非常有效!