APP生产和开发环境的分离(手把手教你)
Posted Yingshirun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APP生产和开发环境的分离(手把手教你)相关的知识,希望对你有一定的参考价值。
在开发中,对产品进行迭代升级时,有时会遇到这种情况,手机中已经装了一个已经上线的产品,但是开发时还要在装一个正在开发中的产品,这时就只能卸载一个,才能安装另一个,比较麻烦,而且开发版本和发布版本 的一些配置是不一样的,比如接口地址、第三方的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
以上是关于APP生产和开发环境的分离(手把手教你)的主要内容,如果未能解决你的问题,请参考以下文章
手把手教你用webpack3搭建react项目(开发环境和生产环境)
手把手带你使用webpack4构建一个Vue开发编译环境,并实现代码分割,css代码分离
免费开源的智能家居系统,SpringBoot+Vue前后端分离,WiFi智能设备接入,手把手开发安卓APP,建立QQ智能管家机器人!