如何为您的应用设置不同的图标

在构建应用程序时,我们通常会在设备上安装App Store版本,但是我们也需要安装beta版本,如果我们想将它们都安装在同一设备上,则需要区分它们。 最好的解决方案是使用不同的图标。

构型

第一步是为所需的每个图标创建配置。 例如:

  • 开发环境的调试配置,
  • Beta环境的Beta配置,
  • 产品环境的发布配置。

默认情况下,将创建DebugRelease配置,我们可以通过复制现有配置来添加Beta配置。

应用程式图示

接下来,我们必须在Assets.xcassets文件中创建几个应用程序图标 。 您可以随意命名,理想情况下,您希望为每个配置创建一个“应用程序图标”。

构建设置

在目标的“构建设置”中,您需要为每个配置指定“ 应用程序图标”和“ 捆绑包标识符 ”。

资产目录应用程序图标集名称

这样,将根据当前配置自动选择应用程序图标。

产品捆绑包标识符

由于应用由其捆绑包标识符标识,因此我们需要为每个配置指定一个不同的捆绑包标识符。 然后,将为每个捆绑包标识符创建一个不同的应用程序。

代码配置

有时,您还想检测代码中的配置,这对于常量尤其有用,例如您的API的域。 有几种方法可以做到这一点,最简单的方法是在“构建设置”中添加一些标志。

然后,您可以在代码中访问这些标志:

struct Constants { 
#if DEBUG
static let domain = "dev.example.com"
#elseif BETA
static let domain = "beta.example.com"
#else
static let domain = "www.example.com" #endif
}

当然,目标是避免在太多不同的文件中使用它们,这就是为什么我通常将所有常量放入此条件语句中。

方案

如果要在设备上针对特定配置编译应用,则最终可以为方案更改“ 构建配置”。

另一个解决方案是为每个配置创建一个方案

快车道

这真是锦上添花,多亏了fastlane,您可以在构建应用时指定配置,并且会自动选择正确的图标。

 lane :beta do 
# ...
  # Compile IPA 
gym(
scheme: "ExampleApp",
configuration: "Beta",
use_legacy_build_api: true,
clean: true
)
  # ... 
end

结论

该解决方案是一种为每种环境创建应用程序并通过在设备上使用不同图标来区分它们的简便方法,但这并不是唯一的解决方案。

而您,当您处于相同的情况下该如何做? 使用此解决方案是否看到一些限制?