起因:
项目包含四种build Configuration(DEBUG(开发),FAT(测试),UAT(预发布),Relase(上线)),每种环境对应不同的服务器域名,开发阶段经常需要频繁切换前三种环境,但随着项目越来越庞大,目前每次切换环境编译时长大概在三分钟左右,花费很多不必要的时间,为了解决此问题,考虑在App内部添加一个切换环境的入口.
思路:
由于每种环境对应相应的服务器,所以思路是在不切换环境下,更改需要调试的服务器域名,Dev开发为调试环境,故以下操作都可在DEBUG中进行.
方案:
- 设置中添加切换域名入口,且仅在DEBUG环境下有此选项.不影响FAT,UAT,Relase环境.
- 具体逻辑为:设置中添加切换入口,点击切换环境入口,把所选环境的key存在本地记录.
- 杀掉进程,下次打开根据本地存储的key值重新注册本地请求域名,TCP host等.
- 注:经测试,会出现杀掉进程后保存key的操作还没有完成,导致下次进入app后没有成功切换,故将杀掉进程操作exit(0)延时1s执行.
- 重新进入APP后,会根据上次存在本地的key判断当前所需的服务器域名,TCP host等实现切换.(默认为DEBUG环境下的服务器域名.)
使用:
DEBUG环境下,选择设置->当前环境 进行切换 .切换后APP进程结束,重新打开完成切换
注意:
由于DEBUG环境不再只针对一个服务器环境,故项目中有一些针对DEBUG进行mock的数据,需要同时判断当前的服务器域名是否为测试环境.