每个方案的多个Info.plist文件之间有一个不同的密钥?

时间:2015-03-17 09:53:33

标签: ios xcode plist info.plist xcode-scheme

我的应用程序的Info.plist文件里面有大约20/30个键。我们正在实现的外部SDK需要在Info.plist中设置其app密钥,但需要单独的密钥来进行调试,企业分发和发布方案。

有没有办法可以为Info.plist创建条件添加而无需维护文件的三个副本(并复制所有其他键,所有目标都相同)?

基本上我想要的是基本plist与现在完全相同,然后是其他新的-Debug-DistributionRelease,它们只包含这个新的键。我试图避免的是重复所有键,因为它将在未来增加新的麻烦。

这可能吗?

1 个答案:

答案 0 :(得分:1)

您可能会尝试一些不同的事情。

在app构建之前执行的Xcode运行脚本 这是一个在构建之前自动执行的脚本。假设3个重复的plist文件名为InfoA.plist,InfoB.plist和InfoC.plist,它们都是完全重复的。构建项目时,InfoA.plist的内容将复制到InfoB.plist和InfoC.plist。这需要一些编写shell脚本的知识才能做到这一点,但脚本非常简单。

您可以复制并重命名脚本中的文件。或者,您可以使用命令行工具将主文件的内容复制到重复文件中。可用于修改plist文件内容的两个命令行实用程序是plutil和https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/PlistBuddy.8.html。这些链接可能有所帮助:Add files to an Xcode project from a script?

修改方案并添加预先行动 您的方案还允许您向构建添加预操作,您可以执行与上面相同的操作,但将其配置为预操作而不是构建阶段脚本。

以下是一些可能有用的链接:how to make xcode run a script before dependencies?https://www.objc.io/issues/6-build-tools/build-process/Xcode: Running a script before every build that modifies source code directly但您也可以通过谷歌搜索“xcode运行脚本,然后再建立”以获取更多链接。