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

Ios 预处理Root.plist,类似于Info.plist,ios,xcode,xcode4,Ios,Xcode,Xcode4,我已经在Xcode构建设置中启用了Info.plist的预处理,以将CbundLeverVersion中表示版本号的键替换为version.h中的相应值。这非常有效:VERSION.h中对应的#define VERSION.u编号1.0将用1.0替换VERSION_编号。我也希望在Root.plist中执行同样的操作,其中plist在放入.app/.ipa时会更新 现在,我有一个脚本可以在每次编译时自动更新Root.plist,但它会更新实际的Root.plist,这意味着我必须重新提交给版本控

我已经在Xcode构建设置中启用了Info.plist的预处理,以将CbundLeverVersion中表示版本号的键替换为version.h中的相应值。这非常有效:VERSION.h中对应的#define VERSION.u编号1.0将用1.0替换VERSION_编号。我也希望在Root.plist中执行同样的操作,其中plist在放入.app/.ipa时会更新

现在,我有一个脚本可以在每次编译时自动更新Root.plist,但它会更新实际的Root.plist,这意味着我必须重新提交给版本控制等。我想在编译后的应用程序中生成Root.plist,但不要触摸“真正的”plist


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

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

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

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

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