我有一个用Java编写的应用程序。我在Windows计算机上使用Eclipse创建.jar,并将其传输到Mac。我使用appbundler创建.app目录,并使用pkgbuild创建.pkg安装程序。在升级到Catalina之前,它一直运行良好。
我正在使用从https://github.com/ome/appbundler下载的最新版本的appbundler。这是我的build.xml:
<project name="Stopwatch" default="bundle-Stopwatch" basedir=".">
<!-- Import environment variables -->
<property environment="env"/>
<taskdef name="bundleapp"
classname="com.oracle.appbundler.AppBundlerTask"
classpath="lib/appbundler-1.0ea.jar" />
<target name="bundle-Stopwatch">
<delete dir="appBundle" failonerror="false"/>
<mkdir dir="appBundle"/>
<bundleapp outputdirectory="appBundle"
name="Stopwatch"
displayname="Stopwatch"
identifier="com.intonia.stopwatch.Stopwatch"
icon="Stopwatch.icns"
mainclassname="com.intonia.stopwatch.Stopwatch">
<classpath file="Stopwatch.jar"/>
<option value="-Xdock:icon=Stopwatch.icns"/>
</bundleapp>
</target>
</project>
我跑步
$ ant
创建appBundle/Stoppwatch.app
。然后
$ pkgbuild -- root appBundle Stopwatch.pkg
我第一次在查找器中双击Stopwatch.pkg
时,它运行完毕,并且该应用程序可以运行,但是它替换了我的开发目录中的副本。要将Stopwatch安装在Applications目录中,必须运行
$ sudo pkgutil --forget com.intonia.stopwatch.Stopwatch
然后,当我再次运行Stopwatch.pkg
时,安装程序要求输入密码后,它将报告:“此软件包与该版本的macOS不兼容。该软件包正在尝试将内容安装到系统卷中。” >
请注意,我上面显示的示例已简化为基本元素。我已经尝试过使用大型,复杂的.jar和小型简单的.jar。我已经尝试过在没有绑定JVM的情况下以及在没有代码签名的情况下进行尝试。我已经能够成功对应用程序进行公证,但是无论是否进行公证,我都能获得完全相同的结果。
我以前曾发表过这样的想法,认为这是公证问题,但显然不是。
其他人是否能够在Catalina下使用带有.jar文件的appbundler和pkgbuild?