如何使用不同的构建配置本地化应用程序名称?

dil*_*ver 7 xcode ios swift swift4.2

我的项目有 3 种构建配置:调试、测试版和发布版。
这些配置各自具有不同的应用程序名称。我正在使用类似的变量来执行此操作APP_DISPLAY_NAME,并在 Info.plist 文件中使用它。

我需要本地化这些应用程序名称。

使用InfoPlist.strings带 , 的文件"CFBundleDisplayName"会覆盖这些配置名称。

那么我该怎么做呢?

我已经检查了这个和其他几个问题,但仍然没有结果。

yoo*_*ood 2

以下是如何在同一目标中为不同的构建配置使用不同的 InfoPlist.strings。

\n
    \n
  1. 在您的构建设置中:\n
      \n
    • 为每个配置指定不同的Info.plist 文件 (INFOPLIST_FILE)
    • \n
    • 将 Info.plist ( )的调整字符串文件名设置为。在 Xcode 14 上,默认设置为。STRINGS_FILE_INFOPLIST_RENAMEYesYes
    • \n
    \n
  2. \n
  3. 使用+ 创建.strings文件。\nbase name of your Info.plist filenamePlist.strings
      \n
    • 例如,如果您的 Info.plist 文件名是Beta-Info.plist,那么您的字符串文件应该具有名称Beta-InfoPlist.strings。确保将所有这些字符串文件包含到您的构建中。
    • \n
    \n
  4. \n
  5. 不要InfoPlist.strings在目标中包含文件。
  6. \n
\n

完成这项工作的关键是“构建设置参考”中的“调整 Info.plist 的字符串文件名”

\n
\n

调整 Info.plist 的字符串文件名。
\n设置名称:STRINGS_FILE_INFOPLIST_RENAME

\n

如果启用,则将基名与 target\xe2\x80\x99s Info.plist 文件的基名匹配的 .strings 文件重命名为构建产品中的 InfoPlist.strings。

\n
\n

例子

\n

这是我的应用程序中的一个示例,它有 3 种不同的变体(AdSupported、AdSupported-Dev、Pro),需要不同的应用程序名称。

\n
    \n
  1. 构建设置。(我为每个变体都有调试和发布配置,但您也可以仅使用调试/测试版/发布来完成此操作。)
  2. \n
\n

构建设置

\n
    \n
  1. 字符串文件。他们都包含在我的目标中。
  2. \n
\n

InfoPlist 字符串文件

\n
    \n
  1. 信息 plist 文件。像往常一样,它们在构建设置中指定,但不包含在我的目标中。
  2. \n
\n

InfoPlist 文件

\n