技术iOS DeveloperTools

实现Release与Debug的快速切换,测试时再也不要来回打包

2017-01-08  本文已影响381人  安若宸king

在开发过程中,我们一般都在dubug环境下一番轮操,如果需要不时的切换到Release版本下,manage schemes也能轻松的实现正式环境与测试环境的切换.

但是,有一种情况是让我比较恶心的,作为一名程序狗,代码敲的正开心呢,测试姐姐娇嗔到,程序狗哥哥,帮我打个release包吧,五分钟后,又来一句,帮我打回debug包吧.  这我也就忍了,毕竟测试不能得罪. 又过了五分钟,产品又来了,又过了五分钟,运营又来了,我们公司五个产品经理,两个运营,想想看,每天耳边萦绕的都是,程序狗哥哥,打release包吧,程序狗哥哥,打debug包吧,打你大爷,还让不让好好敲代码了...

于是乎做了一个一键切换正式服测试服的功能,还自己一个安静的世界...

最终的效果是这样的

功能做起来很简单,但是也很实用.狗狗们,跟我一起走起来...

一.为项目复制一个Target

复制一个target的目的是,我们不能让用户也看到切换的按钮,不然用户会吓坏的,所以发包的时候,用正儿八经的target,开发测试的时候,用带开关的target

1.在当前target右键点Duplicate

2.duplicate only

3.双击更名

target改名 manager scheme 里 点两下改名

二.创建Setting Bundle

1.创建

创建的时候注意不要勾选release的target,默认是不会勾选的,这样在release版本下就没有开关选项啦

2.设置

创建完后默认是这个样子的

这里删掉多余的选项,保留Group跟Switch,选中后直接点delete键就ok

之后设置group的文案,以及switch开关的键值,之后看代码就知道干啥用的了

3.添加预编译宏

系统默认会有DEBUG这样一个预编译宏,我们需要为release的target添加一个宏来区分开发版本的target,具体操作关键点看红框就能搞定了,注意在debug跟release下都要加

加完后就是这个样子拉

三.代码实现

一般我们设置正式环境与测试环境,都是判断如果是DEBUG下,baseUrl=xxx,否则baseUrl=xxx

现在我们设置一个全局参数,通过参数来设置baseUrl,这里只是简单展示,所以就在viewDidload里展示想要的效果,测试环境下界面是绿色,正式环境下为紫色.默认是测试环境

四.最终效果

开发时我们在KKKiller下捯饬,发布时在KKKiller

在设置里面找到你的app,里面多了一个开关选项,切换后重启,就能生效啦,在release的target下就没有这个开关,这样用户就不会被吓坏了

需要注意的是,创建两个target之后,创建文件,默认是会选中第一个target,为了保证两个版本都能正常允许,在创建文件的时候,我们需要把两个target都勾选上

如果忘了也没关系,可以这样补救

在创建target 的时候,因为是通过copy的方式创建的,所以之前的文件都已经默认勾选上了,新创建的就需要我们手动创建

ok 大功告成,去厕所撸一发庆祝一下吧!~~~~

代码git地址https://github.com/KKKiller/KKKillerSetting

上一篇下一篇

猜你喜欢

热点阅读