Xcode使用Build configuration 配置多种项目环境

【项目之初我们采用Build configuration 配置多种环境,但是最后我会介绍一下我们现在用的方式,也是我认为最灵活方便的方式】

1、why 为什么需要配置多种项目环境

在实际开发中,项目需要经过多个环境的测试,才能上架到应用市场。

一般都是如下过程

 开发环境->测试环境->预上线环境->正式环境

因此仅仅debug与release两套环境无法满足我们多个环境多个域名的要求。

除此之外,项目进入正式环境测试阶段,还会提交到Testin平台进行测试,因为项目中使用到了听云、网宿等SDK,不希望测试数据影响到正式环境,因此APP端release状态也需要区分。这么多的环境,如果每次打包都要修改代码很容易混乱出错,因此Build configuration能很好的给我们解决问题。

2、how 如何配置多种环境

①选择PROJECT->info 找到configuration。点击加好进行添加。首先duplicate debug。

Xcode使用Build configuration 配置多种项目环境_第1张图片
图1

创建结果如下

Xcode使用Build configuration 配置多种项目环境_第2张图片
图2

②然后我们针对每种环境设置预处理宏

第一步 :设置Preprocessor Macros 

Xcode使用Build configuration 配置多种项目环境_第3张图片
图3

第二步:设置Swift Compiler - Custom Flags

如图4设置Active Compilation Conditions,也可以设置OTHER_SWIFT_FLAGS 注意参数前需要加-D。

Xcode使用Build configuration 配置多种项目环境_第4张图片
图4

如果是纯swift的项目 只需要设置第二步就可以。

③设置完参数写代码测试一下,图5

Xcode使用Build configuration 配置多种项目环境_第5张图片
图5

④修改build configuration 对各个环境进行测试

Xcode使用Build configuration 配置多种项目环境_第6张图片
图6

运行结果:

图7

其余环境各位可以自己写demo测试一下。

3、回到本文第一行,我说过还有其他的方式更便捷【需要服务端配合】

在介绍之前结合公司的项目解释一下为什么

①设置build configuration 能把我们从繁琐的修改代码中解脱出来,但是还是需要针对每种环境打出不同的测试包,还是觉得麻烦。

②我们开发的APP是原生与HTML的混合应用,资源文件与接口部署在不同服务器,很多时候资源文件需要独立上线,但是移动端代码并没有修改!

③如果接口在测试环境,资源在预上线环境,通过设置build configuration根本无法解决。

④移动端对于Dev,Test,PreRelease环境只存在接口地址域名的差异。

那么我们最理想的情况应该是,Dev,Test,PreRelease这三种情况我们不需要修改任何配置项,一个IPA包就能测试到这三种情况。

因此我们现在是这么做的:

不同的服务器相同的项目对外的域名都是一样的,在开发测试阶段只需要修改域名对应的IP从而选择不同的测试环境。

推荐两个应用

Xcode使用Build configuration 配置多种项目环境_第7张图片
图8
Xcode使用Build configuration 配置多种项目环境_第8张图片
图9


使用SwitchHosts指定host

Xcode使用Build configuration 配置多种项目环境_第9张图片
图10

然后配合Charles抓包工具,简直好用到不行。

总结:移动端不需要修改代码的情况可以使用SwitchHosts切换不同测试环境。若有上述听云、网宿等SDK开关控制问题,可以设置build configuration 以及 preprocessor macros配合解决。

【特别】使用cocoapods 管理项目的可以编辑podfile设置build configuration、 preprocessor macros 和OTHER_SWIFT_FLAGS等。

上图简单介绍下

Xcode使用Build configuration 配置多种项目环境_第10张图片
图11

pod install 成功之后如图12

Xcode使用Build configuration 配置多种项目环境_第11张图片
图12

以上就是这次的全部内容,喜欢请关注

你可能感兴趣的:(Xcode使用Build configuration 配置多种项目环境)