解决 Jenkins M1 Mac (arm64) 节点构建 i

2021-04-29  本文已影响0人  划水型派大星

问题发生在 Jenkins 节点机器为 M1 Mac (Apple Silicon, arm64) 的情况下,构建 iOS App 可能会卡住,目前我遇到的都是卡在 CompileStoryboard 的地方,全网搜了一下也没找到类似的状况。

排查了一下估计有可能是因为调用的 xcodebuild 不是运行的原生 arm64 架构。虽然理论上运行 Rosetta 转译的 x86_64 应用也应该没有问题,但目前最大的可能性就是这个了(因为尝试直接在 M1 Mac mini 节点上面构建是正常的)

目前 Jenkins 在节点上使用的 openjdk 仍然是 x86_64 的,导致 Jenkins 在节点执行任务时的 shell 也是 x86_64 的。

如何判断 Jenkins 是否使用的是 x86_64 架构的 shell:直接在 Terminal 执行 sysctl sysctl.proc_translated 将返回 0 ,在 Rosetta 转译模式下执行会返回 1。

解决方案:

上一篇 下一篇

猜你喜欢

热点阅读