MacOS虚拟机内codesign时间戳服务不可用问题咨询
你的猜测不准确——Apple的时间戳服务并没有对虚拟机设置硬件层面的限制,虚拟机无法登录Apple账号是由于苹果的反虚拟机检测机制,和时间戳服务的问题是两个独立的情况。这个报错通常是网络、配置或时间同步问题导致的。
可行解决方案:
检查网络连通性
确保虚拟机能够正常访问Apple的时间戳服务器,执行以下命令测试:curl https://timestamp.apple.com/ts01
如果无法访问,检查虚拟机的网络模式(比如切换到桥接模式)、宿主机器的防火墙设置,确认没有拦截对外的HTTPS请求。手动指定时间戳服务器
默认服务器可能存在访问波动,尝试手动指定备用的Apple时间戳服务器,修改签名命令为:codesign --sign "Developer ID Application: XXX (XXX)" --timestamp=http://timestamp.apple.com/ts02 myapp.dmg
可以尝试ts01、ts02、ts03这几个服务器地址。临时跳过时间戳(仅测试用)
如果只是本地测试签名,不需要正式分发,可以添加--timestamp=none参数跳过时间戳验证,但此签名在证书过期后会失效,不适合正式发布:codesign --sign "Developer ID Application: XXX (XXX)" --timestamp=none myapp.dmg同步系统时间
虚拟机系统时间与真实UTC时间偏差过大时,会导致时间戳服务验证失败。打开虚拟机的系统偏好设置-日期与时间,勾选“自动设置日期与时间”,确保时间同步正常。验证证书状态
在虚拟机中打开Keychain Access,检查你的Developer ID Application证书是否处于有效状态,并且对应的私钥是否存在(证书左侧有小三角展开显示私钥)。
内容的提问来源于stack exchange,提问作者gregoiregentil

