5

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

有没有一种方法可以创建有条件的添加,Info.plist而不必维护文件的三个副本(并复制所有其他键,它们在所有目标中都是相同的)?

基本上我想要的是与现在完全一样的基础,plist然后是额外的 new和只包含这个新密钥的那些。我要避免的是所有键的重复,因为这会使将来添加新键变得很麻烦。-Debug-DistributionRelease

这可能吗?

4

1 回答 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。这些链接可能会有所帮助:将文件从脚本添加到 Xcode 项目?,

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

以下是一些可能有帮助的链接:如何让 xcode 在依赖项之前运行脚本?, https://www.objc.io/issues/6-build-tools/build-process/ , Xcode:在每次构建之前运行一个直接修改源代码的脚本,但您也可以在 Google 上搜索“构建前的 xcode 运行脚本”更多链接。

于 2015-12-13T17:58:42.450 回答