首页 > 解决方案 > Mac OSX 应用商店应用程序上的 install4j 启动器问题

问题描述

我们正在使用 install4j 为我们的 Java 应用程序 PDF Studio 创建安装程序。

我们目前正在尝试将我们的应用程序提交到 Apple 商店,为此,我们需要一个 pkg 文件。我们从 Application 文件夹中创建了一个 pkg 文件,该文件是在运行 install4j 创建的 dmg 安装程序后创建的,并且正在努力一一删除 Apple 商店报告的所有警告和错误。

我们遇到的一个问题是 Apple 商店不允许使用符号链接,并且 JRE 包含一个名为 libjli.dylib 的文件的符号链接。

当我们尝试删除符号链接或将其替换为实际文件时,我们应用程序的 i4j 启动器已损坏。

当我们从安装文件夹中删除文件时:

rm /Applications/PDF\ Studio\ 2018.app/Contents/PlugIns/jre.bundle/Contents/MacOS/libjli.dylib

我们在启动时收到一条错误消息,提示“无法加载 Java SE 8”,因为无法找到它的可执行文件。”

如果我们尝试将文件复制到符号链接位置:

cp /Applications/PDF\ Studio\ 2018.app/Contents/PlugIns/jre.bundle/Contents/Home/jre/lib/jli/libjli.dylib /Applications/PDF\ Studio\ 2018.app/Contents/PlugIns/jre。捆绑包/内容/MacOS

然后启动器失败,没有错误消息对话框。

如果我们在启用 install4j 日志的情况下运行:

INSTALL4J_LOG=yes /Applications/PDF\ Studio\ 2018.app/Contents/MacOS/JavaApplicationStub

然后它将打印“错误:找不到 libjava.dylib。”

有没有人试图做到这一点并让它发挥作用?

似乎启动器正在/MacOS/libjli.dylib 下查看。我们认为是由 install4j 创建的 JavaApplicationStub 可执行文件决定在哪里查找。

有没有办法设置启动器查找 jre.bundle 可执行文件 libjli.dylib 的位置?

标签: install4j

解决方案


您可以提取 DMG 并编辑 Info.plist 文件,使其包含

<key>CFBundleExecutable</key>
<string>../Home/jre/lib/jli/libjli.dylib</string>

我们将检查我们是否可以做到这一点。


推荐阅读