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就不会报错了

参考文档:

http://www.tuicool.com/articles/yAZBjeA

时间: 2024-10-08 12:20:09

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

面向生产和开发环境的LNP基础镜像

GITHUB地址:https://github.com/banyancheung/base-docker-env 这是一份适用于生产和开发环境的 Dockerfile. 在 phuison/baseimage 的基础上,增加了php.php扩展和nginx的安装脚本, 实现了一键安装LNP及其常用扩展的功能.目前已经在我司的生产环境上并运行良好.日常开发中也是基于此镜像进行的. 镜像内容 此镜像包括如下内容: Ubuntu 16.04 LTS correct init process syslo

三、SpringBoot的常用配置(.yml通过配置文件和注解进行属性注入,以及分别配置生产、开发环境)

1.在application.properties或application.yml中配置 ① .application.properties 中 server.port=8081 server.context-path=/girl ②.application.yml中 (推荐) .yml文件冒号后必须加空格,加空格后关键词会变亮 server: port: 8081 context-path: /girl 2.通过配置文件和注解进行属性注入 ①在配置文件中添加关键词cupSize server:

一个十分简单的、关于生产环境和开发环境的webpack配置

关于这个开发环境和生产环境的配置代码,之所有要分开是因为他们有些代码相同,有的又不同. 例如:开发模式下需要启动本地服务器,需要热重载,而生产模式不需要这些需要代码压缩.DefinePlugin等. 我们都是将两种环境都用用到的提取出来,放在一个公共.js文件.然后在相应的环境配置中使用  webpack-merge  将公共js合并进来. 我所了解到的配置思路,有两种: 方法一: 使用webpack-dev-server配置开发环境(这个简洁一些): 方法二: 使用webpack-dev-mi

Android开发环境搭建记录201408

目的是采用android + ndk(JNI),使用c/c++编译生成opencv的相关函数的库. 默认jdk已安装好,JAVA_HOME, CLASSPATH, path已设置好.android开发的IDE有两种,Eclipse和Android Studio(http://developer.android.com/sdk/installing/studio.html),后者采用的gradle工具不了解,暂时就不试了. 1. Eclipse CDT + Cygwin环境 Eclipse c/c

[编译] 6、开源两个简单且有用的安卓APP命令行开发工具和nRF51822命令行开发工具

星期四, 27. 九月 2018 12:00上午 - BEAUTIFULZZZZ 一.前言 前几天给大家介绍了如何手动搭建安卓APP命令行开发环境和nRF51822命令行开发环境,中秋这几天我把上面篇文章的操作流程全部做成了shell脚本,使得可以让其他人简单运行下脚本.就能够直接建立绿色开发环境,岂不美哉? <[编译] 5.在Linux下搭建安卓APP的开发烧写环境(makefile版)-- 在Linux上用命令行+VIM开发安卓APP> <[编译] 4.在Linux下搭建nRF518

vue开发环境和生产环境里面解决跨域的几种方法

  跨域指浏览器不允许当前页面的所在的源去请求另一个源的数据.源指协议,端口,域名.只要这个3个中有一个不同就是跨域. 这里列举一个经典的列子: #协议跨域 http://a.baidu.com访问https://a.baidu.com: #端口跨域 http://a.baidu.com:8080访问http://a.baidu.com:80: #域名跨域 http://a.baidu.com访问http://b.baidu.com:   现在很多公司都是采用前后分离的方式开发.那么出现经常和会

[转]SharePoint 2013 App 开发 (2) - 建立开发环境

这篇文章属于SharePoint 2013 App开发系列文章,到这篇文章为止,此系列的文章包括: SharePoint 2013 App开发 (1) - 什么是SharePoint App? SharePoint 2013 App开发 (2) - 建立开发环境 (本文) 在开发SharePoint App之前,开发人员需要有一个SharePoint开发环境.无论是开发何种类型的应用程序,开发人员都需要在开发机器上准备相应的开发环境.比如,如果是开发ASP.NET Web应用,那么在开发机器上除

从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十一║Vue实战:开发环境搭建【详细版】

系列教程一目录:.netcore+vue 前后端分离 系列教程二目录:DDD领域驱动设计 系列教程三目录:Nuxt.js TiBug系统 系列教程四目录:VueAdmin 后台管理系统 系列教程五目录:IdentityServer4 授权服务器 本文梯子 缘起 零.今天要完成左下角红色的部分 A.Vue 常见的IDE —— 我是开发工具,干活的都是我 1.VsCode 2.Webstorm 3.Atom B.安装Nodejs环境 —— 我是运行环境,没我不行 C.安装 npm / cnpm ——

node - 开发环境与生产环境

什么是开发环境与生产环境 ? 环境,就是指项目运行的地方,当项目处于开发阶段,项目运行在开发人员的电脑上,项目所处的环境就是开发环境.当项目开发完成以后,要将项目放到真实的网站服务器电脑中运行,项目所处的环境就是生产环境. 为什么要区分开发环境与生产环境 ? 因为在不同的环境中,项目的配置是不一样的,需要在项目代码中判断当前项目运行的环境,根据不同的环境应用不同的项目配置. 如何区分开发环境与生产环境 通过电脑操作系统中的系统环境变量区分当前是开发环境还是生产环境. 在系统中设置环境变量: NO