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
errSecInternalComponent seems like a common issue with codesign 所以我尝试用 security unlock-keychain -p password path/to/key
锁定和解锁钥匙串
使用其他 CI system/tool 的人也遇到同样的问题,但主要是 solve when setting SessionCreate
in their plist. 。已尝试但仍然失败
VNC 进入 mac1.metal ec2 实例并提供 /usr/local/bin/buildkite-agent FDA - 作业仍然失败
VNC 并打开 KeyChain 访问并授予 /usr/local/bin/buildkite-agent 访问私钥的权限,它在签名时遇到问题 - 仍然失败
一切here
Jenkins - Xcode build works codesign fails
在 post 结帐挂钩中创建临时密钥但仍然失败
想知道是否有 codesign/security/buildkite 精灵 ♀️ ♂️ 知道本地启动 buildkite-agent 和代理启动之间的区别?我觉得我错过了一个很大的问题。也许我的 plist 中缺少一个属性。
我运行之前遇到过这个问题,你需要运行将buildkite代理作为LaunchAgent并配置自动登录,而不是运行作为LaunchDaemon。
环境
您好,我在我的 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
errSecInternalComponent seems like a common issue with codesign 所以我尝试用
锁定和解锁钥匙串security unlock-keychain -p password path/to/key
使用其他 CI system/tool 的人也遇到同样的问题,但主要是 solve when setting
SessionCreate
in their plist. 。已尝试但仍然失败VNC 进入 mac1.metal ec2 实例并提供 /usr/local/bin/buildkite-agent FDA - 作业仍然失败
VNC 并打开 KeyChain 访问并授予 /usr/local/bin/buildkite-agent 访问私钥的权限,它在签名时遇到问题 - 仍然失败
一切here
Jenkins - Xcode build works codesign fails 在 post 结帐挂钩中创建临时密钥但仍然失败
想知道是否有 codesign/security/buildkite 精灵 ♀️ ♂️ 知道本地启动 buildkite-agent 和代理启动之间的区别?我觉得我错过了一个很大的问题。也许我的 plist 中缺少一个属性。
我运行之前遇到过这个问题,你需要运行将buildkite代理作为LaunchAgent并配置自动登录,而不是运行作为LaunchDaemon。