每个方案使用多个Info.plist文件的一个不同的关键是什么?

5
我的应用程序的Info.plist文件里有大约20/30个键。我们正在实现一个外部SDK,它要求在Info.plist中设置其应用程序密钥,但需要为调试、企业分发和发布方案分别设置不同的密钥。
是否有一种方法可以创建有条件的添加到Info.plist,而不必维护三个文件的副本(以及所有其他键,这些键在所有目标中都相同)?
基本上,我想要的是与现在完全相同的基本plist,然后是额外的新-Debug、-Distribution和Release,它们只包含这个新密钥。我试图避免重复所有键,因为这将使未来添加新键变得麻烦。
这可能吗?
1个回答

1

你可以尝试几种不同的方法。

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?

修改方案并添加预操作

您的方案还允许您向构建中添加预操作,您可以像上面那样执行相同的操作,但将其配置为预操作而不是构建阶段脚本。

以下是一些可能有用的链接:如何使xcode在依赖关系之前运行脚本?, https://www.objc.io/issues/6-build-tools/build-process/, Xcode:在每次构建之前运行直接修改源代码的脚本 但您也可以搜索“xcode run script before build”以获取更多链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接