我想在我的应用程序的设置包中包含应用程序版本和内部修订版,例如 1.0.1 (r1243)。
Root.plist 文件包含这样的片段......
<dict>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
<key>Title</key>
<string>Version</string>
<key>Key</key>
<string>version_preference</string>
<key>DefaultValue</key>
<string>VersionValue</string>
<key>Values</key>
<array>
<string>VersionValue</string>
</array>
<key>Titles</key>
<array>
<string>VersionValue</string>
</array>
</dict>
我想在构建时替换“VersionValue”字符串。
我有一个脚本可以从我的存储库中提取版本号,我需要的是一种在构建时处理(预处理)Root.plist 文件并替换修订号而不影响源文件的方法。
还有另一种解决方案比前面的任何一个答案都简单得多。 Apple 捆绑了一个名为普利斯特巴迪在它的大部分安装程序中,并已将其包含在 Leopard 中:/usr/libexec/PlistBuddy
.
既然你想更换VersionValue
,假设您已将版本值提取到$newVersion
,你可以使用这个命令:
/usr/libexec/PlistBuddy -c "Set :VersionValue $newVersion" /path/to/Root.plist
无需摆弄 sed 或正则表达式,这种方法非常简单。请参阅man page http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/PlistBuddy.8.html获取详细说明。您可以使用 PlistBuddy 添加、删除或修改属性列表中的任何条目。例如,我的一个朋友在博客中提到增加 Xcode 中的内部版本号 http://davedelong.com/blog/2009/04/15/incrementing-build-numbers-xcode使用 PlistBuddy。
Note:如果您仅提供 plist 的路径,PlistBuddy 会进入交互模式,因此您可以在决定保存更改之前发出多个命令。我绝对建议在将其放入构建脚本之前执行此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)