我的应用程序的Info.plist
文件里面有大约20/30个键。我们正在实现的外部SDK需要在Info.plist
中设置其app密钥,但需要单独的密钥来进行调试,企业分发和发布方案。
有没有办法可以为Info.plist
创建条件添加而无需维护文件的三个副本(并复制所有其他键,所有目标都相同)?
基本上我想要的是基本plist
与现在完全相同,然后是其他新的-Debug
,-Distribution
和Release
,它们只包含这个新的键。我试图避免的是重复所有键,因为它将在未来增加新的麻烦。
这可能吗?
答案 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运行脚本,然后再建立”以获取更多链接。