美文网首页iOS-Developer-OC
Xcode使用Build configuration 配置多种项

Xcode使用Build configuration 配置多种项

作者: oneday527 | 来源:发表于2017-10-12 17:16 被阅读0次

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

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

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

一般都是如下过程

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

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

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

2、how 如何配置多种环境

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

图1

创建结果如下

图2

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

第一步 :设置Preprocessor Macros 

图3

第二步:设置Swift Compiler - Custom Flags

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

图4

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

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

图5

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

图6

运行结果:

图7

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

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

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

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

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

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

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

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

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

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

推荐两个应用

图8 图9

使用SwitchHosts指定host

图10

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

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

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

上图简单介绍下

图11

pod install 成功之后如图12

图12

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

相关文章

网友评论

    本文标题:Xcode使用Build configuration 配置多种项

    本文链接:https://www.haomeiwen.com/subject/rmonyxtx.html