轻松管理Swift项目中的不同环境

想象一下,您已经完成了应用程序的开发和测试,现在可以将其提交生产版本了。 但这是问题所在:您所有的API密钥,URL,图标或其他设置都针对测试环境进行了配置。 因此,在提交您的应用程序之前,您将必须修改所有这些内容以适合您的生产模式。 显然,这听起来不太好。 另外,您可能会忘记在庞大的应用程序中进行某些更改,因此您的服务将无法正常运行。

代替这种凌乱的方法,最好有几个环境并在需要时简单地更改它们。 今天,我们将通过最流行的方法来尝试组织不同的环境:

  1. 使用注释。
  2. 使用全局变量或枚举。
  3. 使用带有全局标志的配置和方案。
  4. 将配置和方案与多个* .plist文件一起使用。

1.使用注释

当您有2个分离的环境时,您的应用程序需要知道它应该连接到哪个环境。 想象一下,您拥有ProductionDevelopmentStaging环境以及API端点。 处理此问题的最快,最简单的方法是拥有3个不同的变量并注释其中2个:

这种方法非常肮脏,凌乱,会使您哭泣很多。 有时我会在黑客马拉松上使用它,因为代码的质量不起作用,而速度和灵活性才是关键。 在任何其他情况下,我强烈建议您完全不要使用它。

2.使用全局变量或枚举

另一种流行的方法是使用全局变量或Enum (这会更好)来处理不同的配置。 您将必须在3种环境中声明您的Enum ,并在某处(例如在AppDelegate文件中)设置其值:

这种方法要求您每次更改代码时都只在代码中设置一次。 与以前的方法相比,此方法要好得多。 它非常快速,可读性强,但有很多局限性。 首先,在运行任何环境时,您始终具有相同的捆绑ID。 这意味着您将无法同时在设备上拥有两个具有不同环境的相同应用程序。 一点都不舒服。

同样,在每个环境中使用不同的图标也是一个好主意,但是采用这种方法,您将无法更改图标。 同样,如果您忘记在发布应用程序之前更改此全局变量,则肯定会遇到问题。