macos - 在 Mac OS X 10.8 上使用 codesign 时出现错误 "The timestamp service is not available."

标签 macos code-signing

我正在使用 Apple Developer ID 证书签署应用程序包。我需要使用命令行工具进行签名,因为我们的构建是自动化的并从我们的工具链运行。 90% 的时间它可以用这个命令正常工作:

ws5:bin nick$ codesign -fs "Developer ID Application: <my name here>" MyApp.app
ws5:bin nick$ spctl --assess MyApp.app
ws5:bin nick$ 

注意:MyApp.app 不是我的真实应用名称,而且 <my name here>不是实际值。

因此,可能 10 次中就有 1 次间歇性地失败并出现此错误:
MyApp.app: The timestamp service is not available.

我已经通过 spctl --assess 验证了 .app 通过隔离机制并通过压缩它并下载签名文件——所以请不要说“你做错了,使用 Xcode”。我知道 Apple 并没有“正式”推荐使用 codesign用于开发人员 ID 证书(根据 WWDC video),但我们需要将其用于自动化,因为我们的应用程序是 gcc 和 Qt 构建输出的奇怪组合。

解决此错误的最佳策略是重试直到它再次起作用吗?我能想到的就这些。

最佳答案

我不能推荐 --timestamp=none 解决方法。如果您没有为您的签名加上时间戳,您的二进制文件将在证书到期时变为未签名/无效。至少如果你给你的签名加上时间戳,只要在证书仍然有效的情况下签署了二进制文件,验证就会通过。这不会对实际被撤销的证书打折扣,但应该为您提供保障,以防有人(可能是您)在证书到期后需要使用您的文件副本。

如果您没有互联网来为您的签名添加时间戳,您也可以完全禁用签名,直到您的连接恢复。

编辑:或者,假设您的连接已启动,但 Apple 的默认时间戳服务器不稳定,您可以选择提供自己的有效时间戳服务器。

关于macos - 在 Mac OS X 10.8 上使用 codesign 时出现错误 "The timestamp service is not available.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11712322/

相关文章:

xcode - Xcode 单元测试中没有播放按钮

python - 如何使 PsychoPy 对象保持 Visual.Window 成为 Windows 7 上最顶层(事件)窗口?

python - 用于 mac 的数字图像相关库

xcode - 即使在 'security unlock-keychain' 之后,codesign 也需要钥匙串(keychain)密码

ios - 无法创建另一个分发证书,已达到可用分发证书的最大数量

用于 Ad Hoc 分发的 XCode 4 的 iPhone 权利问题

iOS 签名程序;吊销证书并上传新版本

linux - 通过 NVM 更改版本时,应该如何更新 Node 检查器等全局包的路径?

macos - OSX 终端在没有提示的情况下从命令行关闭当前选项卡?

google-chrome - 对新应用程序进行代码签名,Windows和chrome会认为它安全吗?