为项目/工作区中的所有 Xcode 目标声明一个通用 Xcode 变量以在 plist 中使用

Posted

技术标签:

【中文标题】为项目/工作区中的所有 Xcode 目标声明一个通用 Xcode 变量以在 plist 中使用【英文标题】:Declare a common Xcode variable for use in plist for all Xcode targets in a project/workspace 【发布时间】:2016-09-05 06:53:32 【问题描述】:

我有一个 Xcode 项目,它有多个目标。我想在某个地方定义一个变量(准确地说是内部版本号的变量),我可以在每个项目的 Info.plist 中引用 Bundle version 而不单独更新它们。例如我将为每个目标将捆绑版本设置为$(BUILD_NUMBER) 一次(我已经编造了名称),然后我将在每个版本中增加BUILD_NUMBER 变量。这可能吗?如果是,如何?我见过Adding a build configuration in Xcode 和How to create variables for use in Xcode build settings values?,但设置是灰色的:

【问题讨论】:

首先,您需要转到“构建设置”并选择一个配置(可能是调试或发布)。然后将启用“添加条件设置”或“添加用户定义的设置”。这个link 部分说明了它是如何完成的。其次,当其他开发人员介入并开始在同一个项目中工作时,手动增加内部版本号可能会很痛苦。您可能需要考虑使用一些 CI 解决方案,例如 fastlane @ozgur 它运行良好。您能否将其发布为答案以便我接受? 坦率地说,我的回答并未涵盖您关于如何以编程方式更改用户定义变量的实际问题,因此,我宁愿保持原样。但是,很高兴听到它对您有用。 @ozgur 实际上我的问题主要是关于能够声明一个公共变量,自动递增会很好但不是强制性的。 @ozgur 并仅使用 CI 解决方案来增加内部版本号在我的情况下有点过分:) 但没关系 【参考方案1】:

首先,您需要转到Build Settings 并选择一个配置(可能是Debug 或Release)。然后添加条件设置添加用户定义的设置选项将被启用。这个link 说明了它是如何完成的。

其次,手动增加内部版本号可能容易出错,尤其是在其他一些开发人员介入并开始处理同一项目之后。您可能需要考虑使用一些 CI 解决方案,例如 fastlane。它使用agvtool 进行应用程序版本控制,因此您可能还想查看它。

【讨论】:

完美运行。只是一个快速的补充:我没有选择诸如调试或发布之类的配置,我只是去了项目的构建设置并按照步骤操作。它适用于调试和发布(或任何其他配置),这正是我需要的。

以上是关于为项目/工作区中的所有 Xcode 目标声明一个通用 Xcode 变量以在 plist 中使用的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 方案构建目标中的构建顺序

如何在 Xcode 7 中动态更改单元测试的目标?

Xcode 将多个框架添加到多个目标和项目

如何在 Xcode 4.5“命令行工具”项目中设置工作逻辑单元测试目标?

Xcode 项目中多个目标的特定关联域

将 Core Data 添加到现有 Xcode 项目时出现未声明的标识符错误