Swift学习18:多环境切换

张建 lol

前言

swift 多环境配置和 oc 类似,本文主要介绍 Schemexcconfig 多环境配置

第一种方式:Scheme

  1. 首先我们要了解到 Scheme 默认是有两种环境变量 DebugRelease,可以在 Edit Scheme -> Run -> info -> Build Configuration 下查看。

  1. 其次,与之对应的环境配置在 Project -> Scheme -> Configurations 下也可以看到:

  1. Project -> Info -> Configurations 下,我们可以创建一个自己的配置环境 Beta,现在我们有了 种配置方式,如下图:

  • 对应的在 Edit Scheme -> Run -> info -> Build Configuration 下也有三种,如下图:

  • 同时在 Target -> Build Settings -> Build Active Architecture Only 下也有对应的三种配置方式,说明这是一个 全局 的配置,如下图:

  1. 新建 Scheme
  • 点击 Scheme -> manager Schemes -> 点击 + 号 -> 添加 DebugBeta 两种,加上 Scheme 本身 Release 就是三种,对应上面 三种 配置

  • 点击 Edit Scheme 切换 Scheme,并指定 Configurations,如下图:

  1. 自定义主机名 URL_HOST
  • Target -> Build Settings -> 点击 + 号 -> Add User-Defined Settings -> URL_HOST,此时我们发现其对应的配置也是三个,分别设值如下:

  1. URL_HOST 添加到 info.plist 文件中,Build Settings 中的 配置可以通过 info.plist 暴露出来,可以直接读出来

  1. 在项目中使用
1
2
3
let path = Bundle.main.path(forResource: "Info", ofType: "plist");
let dic = NSMutableDictionary(contentsOfFile: path!);
print(dic!["URL_HOST"]!);

切换 scheme ,查看不同的打印结果

1
2
3
http://Debug
http://Release
http://Beta

第二种方式:xcconfig 配置

  1. 同样的,我们需要先配置 三种 Connfigurations ,配置方式同上

  1. 在主项目下,创建 Config 文件,并在下面创建三个对应环境的 .xcconfig 文件
  • 在Config文件夹下 -> command + N -> 搜索config

  • 输入对应的名称 -> 点击create

  • 创建成功之后,如下图:

  1. 选择对应Target的进行配置

  1. xconfig 文件中写入 URL_HOST
  • Debug
1
2
A = /
URL_HOST = http:${A}/Debug
  • Beta
1
2
A = /
URL_HOST = http:${A}/Beta
  • Release :
1
2
A = /
URL_HOST = http:${A}/Release
  1. 同样,我们需要在 info.plist 文件中暴露,在项目中取出

  1. 项目中代码取出
1
2
3
let path = Bundle.main.path(forResource: "Info", ofType: "plist");
let dic = NSMutableDictionary(contentsOfFile: path!);
print(dic!["URL_HOST"]!);

切换 scheme ,查看不同的打印结果

1
2
3
http://Debug
http://Release
http://Beta
  • Post title:Swift学习18:多环境切换
  • Post author:张建
  • Create time:2023-03-21 07:33:09
  • Post link:https://redefine.ohevan.com/2023/03/21/Swift/Swift学习18:多环境切换/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
On this page
Swift学习18:多环境切换