Apple公证列出dylib文件未签名

时间:2018-11-27 23:01:57

标签: java macos notarize

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

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

从CodeResources文件中:

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

来自Apple的回复:

"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。”

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

1 个答案:

答案 0 :(得分:0)

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

最快希望通过本月底前的AdoptOpenJDK解决此问题:https://github.com/AdoptOpenJDK/openjdk-build/issues/1130