版本控制—使用Gradle自动管理应用程序版本
来源:互联网 发布:网络直播间装修效果图 编辑:程序博客网 时间:2024/06/06 18:41
我们在开发App时,通常在项目的Release阶段我们需要设置应用的版本号和版本名称,也就是设置下面两个属性
versionCode
versionName
版本号
其中versionCode的值是int类型,主要作用就是作为应用内部的版本编号,为版本升级提供唯一的标识,通常设为是自增的,假如当前app的versionCode为1,下一代app的versionCode为2,那么就可以通过它来判断应用是否需要升级、是否有新版本,也就是versionCode的值越大那么app就越新。它通常是对用户不可见的,因为它只是一个int类型值,显示出来无任何意义
versionName的值是String类型,它就是版本的名称,通常叫做版本号,是提供给用户看的,以便供用户知道当前自己安装的是哪个版本的app,一般在app的设置界面和应用市场上我们看到的版本号就是这个
手动管理产生的问题
假设当前版本是这样的:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
它的versionCode为11246,现在已经非常大了,通常我们手动去记住这个versionCode和对应的versionName比较容易出错,而且随后期迭代的非常多的时候,这时候非常混乱,而versionCode(Name)出错则会导致不可预料的后果:
1、新Release的应用versionCode比旧版的versionCode小,导致app升不了级,新Release的应用使用了同一个的versionName,导致用户不升级
2、手动管理的话,假如其中一个工程师一不小心把下一代app的versionCode误写成了12246,而再下一版的是另外一个工程师发布的,如果versionCode还是按最开始的自增,那么versionCode为11248,当应用发布出去,包括所有versionCode小于12247的应用用户将都升不了级,唯一的办法就是把今后迭代的app的versionCode从12246以后开始自增
通过gradle自动管理应用程序版本
上面我们说了采用人工的方式去管理应用的版本是比较容易出错的,所以既然手动管理不行,那么就采取自动管理的方式去管理吧,而versionCode的作用就是提供一个int类型的版本标识供应用升级,而每一次release的时候这个versionCode都应该确保比旧版本的值大,所以可以通过在release时候让versionCode自动+1来确保这个版本是最新的版本,而这个工作则是由gradle来完成的。
我们在Module目录下新建一个version.properties文件作为存储versionCode文件,里面我们给它一个初始值为
VERSION_CODE=1
然后在Module目录下的gradle配置这样一段代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
那么当我们release这个项目时候,每release一次这个versionCode将会自动加1,如下我release了一次,它自动加了1
通过gradle自动管理versionCode,我们无需手动修改这个versionCode了,只需要在release时候把版本号versionName更新即可
- 版本控制—使用Gradle自动管理应用程序版本
- 版本控制—使用Gradle自动管理应用程序版本
- gradle管理版本分支
- Android 版本管理 版本控制
- android应用程序版本管理
- intellij idea中gradle工程使用git进行版本控制
- Android开发Gradle版本管理
- 版本控制+ 项目管理
- svn版本控制管理
- 代码管理版本控制
- 使用Gradle管理Debug/Release版本的Key
- Xcode快照——管理应用程序版本
- android studio,gradle版本,gradle插件版本的使用问题
- SubVersion版本控制使用
- Git 版本控制使用
- svn 版本控制与管理
- 项目管理/版本控制工具
- 翻译《Git版本控制管理》
- PAT BASIC LEVEL 1019. 数字黑洞 (20)
- 全球最杰出的14位程序员
- 【面试题】用栈解决括号匹配问题
- Mac下express的安装和新建项目
- 如何将一组数据从一个区间缩放到另一区间?
- 版本控制—使用Gradle自动管理应用程序版本
- OpenCV人脸检测Demo程序
- 143. Reorder List
- 第四课--C++之vector
- C语言基础(3)
- jquery源码学习笔记三:jQuery工厂剖析
- OpenWrt安装MentoHUST之后导致路由开机电源闪烁的原因及其解决方法
- AFNetworking3.1.0源码分析(十二)AFURLResponseSerialization
- 版本管理