gpt4 book ai didi

java - Apple 公证将 dylib 文件列为未签名

转载 作者:行者123 更新时间:2023-12-01 10:03:18 25 4
gpt4 key购买 nike

我们分发了一个带有捆绑 JRE 的 Java 应用程序,1.8.0_172。我使用标志 -f --deep 和 --options 运行时对应用程序进行签名。查看捆绑 JRE 的 _CodeSignature 目录中的 CodeResources 文件,JRE 中的每个文件都经过签名和说明。

但是,在将包含该应用程序的 DMG 提交给 Apple 进行公证后,我们的软件被拒绝。 JRE 中的所有 60 个 DYLIB 文件都列为未签名。下面是一个例子:

从代码资源文件:

<key>Home/jre/lib/libAppleScriptEngine.dylib</key>
<dict>
<key>hash</key>
<data>
oJjQQGky4LuYNhwuBu8zMLG4zbc=
</data>
<key>hash2</key>
<data>
grMACw0q7A9GJyPxlSBDGYEkZKrDusKLRRnXsW/bHGI=
</data>
</dict>

来自苹果的回应:
"severity": "error",
"code": null,
"path": "TheApplication.dmg/TheApplication.app/Contents/PlugIns/jdk1.8.0_172.jdk/Contents/Home/jre/lib/libAppleScriptEngine.dylib",
"message": "The binary is not signed.",
"docUrl": null,
"architecture": "x86_64"

除了 dylib 文件之外,文件 jspawnhelper 也因未签名而被拒绝。

最后,libjli.dylib 文件被拒绝,原因如下:
“二进制文件使用的 SDK 早于 10.9 SDK。”

有没有人遇到过类似的问题然后能通过公证的过程?

2020 年 1 月 14 日:
我在这个网站上使用的步骤 http://www.zarkonnen.com/signing_notarizing_catalina
从今天起不工作。苹果改变了他们的限制。我现在遇到了与我在这篇文章中第一次问到的问题相同的问题。

2020 年 2 月 21 日:
事实证明,列为未签名的文件实际上并未签名。我现在使用 shell 脚本对我们应用程序中的每个文件进行递归签名。我遵循这一点,对捆绑的 JRE、其他内部应用程序以及最后整个顶层应用程序进行全面签名。

剩下的问题是 Java 8 不是用使用强化运行时的文件构建的。希望 OpenJDK 和/或 AdaptOpenJDK 很快就会有新版本的 Java 8 来满足 Apple 强化的运行时要求。

最佳答案

这是 Java 8 中的一个错误:https://bugs.openjdk.java.net/browse/JDK-8223671

这个问题最快的解决方案可能来自于当月末的 AdaptOpenJDK:https://github.com/AdoptOpenJDK/openjdk-build/issues/1130

关于java - Apple 公证将 dylib 文件列为未签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53509558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com