APP生产和开发环境的分离

一般情况下,在使用第三方服务时,都会提供两个环境方便开发,即:生产环境和开发环境,我们提供两套 App Key / Secret,两套环境的功能完全一致。
在开发中,对产品进行迭代升级时,有时会遇到这种情况,手机中已经装了一个已经上线的产品,但是开发时还要在装一个正在开发中的产品,这时就只能卸载一个,才能安装另一个,比较麻烦,而且开发版本和发布版本 的一些配置是不一样的,比如接口地址、第三方的app key 等,这些内容如果直接在代码里 改来改去比较麻烦,而且还容易出错。

所以在这里,就和大家分享一下怎样进行生产环境和开发环境的分离。

Tips:
release 英[rɪˈli:s] 美[rɪ’li:s]
vt. 释放; 发布; 发行; 放开;
n. 释放,排放,解除; 释放令; 公映的新影片,发布的新闻[消息];

1、首先在Project Structure中 在Build Tyoes中 默认就有debug和release两个版本,而我们只需要在debug版本中的Application Id Suffix 中输入.debug(叫什么都行,注意和下面的步骤保持一致),release版本不动
这里写图片描述

2、在src目录下新建debug目录,目录名要和Application Id Suffix一致,然后在debug目录下新建res目录,在res目录下建立图片和values文件夹,如图:
这里写图片描述

这里目录不要弄错了,当我们在运行时选择debug版本时,这里的图片和strings里的内容会自动替换main目录下的相应的资源文件,
strings里放一些debug和release版本不同的配置信息:如:
这里写图片描述

这里以app名称,接口根地址和本地缓存文件路径做演示,
我们在Application中的onCreate中根据运行时选择的是debug还是release进行取出不同的值。
这里写图片描述

3、运行时在BuildVariants种选择是运行debug和是release版本
这里写图片描述
这时要注意的是: 在运行release版本时,如果你没有配置签名文件信息时,会报:
Error
app-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.
Open Project Structure Dialog

1)、这时,我们首先要在project Structure的Signing中添加签名文件信息,如图:
这里写图片描述
2)、然后在Flavors中将Signing Config选择为刚才配置的签名文件信息
这里写图片描述
到这一步基本算是完成了生产和开发的环境分离,就可以在手机中同时安装生产和开发两个版本的应用了,不用在每次都要卸载安装了。
需要注意的是:在android5.0以上的系统中,对权限的管理进行了加强,所以debug和release的签名文件要一致才能安装成功,要不然就会报install_failed_duplicate_permission 权限错误。
所以我们在BuildTypes中将debug和release的Signing Config选项都选择同一个签名文件,在同时安装relase和debug就不会报错了

还有就是当我们进行环境分离后,一些第三方的测试版本的key值需要根据新的分离后的包名进行重新生成,比如jpush,百度地图. 而分离后的实际包名就是之前的包名最后加上 你配置的Application Id Suffix 就是测试版本的包名.
如jpush的集成在manifest中有许多和包名相关的配置,这里我们只要将包名全部替换为${applicationId} 就行

参考文档:
http://www.tuicool.com/articles/yAZBjeA

转载于:
http://m.blog.csdn.net/article/details?id=51056595

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值