APP版本管理
看似简单的一个问题,但经常有时候被我们忽视.
这篇文章只作为一个科普或一个约定来促进我们以后版本的管理更规范.
1.科普(versionCode & versionName & Debug版本 & Release版本)
versionCode int类型数字
- versionCode:主要是用于版本升级所用,是INT类型的,第一个版本定义为1,以后递增,这样只要判断该值就能确定是否需要升级,该值不显示给用户。
versionName String类型版本标识
- versionName:这个是我们常说明的版本号,由三部分组成
. . ,该值是个字符串,可以显示给用户。
测试包(Debug版本) 未经签名的APP,只为了我们内部测试使用.
正式包(Release版本) 一般认为已经签名了,可以发布的版本
真理—APP升级首先判断权限安全性,即签名文件是否一样,所以正式包不能升级为测试包.其次判断版本号即versionCode,新的版本只能大不能小.所以不能往低版本升级.
2.versionCode & versionName定义规则(经验)
- versionCode是个int类型的,是个递增的.每次升级versionCode都要增加
一般分为两种情况,一种情况是从1开始一直往后增加每次增加1;另有一种情况是1.0.0这种.
第一种,目前比较有代表的就是android系统
versionName | versionCode |
---|---|
Android 7.0 | 24 |
Android 6.0 | 23 |
Android 5.1 | 22 |
Android 5.0 | 21 |
Android 4.4W | 20 |
Android 4.4 | 19 |
Android 4.3 | 18 |
当然这里是举例,如果深究其实发现android系统并不是按照versionCode的大小升级的.有研究的朋友会知道他是按照build的版本管理的(这里暂时不去说buildVersion的问题)
第二种,目前比较有代表的是今日头条,QQ,微信,支付宝等,也是我比较推崇的方式
每个公司定义versionCode的规则也不一定完全一样,但是他的理念可定是样的.
一般都分为三段来表示,小问题及需求修改,版本更新只修改最后一位.重要更新会修改第二位或最后一位已经增长到9需要进位时也需要更新第二位.第一位一般很少改动可以说百年难遇.(比如,用户使用习惯的改变;界面几乎重新设计了等)有可能会修改第一位数字.
1.普通更新不是很频繁的公司,前期做完以后很少更新(推荐)
versionCode=10000 ==>>将10000每位用字母表示 A ‘ B ‘ C ‘ D ‘ E
versionCode=1.0.0 ==>> X’.Y’.Z
ABC对应XYZ
A==>X
B==>Y
C==>Z
最后两位是预留位.防止运维人员刚上传服务器1.0.0(10000)版本,突然发现有个地方忘记改回来.这个版本还没有用户下载,并且已经撤不回来了,那就需要我们重新打一个1.0.0(10001)版本给他,让他赶紧重新发布一次.
2.大公司长期运维的公司,比如腾讯等,可能以上根本不一定够用.那就需要将每一位用两位表示,如下
versionCode=1000000 ==>>将10000每位用字母表示 AA ‘ BB ‘ CC ‘ DD ‘ EE
versionCode=1.20.10 ==>> X’.Y’.Z
ABC对应XYZ
AA==>X
BB==>Y
CC==>Z
3.当然也有领导感觉版本变化太快了,使用四段显示的
versionCode=10000 ==>>将10000每位用字母表示 A ‘ B ‘ C ‘ D ‘ E ‘ F
versionCode=1.0.0.0 ==>> X’.Y’.Z’.K’
ABC对应XYZ
A==>X
B==>Y
C==>Z
D==>K
依次类推.
3.发版流程(经验)
一般公司开发都会有测试服务器,正式服务器至少两台服务器.
内部测试时一般使用测试服务器,等APP稳定后才切换成正式服务器.这时候就需要测试人员跟开发要个请求地址是正式服的APP测试.待一切没问题的时候.一切功能测试都ok了.这时候需要跟开发人员要一个正式包.一般正式包也就是我们上边说的对外版本管理的包.
正式包跟测试包最大区别在与是否签名.(签名版本与不签名的区别下边讲)
APP开发一般很注意APP的体验,稍微有对用户影响的地方都认为是不可原谅的.因为这有可能影响了你的用户量.所以版本管理可以及发布一定要谨慎.
4.APP签名
- 应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名。这是由于只有以同一个证书签名,系统才会允许安装升级的应用程序。如果你采用了不同的证书,那么系统会要求你的应用程序采用不同的包名称,在这种情况下相当于安装了一个全新的应用程序。如果想升级应用程序,签名证书要相同,包名称要相同!
APP签名是很重要的东西,签名文件及密码一定妥善保管.有条件的公司,app打包可以做到在线打包(签名文件放在服务器),可以不考虑这个问题.
如果我们还没有这个能力,这个问题就需要重视.
假如你的签名文件丢失了.这样会损失用户且带来灾难性的后果
往应用市场发布必须是带签名的APP,否则无法发布.
有什么还要了解的或有错误的地方,欢迎邮件反馈
liuxinmingab@163.com