我的应用程序的 Info.plist
文件里面有大约 20/30 个键。我们正在实现的外部 SDK 需要在 Info.plist
中设置其应用程序 key ,但需要单独的 key 用于调试、企业分发和发布方案。
有没有一种方法可以在 Info.plist
中创建条件添加,而不必维护文件的三个副本(并复制所有其他键,这些键在所有目标中都是相同的)?
基本上我想要的是与现在完全一样的基本 plist
,然后是额外的新 -Debug
、-Distribution
和 Release
那些,其中只包含这个新 key 。我要避免的是重复所有键,因为这会使将来添加新键变得很麻烦。
这可能吗?
最佳答案
您可以尝试几种不同的方法。
在应用程序构建之前执行的 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? ,
修改scheme,增加pre-action 您的方案还允许您向构建添加预操作,您可以执行与上述相同的操作,但将其配置为预操作而不是构建阶段脚本。
以下是一些可能有帮助的链接: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 run script before build”以获得更多链接。
关于ios - 每个方案的多个 Info.plist 文件之间有一个不同的 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29095994/