How to solve codesign issue "signature too large to embed"

最近在更换了苹果开发者证书后,用 codesign 签名时会报错:signature too large to embed。大意就是签名数据太大,超出了限制。

根本原因

通过查看 codesign源代码发现,它会对签名数据的大小进行限制,默认限制是 9000。

state.mCMSSize = 9000;

可以通过 --signature-size 这个私有参数来手动控制该限制的值,而不使用这个默认值。该参数并不是 codesign 的公开参数。

具体用法

codesign --signature-size 10000 -s "XXX"

网上看到有人说利用 --timestamp=none 可以解决该问题,但其实是治标不治本。--timestamp=none 本身会减少签名数据的大小,所以才看似有效果。


查看源代码的小窍门

区别就是链接里面的 sourcetarballs


知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。
Comments Share