xcodebuild重定向输出日志的坑

运行xcodebuild命令收集日志,遇到的坑:

1
xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination 'platform=iOS,name=我的iPhone' XCTESTWD_PORT=8001 clean test

执行这个命令,想同时收集日志,于是加上>tmp.log, 发现部分日志仍然被输出到了屏幕上,同时tmp.log里面没有这部分日志,被xcodebuild当作错误输出了?ok,使用 2 >&1

1
xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination 'platform=iOS,name=我的iPhone' XCTESTWD_PORT=8001 clean test >tmp.log 2>&1

又发现一个非常诡异的问题,编译完成后就没有更多日志了,不再继续执行后续的test了,执行中断??反复试了几次,去掉日志重定向输出,能继续往下执行,加上重定向,就中断了。

请教公司的资深运维工程师,试了| tee x.log, 2> err.log > std.log等等也不行,推断说可能是xcodebuild需要从终端获取状态,所以中断了。尝试把clean和test分成两个命令执行,同样不行。

百度谷歌也没找到解决方案。当然也可能是大家都不这样用。日志也可以去找xcodebuild本身生成的日志。