预处理Root.plist类似于Info.plist

时间:2012-05-23 15:20:25

标签: ios xcode xcode4

我在Xcode构建设置中启用了Info.plist的预处理,将表示CFBundleVersion中版本号的密钥替换为version.h中的相应值。这很有效:VERSION_NUMBER替换为1.0版本中相应的#define VERSION_NUMBER 1.0。我想在Root.plist中做同样的事情,当放入.app / .ipa时plist会更新。

现在我有一个脚本在每次编译时自动更新Root.plist,但是会更新实际的Root.plist,这意味着我将不得不重新提交到版本控制等等。我想生成一个Root.plist编译应用程序,但不触及"真实" plist中。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

据我所知,唯一的方法是使用构建时脚本。您可以通过以下技巧解决版本控制问题:

  • 将您的“模板”Root.plist(即具有预处理程序指令的那个)重命名为Root-template.plist
  • 从脚本中调用预处理器并将其输出到Root.plist
  • 将Root-template.plist提交到您的版本控制
  • 将Root.plist添加到版本控件的忽略列表中(例如,如果使用svn,则必须将Root.plist添加到包含该文件的目录的svn:ignore属性中)