欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

手把手教你给一个iOS app配置多个环境变量

程序员文章站 2022-04-30 20:14:55
手把手教你给一个ios app配置多个环境变量。谈到多环境,相信现在大多公司都至少有2-3个app环境了,比如test环境,uat(user acceptance test)用户验收测试环境,rel...

手把手教你给一个ios app配置多个环境变量。谈到多环境,相信现在大多公司都至少有2-3个app环境了,比如test环境,uat(user acceptance test)用户验收测试环境,release环境等等。当需要开发打多个包的时候,一般常见做法就是直接代码里面修改环境变量,改完之后archive一下就打包了。当然这种做法很正确,只不过不是很优雅很高效。如果搭建好了jenkins(搭建教程),我们利用它来优雅的打包。如果利用jenkins来打包,我们就需要来给app来配置一下多个环境变量了。之后jenkins分别再不同环境下自动集成即可。接下来,我们来谈谈常见的2种做法。

一.利用build configuration来配置多环境

前言里面我们先谈到了需求,由于需要配置多个环境,并且多个环境都需要安装到手机上,那么可以配置build configuration来完成这个任务。如果build configuration还不熟悉的,可以先温习一下官方文档。

1. 新建build configuration

先点击project里面找到configuration,然后选择添加,这里新加一个configuration。默认是2个,一个debug,一个release。这里我们需要选择是复制一个debug还是release。release和debug的区别是,release是不能调试程序,因为默认是屏蔽了可调试的一些参数,具体可以看buildsetting里面的区别,而且release编译时有做编译优化,会比用debug打包出来的体积更小一点。

手把手教你给一个iOS app配置多个环境变量

这里我们选择一个duplicate “debug” configuration,因为我们新的环境需要debug,添加完了之后就会多了一套configuration了,这一套其实是包含了一些编译参数的配置集合。如果此时项目里面有cocopods的话,打开configuration set就会发现是如下的样子:

手把手教你给一个iOS app配置多个环境变量

在我们自己的项目里面用了pod,打开配置是会看到如下信息

手把手教你给一个iOS app配置多个环境变量

注意:刚刚新建完build configuration之后,这时如果有pod,请立即执行一下

pod install

pod安装完成之后会自动生成xcconfig文件,如果你手动新建这个xcconfig,然后把原来的debug和release对应的pod xcconfig文件内容复制进来,这样做是无效的,需要pod自己去生成xcconfig文件才能被识别到。

新建完build configuration,这个时候需要新建pod里面对应的build configuration,要不然一会编译会报错。如果没用pod,可以忽略一下这一段。

如下图新建一个对应之前porject里面新建的build configuration

手把手教你给一个iOS app配置多个环境变量

2. 新建scheme

接下来我们要为新的configuration新建一个编译scheme。

手把手教你给一个iOS app配置多个环境变量

新建完成之后,我们就可以编辑刚刚新建的scheme,这里可以把run模式和archive都改成新建scheme。如下图:

手把手教你给一个iOS app配置多个环境变量

注意:如果是使用了git这些协同工具的同学这里还需要把刚刚新建的scheme共享出去,否则其他人看不到这个scheme。选择“manage schemes”

手把手教你给一个iOS app配置多个环境变量

3. 新建user-defined build settings

再次回到project的build settings里面来,add user-defined setting。

手把手教你给一个iOS app配置多个环境变量

我们这里新加入2个参数,customappbundleld是为了之后打包可以分开打成多个包,这里需要3个不同的id,建议是直接在原来的bundleld加上scheme的名字即可。