向Mac Store提交应用程序时出现macos Java错误(不推荐使用API)
我试图将Java应用程序提交到mac store(当然,JRE是捆绑的),但出现了著名的“无效二进制错误”。在iTunes发来的电子邮件中,我收到了这样一条信息:“苹果不再接受使用Quick Time API的应用提交”。这可能意味着捆绑的JRE指向QTKit框架或QuickTime框架。我检查过了,MAC OS X 10.9不再支持这个API
我使用Java1.7.40
有人知道Java在哪里引用这些框架,以及是否有可能删除这些二进制文件吗?我认为这是一个全新的问题,我希望有解决办法
谢谢, 卢布斯
# 1 楼答案
我像预期的那样更快地解决了这个问题。以下是一些细节
在绑定的JRE目录上运行Unix命令otool-L以查找所有*dylib文件。这将列出所有动态库文件的所有引用。然后你只需要在结果中搜索字符串 “QTKit”。 在java 1.7.40中,有两个库引用了该框架:
libgstplugins-lite。dylib, libjfxmedia。动态库
如果你的应用程序没有使用它们,你很幸运,只需删除它们
Unix命令示例:
otool-L/Library/Java/JavaVirtualMachines/jdk1。7.0_40.jdk/Contents/Home/jre/lib/*dylib
希望这能帮助那些想在GTKit之后将Java应用提交到Mac应用商店的人。框架在OS X 10.9中被弃用
注意:这对Java 1.7.40有效,可能是对于新的Java版本,这已经被修复了
问候
卢布斯