Xcode:如何使用每个配置不同的多个“显示名称”值?

use*_*023 8 xcode ios

在 Xcode 中,我们使用多种配置来编译多个具有不同捆绑 ID 和显示名称的不同应用程序。

虽然“Identity -> Bundle Identifier”正确显示灰色的“”只读值,但这与“Identity -> Display Name”不同,从而导致所有配置都有一个通用名称。

请注意,我们为每个配置的“构建设置 -> 产品名称”属性添加了不同的值,因为 CFBundleDisplayName 的 Info.plist 条目是 $(PRODUCT_NAME)。

我们尝试使用空白的“身份->显示名称”,最初这是有效的(名称最终是配置的“构建设置->产品名称”提供的名称)。

然而,在某些时候(我们认为切换方案时),“身份 -> 显示名称”再次采用通用名称(用于 .app 文件名的名称),这导致了所有不同的“构建设置 -> 产品名称”值被相同的通用名称取代。

这是一个错误吗?我们应该怎么做才能使“身份->显示名称”不可编辑,而是从配置值中获取其值(就像捆绑包 ID 那样)?

注意:我们还尝试了此处提供的所有建议:Xcode 方案更改显示名称 它们不起作用,请参阅答案下面的一些评论。

Thi*_*ijs 5

Xcode 14 及更高版本的更新:您可以单击(选项卡下方)+文本输入后面的图标,并为每个构建配置设置一个值。Display NameIdentityGeneral

对于旧版本的 Xcode:

创建不同的构建配置后,您可以为每个构建配置使用用户定义的设置来设置显示名称。

为此,您需要单击 选项Build Settings卡,在构建设置选项卡中,您需要单击+左上角的图标,然后选择Add User-Defined Setting。用户定义的设置中(位于选项卡底部Build Settings)将创建一个名为 的新条目NEW_SETTING。将其重命名为您想要的任何名称,例如APP_DISPLAY_NAME. 如果展开此设置(通过单击其左侧的 V 形图标),您可以为每个构建配置设置一个值。

现在返回General选项卡,在 中Display Name填写您的用户定义设置,如下所示:(${APP_DISPLAY_NAME}替换APP_DISPLAY_NAME为您命名的设置),然后按 Enter。现在,每个构建配置都将使用用户定义设置中的值作为显示名称。

当使用用户定义的设置作为显示名称时,它不会显示为<Multiple values>,但它会从用户定义的设置中获取其值。您可以通过切换方案、清理然后从General选项卡切换,然后切换回General选项卡来看到它的变化。