我正在为Linux,Windows和Mac开发软件,并在应用商店之外分发该软件。该软件是经过数字签名的(当然),我在Mac上使用带有嵌入式jre的应用程序捆绑包,而在Windows上则安装了类似的解决方案(已安装NSIS和launch4j启动器)。到目前为止,我没有找到用于更新/修补Mac OS X应用程序捆绑包的实用解决方案,并且我想知道,除了完全替换应用程序捆绑包之外,是否有针对此问题的解决方案。我读过关于sparkle的文章,但是由于我不使用XCode而是使用Java / Eclipse,因此很难使其正常工作。
是否可以将已使用相同签名签名的另一个应用程序写入现有应用程序捆绑包中?
答案 0 :(得分:0)
我不知道一种在macOS上自动更新/修补/切片 signed Java应用程序捆绑包的方法,而无需将它们完全替换为更新版本。
理论上,您可以通过脚本编写适当的JAR / files / etc的替换来修补已签名的应用程序。然后在应用捆绑包目录中更新签名:
/ Contents / _MASReceipt /
我自己还没有尝试过,所以我在那里没有什么可提供的,但是它应该可行。
常规/替代信息:
如果这有帮助:通常,使Java应用程序与macOS完美融合需要使用XCode的JarBundler和/或外部构建插件(使用Ant和/或Maven)。如果您想了解更多有关这些内容的信息,请参考以下内容。
使用Xcode / JarBundler为macOS打包Java应用程序: https://alvinalexander.com/apple/mac/java-jar-bundler/
使用Ant任务来处理自动构建脚本中的打包: https://alvinalexander.com/apple/mac/java-jar-bundler/Jar_Bundler_as_Ant_task.shtml
使用Apple的Java库和Maven插件打包您的应用程序: https://blog.lerk.io/packaging-a-jar-as-app-for-macos/
听起来您可能已经知道这些知识,但也许对其他阅读者会有所帮助。