努力公证使用install4j v8.0.8创建的 DMG 。这就是我所做的:
- install4j 在 Windows 机器上运行
- 我们使用打包成 DMG 的“MacOS 文件夹存档”媒体
- 使用有效的“开发人员 ID 申请”证书按要求对所有内容进行签名
- 然后将 DMG 带到 MacOS 机器(Big Sur)上,我们用自己的脚本进行公证
- 公证失败并出现错误“二进制文件的签名无效”指向一个特定文件
当我使用 Mac 工具检查该二进制文件的签名时,它看起来非常好。当我检查 DMG 的签名时,它看起来也很好:
$ codesign -vd --verbose=4 path-to-failed-binary
$ codesign -vvv --deep --display path-to.dmg
当我从包中删除这个特定的二进制文件时,应用程序会得到很好的公证(包内还有许多其他二进制文件,比如 JRE)。环顾四周,我发现与压缩包的方式有关的类似问题。
如果甚至可以使用 install4j 在 Windows 机器上创建 DMG,然后在 Mac 上进行手动公证,这让我犹豫不决?或者,install4j 创建 DMG 包有什么问题吗?