我正在使用codesign实用程序对mac上的文件进行签名。命令是:codesign --sign <IDENTITY> --keychain <KEYCHAIN_PATH>
当我验证我的签名有效载荷时,我会看到以下字段:
Format=Mach-O thin (x86_64)
Hash type=sha256 size=32
CandidateCDHash sha256=
Hash choices=
CDHash=
Signature size=
Authority=Developer ID Application: <Signing Identity>
Authority=Developer ID Certification Authority
Authority=Apple Root CA
**Timestamp=May 6, 2020 at 1:39:04 AM**
Info.plist=
TeamIdentifier=
Sealed Resources=none
这是否意味着负载默认带有时间戳?我还阅读了苹果公司的技术说明,其中说明了以下证书有效期:
默认情况下,开发人员ID签名带有加密时间戳。带有加密时间戳的签名将根据签名时间进行验证,并且使用过期(在签名时(证书进行的签名无效。前面的讨论仍然适用于没有安全时间戳的开发人员ID签名
https://developer.apple.com/library/archive/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG7
我需要做一些特定的事情来确保启用了时间戳吗?还是默认情况下为ON?
来源https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution/resolving_common_notarization_issues
默认情况下,Xcode不包含安全时间戳作为生成过程中应用程序的代码签名。相反,它添加了仅在存档(从Xcode 10.2起(和导出期间使用安全时间戳工作流。
您的签名表明您的情况是隐含的后一种情况。您可以在代码签名期间显式启用安全时间戳:
codesign --timestamp --sign <IDENTITY> --keychain <KEYCHAIN_PATH>