Java - 将应用程序提交到Mac Store时出错(不建议使用的API用法)

Lub*_*bos 3 java macos app-store

我试图将Java应用程序提交到mac商店(当然JRE是捆绑的),但得到了着名的"无效二进制错误".在来自iTunes的电子邮件中,我收到消息"Apple不再接受使用Quick Time API的应用程序的提交".这可能意味着捆绑的JRE指向QTKit Framework或QuickTime Framework.我检查过,MAC OS X 10.9不再支持此API.

我使用Java 1.7.40.

有没有人知道Java在哪里引用这些框架,是否有可能删除这些二进制文件?我认为这是一个非常新鲜的问题,我希望有解决方案.

谢谢,Lubos

Lub*_*bos 6

我按照预期更快地解决了这个问题.这是一些细节.

在捆绑的JRE目录上运行Unix命令otool -L以查找所有*dylib文件.这将列出所有dylib文件的所有引用.然后你只需要在结果中搜索字符串"QTKit".在java 1.7.40的情况下,有2个库,引用该框架:

libgstplugins-lite.dylib,libjfxmedia.dylib

如果您的应用程序不使用它们,那么您很幸运,只需删除它们即可.

Unix命令示例:

otool -L /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/*dylib

希望这会帮助那些想要在OS X 10.9中弃用GTKit.framework之后将Java应用程序提交到Mac商店的人.

注意:这对Java 1.7.40有效,对于新的java版本,这可能已经修复.

问候,

Lubos