ITMS-90238:使用捆绑的 AdoptOpenJDK 提交到 AppStore 时签名无效

ITMS-90238: Invalid Signature when submitting to AppStore with bundled AdoptOpenJDK

将我的应用程序提交到 AppStore 时,我从 Apple 收到了这条消息:

ITMS-90238:签名无效 - 路径 MyApp.app/Contents/PlugIns/adoptopenjdk-8.jdk/Contents/Home/jre/lib/libfreetype.dylib.6 的可执行文件具有以下内容签名错误:在磁盘上有效 /Volumes/data01/app_data/app-processing/mz_16965903542122982835dir/mz_15396195148822940240dir/myPackage.pkg/Payload/MyApp.app/Contents/PlugIns/adoptopenjdk-8.jdk/Contents/Home/jre/lib/libfreetype.dylib.6:满足其指定要求测试要求:代码未能满足指定代码要求。有关详细信息,请参阅 http://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/AboutCS/AboutCS.html and Technical Note 2206 at https://developer.apple.com/library/mac/technotes/tn2206/_index.html 处的代码签名和应用程序沙盒指南。

该应用程序在 Oracle JDK 中提交得很好,因此这个 libfreetype.dylib.6 文件一定有一些特别之处。

似乎有 2 个文件 libfreetype.dylib.6 和 libfreetype.6.dylib 在 AdoptOpenJDK 中具有相同的内容。我使用过滤器来签署 *.dylib 文件,因此 libfreetype.dylib.6 文件未包含在过滤器中,因此未签名。通过更新过滤器以也包括 *.dylib.* 问题得到解决。

Oracle JDK 没有出现这个问题,因为在 Mac OS X 上它没有分发 libfreetype 库。