0

我有一个使用预编译头文件处理的 plist,其中有在 CFBundleGetInfoString 等字段中多次使用的“变量”VERSION_STRING,即键 CFBundleGetInfoString 的值是:MyProduct VERSION_STRING 版权所有 © 2009 MyCorp

在 MyHeader.h (这是作为 Info.plist 前缀标题的集合,我希望能够将 VERSION_STRING 构建到我拥有的 MAJOR.MINOR.PATCH.BUILD 的形式中

#define MAJOR 1
#define MINOR 0
#define PATCH 0
#define BUILD 23

由于某种原因,我似乎无法做到这一点。我可能只是其中一个时刻

4

2 回答 2

1

事实证明,这实际上是一个 Apple 技术说明,也是我遇到的问题的解决方案。因此,对于任何可能遇到此问题并遇到相同问题的人,我查看了技术说明 TN2175:使用 C 预处理器在 Xcode 中预处理 Info.plist 文件

于 2009-12-20T19:33:19.987 回答
0

获取您的 plist 文件并使用额外的扩展名(可能是 P?)重命名它。添加#include "MyHeader.h"到文件的开头,并在您的构建中使用 C 预处理器(通常cpp)对其进行预处理。您可能需要过滤掉多余的#行,但我不明白为什么它不起作用。

默认情况下,cpp应该输出到标准输出,所以添加这样的命令可能会正常工作:

cpp myplist.plist.P | grep -v '^#' > myplist.plist
于 2009-12-08T21:48:37.383 回答