在eclipse产品构建之后编辑Info.plist

时间:2014-06-26 10:21:41

标签: java eclipse eclipse-rcp info.plist

我有一个基于功能的产品,它是使用Eclipse构建的。我的问题是我已经在rcp应用程序上集成了“自我更新”功​​能,并且在更新之后,应用程序包被重写(我的意思是.app包,包括Info.plist)。我必须编辑Info.plist,因为我有一些重要的键(如LSBackgroundOnly是关键的,以及“-vm”eclipse参数,以防客户端没有在他们的计算机上安装JRE)。因此,在更新后,我的所有修改都将被删除,我想保留它们。

我的问题是:

  • 是否可以提供自定义Info.plist以便Eclipse自动打包在捆绑包中?如果是这样,我该怎么办?

  • 如果没有,我可以添加一些属性,这些属性将被eclipse自动添加到Default Info.plist中吗?如果是这样,怎么样?

感谢您的帮助。

Narutim8

3 个答案:

答案 0 :(得分:2)

显然没有简单的方法可以为Eclipse RCP产品提供自定义Info.plist文件 - 请参阅带有功能请求的Eclipse Bugzilla 339526

如果使用Maven Tycho进行构建,则可以在materialize-product之后和archive-product之前更新Info.plist。对于自我更新,您还需要更新存储库中的Info.plist。

我已经在我自己的Tycho产品版本中写了这个小fix-info-plist-maven-plugin

答案 1 :(得分:0)

您可以尝试添加以下行:

root.macosx.cocoa.x86_64.folder.YourAppName.app/Contents=file:Info.plist

到您产品功能之一的build.properties文件(必须是功能而不是插件)。

将修改后的Info.plist文件放在同一目录中。

YourAppName是您的申请名称。

该示例将Info.plist复制到YourAppName.app/Contents文件夹,但仅在构建适用于64位Mac OS X时才会复制。

有关'根文件'

的详细信息,请参阅here

答案 2 :(得分:0)

所以,最后我找到了一个解决方案,这么简单,我甚至没想过......

诀窍是在代码中找到应用程序启动更新的正确位置,并在其他位置复制 Info.plist (或创建临时文件)。

我们还必须找到刚刚更新后调用的方法(在我们的案例中应用程序重新启动之前),然后返回 Info.plist (或者从临时文件中写入文件)。我刚试过它,它就像一个魅力;)

PS:Info.plist由应用程序安装后启动的脚本编辑,由 .pkg 提供。

希望这会有所帮助,

narutim8