注册
iOS

谈谈iOS项目的多环境配置

在项目中配置多环境,需要了解的三个芝士点:



  • Project: 包含了项目所有的代码,资源文件,所有信息。
  • Target: 对指定代码和资源文件的具体构建方式。
  • Scheme: 对指定Target的环境配置。

配置多环境的三种方案


多Target



  1. 先复制一份一样的Target

image.png



  1. 对其进行重新命名,此时对于项目会增加一个新的info.plist文件

image.png



  1. 设置其对应的info.plist文件

image.png
4. 对于这个新的Target修改其对应BundleID


image.png



  1. 设置宏定义来实现多环境配置


  • Objc:在Objc中通过在Preprocessor Macros中配置宏定义

image.png



  • Swift:在Swift中通过在Other Swfit Flags中增加配置

image.png


总结
通过多Target方案会有两个缺点,第一每生成一个Target都会产生一个Info.plist文件,会比较冗余,第二就是比较麻烦,因为每次都会要设置宏定义,故不建议采纳。


通过Scheme实现多环境配置



  1. 添加新的Configuration

image.png



  1. 增加新的Scheme

image.png



  1. schemeBuild Configuration一一对应

image.png



  1. 新增定义设置(这里以区分不同环境需要访问的域名来举例)

image.png


image.png



  1. Info.plist中新增访问接口

image.png



  1. 在项目中进行访问

image.png


image.png


image.png


image.png


可以看到实现了不同的scheme访问了不同的值,实现了多环境配置,不过这个方案依然不够方便,因为有些Build Settings里针对不同环境需要做不同设置,这样还是不够方便。


xcconfig


1.在项目中创建自己的xcconfig文件,这里分别创建debugreleaserc对应的文件


image.png


2.在ProjectConfigurations进行对应


image.png


3.在xcconfig文件中进行配置(同样以不同环境的域名为例子)


image.png


image.png


image.png


4.在plist文件中提供接口
image.png


5.运行程序发现报错


image.png


这里涉及使用pod,如果另外创建xcconfig文件会导致这个错误,如果不涉及pod则不会报错,来看下控制台的报错


image.png


6.引入pods工程下的xcconfig相关文件
仅举例debug.xcconfig文件,其余操作均如下


image.png


7.选中不同的scheme运行,即可实现多环境配置


image.png


image.png


image.png


注意
在自己创建的xcconfig进行设置一些Build Settings里的参数时,可能会覆盖掉pods里的设置,这时需要加上关键字$(inherited),这样就会继承pods文件中的设置。


链接:https://juejin.cn/post/7030327656738455565

0 个评论

要回复文章请先登录注册