在 Eclipse 产品构建后编辑 Info.plist
Posted
技术标签:
【中文标题】在 Eclipse 产品构建后编辑 Info.plist【英文标题】:Edit the Info.plist after eclipse product build 【发布时间】:2014-06-26 10:21:40 【问题描述】:我有一个使用 Eclipse 构建的基于功能的产品。我的问题是我在rcp应用程序上集成了“自我更新”功能,更新后,应用程序包被重写(我的意思是.app包,包括Info.plist)。我必须编辑 Info.plist,因为我有一些重要的键(比如关键的 LSBackgroundOnly 和“-vm”eclipse 参数,以防客户端没有在他们的计算机上安装 JRE)。所以,更新后,我所有的修改都被删除了,我想保留它们。
我的问题是:
是否可以提供自定义 Info.plist 以由 Eclipse 自动打包到包中?如果是这样,我该怎么做?
如果没有,我可以添加一些属性,这些属性会被 eclipse 自动添加到 Default Info.plist 中吗?如果有,怎么做?
感谢您的帮助。
纳鲁蒂姆8
【问题讨论】:
【参考方案1】:显然,没有简单的方法可以为 Eclipse RCP 产品提供自定义 Info.plist 文件 - 请参阅带有功能请求的 Eclipse Bugzilla 339526。
如果您使用Maven Tycho 构建,您可以在materialize-product
之后和archive-product
之前更新Info.plist。对于自我更新,您还需要更新存储库中的 Info.plist。
我写了这个小 fix-info-plist-maven-plugin 来在我自己的 Tycho 产品构建中做到这一点。
【讨论】:
感谢您的意见!实际上,我只使用了 Maven 很短的时间(一个月的实习),从那以后我没有做过任何 Java。我投了赞成票,也许有人会发现您的回答很有用:)【参考方案2】:您可以尝试添加该行:
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
【讨论】:
我刚刚尝试了您的建议。起初,我认为它不起作用,但在尝试了另一种方式(更改 info.plist 名称)后,该文件是在导出中创建的。结论是它可以工作,但不是我想要的...... Info.plist 在被复制后被 eclipse 覆盖:( 如果您使用 xxx.product 文件使用Export > Eclipse product
,请尝试检查 Generate p2 repository
选项。出于某种原因,选择该选项后,事情会按照我想要的顺序发生。
不幸的是,这个选项总是被选中...我将尝试不选中它,看看它是否有效【参考方案3】:
所以,终于找到了解决方案,简单到我都没有想过……
诀窍是在代码中找到应用程序启动更新的正确位置,并将 Info.plist 复制到另一个位置(或制作一个 临时文件)。
我们还必须找到更新后调用的方法(在我们的例子中是在应用程序重新启动之前),然后移回Info.plist(或从临时文件中写入文件)。我刚刚测试过它,它就像一个魅力;)
PS:Info.plist 由应用安装后启动的脚本编辑,由 .pkg 提供。
希望这会有所帮助,
narutim8
【讨论】:
以上是关于在 Eclipse 产品构建后编辑 Info.plist的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - iOS 模拟器部署目标“IPHONEOS_DEPLOYMENT_TARGET”设置为 7.0 && 无法找到构建输入文件 GoogleService-Info.pl