我有一个基于功能的产品,它是使用Eclipse构建的。我的问题是我已经在rcp应用程序上集成了“自我更新”功能,并且在更新之后,应用程序包被重写(我的意思是.app包,包括Info.plist)。我必须编辑Info.plist,因为我有一些重要的键(如LSBackgroundOnly是关键的,以及“-vm”eclipse参数,以防客户端没有在他们的计算机上安装JRE)。因此,在更新后,我的所有修改都将被删除,我想保留它们。
我的问题是:
是否可以提供自定义Info.plist以便Eclipse自动打包在捆绑包中?如果是这样,我该怎么办?
如果没有,我可以添加一些属性,这些属性将被eclipse自动添加到Default Info.plist中吗?如果是这样,怎么样?
感谢您的帮助。
Narutim8
答案 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