CI 与 errSecInternalComponent (Buildkite) 的协同设计失败

CI failing on codesign with errSecInternalComponent (Buildkite)

环境

您好,我在我的 aws mac1.metal 实例上使用 buildkite。这些代理在我们的组织中充当 CI 代理。实例现在在启动实例时启动 buildkite-agent(在 /Library/LauchDaemon 中通过 plist 完成)。这是我的 plist

问题

代理尝试使用 python 子进程

运行 以下命令
subprocess.CalledProcessError: Command '['/usr/bin/codesign', '-v', '--sign', 'XXXXXXXXXXXXXXXXXXXXXXXXX', '--entitlements', 'bazel-out/darwin-opt/bin/MYORG/iOS/WidgetExtension/WidgetExtension_entitlements.entitlements', '--force', 'bazel-out/darwin-opt/bin/MYORG/iOS/WidgetExtension/WidgetExtension_archive-root/WidgetExtension.appex']

导致此错误:

ERROR:
--
  | bazel-out/darwin-opt/bin/MYORG/iOS/WidgetExtension/WidgetExtension_archive-root/WidgetExtension.appex: errSecInternalComponent

有趣的是 运行使用我在本地启动的代理执行相同的作业。 (ssh 进入机器,然后 运行 buildkite-agent start)然后它完美地工作。所以我想知道通过 launchd 将 buildkite-agent 作为守护进程启动和在本地启动它之间是否存在某种权限差异。 (类似于此 issue 我之前打开过,其中 bk 代理作为 launchd 守护进程失败,但如果在本地启动则成功)

我尝试过的东西fix/Debugging

想知道是否有 codesign/security/buildkite 精灵 ‍♀️ ‍♂️ 知道本地启动 buildkite-agent 和代理启动之间的区别?我觉得我错过了一个很大的问题。也许我的 plist 中缺少一个属性。

我运行之前遇到过这个问题,你需要运行将buildkite代理作为LaunchAgent并配置自动登录,而不是运行作为LaunchDaemon。