APP生产和开发环境的分离(手把手教你)

来源:互联网 发布:ubuntu还是deepin 编辑:程序博客网 时间:2024/04/28 12:25

在开发中,对产品进行迭代升级时,有时会遇到这种情况,手机中已经装了一个已经上线的产品,但是开发时还要在装一个正在开发中的产品,这时就只能卸载一个,才能安装另一个,比较麻烦,而且开发版本和发布版本 的一些配置是不一样的,比如接口地址、第三方的app key 等,这些内容如果直接在代码里 改来改去比较麻烦,而且还容易出错。

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

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


1 0
原创粉丝点击