我正在尝试对我的应用程序包应用程序进行公证,但有一个来自 3rd 方公司的 jar 文件,其中包含一个 jnilib 文件。(这是一个非常古老的 jar 文件,没有为苹果公证)我的应用程序包有许多嵌套目录,我想这就是为什么当我试图用
codesign -f --deep --options runtime --timestamp -s
命令,当我发送我的应用程序进行公证时,苹果的公证服务返回一个错误,说 jar 下的 jnilib 文件未经过公证。
我的问题是,这个 jar 文件已签名(可能使用 jarsigner),当我提取 jar 时,对 jnilib 进行公证,然后再次制作文件夹 jar,我的应用程序无法正常工作。我试图通过删除 SUB_SYST.RSA 和 SUB_SYST.SF 来删除该标志,我还删除了 MANIFEST.MF 中的 SHA1-Digest 记录,但它不起作用。
奇怪的是,如果我删除 RSA 和 SF 文件而不将它们提取到文件夹中,例如使用删除
zip -d tej-v25.jar 'META-INF/*'
我的应用程序正在运行。(当然在这种情况下我不能公证 jnilib 文件)
我的问题是:
- 是否可以在不将 jar 提取到文件夹的情况下对该 jnilib 文件进行公证
- 将 jar 提取到文件夹后,然后再次制作 jar 文件会损坏我的 java 应用程序,可能是什么原因?