Android Studio生成APK自动追加版本号 自定义apk名称 指定签名证书文件
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50538148 文章出自:薛瑄的博客
你也可以查看我的其他同类文章,也会让你有一定的收货!
生成APK自动追加版本号
可自动区分debug和release,并追加版本号:
打开 build.gradle
在 android 节点中插入下面代码
第一种:
applicationVariants.all{ variant-> variant.outputs.each { output-> def oldFile = output.outputFile def newName = ''; if(variant.buildType.name.equals('release')){ // println(variant.productFlavors[0].name) // def releaseApkName = 'study-' + defaultConfig.versionName + '-luckpan.apk' def releaseApkName = defaultConfig.applicationId + "-" + buildType.name + "-" + defaultConfig.versionName + '.apk' output.outputFile = new File(oldFile.parent, releaseApkName) } if(variant.buildType.name.equals('beta')){ newName = oldFile.name.replace(".apk", "-v" + getVersionNameFromManifest() + "-build" + getDate() + ".apk") output.outputFile = new File(oldFile.parent, newName) } if(variant.buildType.name.equals('debug')){ } } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
第二种:
把productFlavors名字和 buildType名字,打包到apk文件名中
android.applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File(output.outputFile.parent, defaultConfig.applicationId + "-" + buildType.name + "-v" + defaultConfig.versionName "-" + variant.productFlavors.name + "-" + defaultConfig.versionCode + ".apk" ); }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
groovy语言执行的最后一行是返回值
函数 getVersionNameFromManifest(),从manifest文件中读取的版本号
版本号定义在build.gradle中,那defaultConfig.versionName就是你的版本号
Android Studio设置默认的签名文件
Android Studio 指定签名证书文件
Gradle for Android(三)多渠道打包、配置签名信息
新浪微博SSO登录,微信分享这些都需要签名打包,才能看到效果,设置默认签名文件为自己的签名jks,这样就不需要打包了直接运行起来就是正式的签名。
在android.signingConfigs{}下定义一个或者多个签名信息,然后在buildTypes{}配置使用即可。
在app目录下添加你的.jks,然后app的build.gradle文件中的增加以下内容:
第一种:
android { signingConfigs { debug { storeFile file("WuXiaolong.jks") // storeFile file("C:\\Users\\he\\apk\\apksign") 指定路径 storePassword 'android' keyAlias 'android' keyPassword 'android' } } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
buildTypes没有配置,也是直接取得debug,是不是不配置默认取得是debug呢?
第二种:
android { compileSdkVersion 21 buildToolsVersion "21.1.0" defaultConfig { applicationId "com.test.example" minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName "1.0" } signingConfigs { debug { File strFile = new File("../../Keystore/Debug/debug.jks") storeFile file(strFile) storePassword "storeDebug1234567890" keyAlias "debugkey" keyPassword "aliasDebug1234567890" //println strFile.absolutePath; } release { File strFile = new File("../../Keystore/Release/release.jks") storeFile file(strFile) storePassword "storeRelease1234567890" keyPassword "keyRelease1234567890" keyAlias "releasekey" // println strFile.absolutePath; } } buildTypes { release { signingConfig signingConfigs.release runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
注意:
1、storeFile, storePassword, keyAlias, keyPassword缺一不可,都必须填写,并且填写正确。
如果没有填写 keyAlias,则签名时候会报告 Android-APK signing error : Failed to read key from keystore
密码不正确的时候,会报告
java.security.UnrecoverableKeyException: Cannot recover keyThis exception may result from the fact that you had provided a key password that was different from the keystore password
- 1
- 2
2、对于 Release配置,在 buildTypes中必须指定
signingConfig signingConfigs.release
- 1
否则,会出现
Error: The apk for your currently selected variant(app-release-unsigned.apk) is not signed. please specify a signing configuration for this variant(release)
- 1
3、 signingConfigs必须在 buildTypes前面声明,否则会出现找不到配置选项的错误。
参考:http://www.sollyu.com/android-apk-studio-generated-automatically-appends-a-version-number/
http://www.th7.cn/Program/Android/201501/380594.shtml?WebShieldDRSessionVerify=SVUnBrv9lvKUzUH4e6nR
http://blog.csdn.net/jt_ontheway/article/details/50482210
关注我的公众号,轻松了解和学习更多技术
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
Android Studio生成APK自动追加版本号 自定义apk名称 指定签名证书文件相关推荐
- android studio生产签名文件,Android Studio 生成 keystore 签名文件
Android Studio 生成 keystore 签名文件 常见 SSL 证书格式 : .DER .CER,文件是二进制格式,只保存证书,不保存私钥. .PEM,一般是文本格式,可保存证书,可保存 ...
- Android Studio生成二维码
Android Studio生成二维码 第一步 导入依赖 第二步 在清单文件里加权限 第三步 初始化 第四步 在清单文件里进行调用 第五步 在MainActivity 第六步 建一个管理类 第七步 新 ...
- android生成apk流程,Android Studio生成APK的基本流程
Android Studio生成APK的基本流程 2020年08月14日 | 萬仟网移动技术 | 我要评论 Android Studio生成APK流程修改版本号和文件名安全加固(可选)生成签名apk修 ...
- Android Studio的res自动生成的文件出错了_莫韵乐与bug的奇妙冒险
Android Studio的res自动生成的文件出错了_莫韵乐与bug的奇妙冒险 无论学什么编程语言都要跟奇怪的bug过不去 奇怪的bug出现了 今天满怀欣喜地进行安卓开发学习,创建好一个新的项目之 ...
- Android Studio项目打包:3、Android Studio生成的apk究竟在哪里?(非正式打包)
以前11年那会刚干Android开发的时候用的开发工具是eclipse,现在大家都用的Android Studio, 当有的时候我们需要给相关人员演示apk效果,这时我们只需要快速运行打包apk而不是 ...
- android studio生成JKS时候提示:JKS 密钥库使用专用格式。建议使用 keytool -importkeystore
本文是方便新手的,将过程中许多问题都列举出来引用其他文章链接,方便新手快速找到如何解决,大家根据自己需求选择性查看即可 使用Android Studio自带的功能创建的key的时候,出现warning ...
- android studio生产签名文件,Android Studio生成keystore签名文件步骤讲解
Android App打包时要用到签名文件,Android Studio生成签名文件步骤如下: Build---Generate Signed Apk...如图: 如果你的project中有2个或者2 ...
- Android Studio生成keystore签名文件
Android App打包时要用到签名文件,Android Studio生成签名文件步骤如下: Build---Generate Signed Apk...如图: 如果你的project中有2个或者2 ...
- android生成md5,使用Android studio生成签名文件以及获取MD5
内容要点:android 一.Android studio生成签名文件安全 二.经过Android studio获取MD5app 1.Android studio生成签名文件ide 在菜单栏中,点击 ...
最新文章
- python 网络编程之Socket通信案例消息发送与接收
- JS报“Uncaught TypeError: undefined is not a function ”异常
- 问题 I: 成对最小公倍数(数学)
- 建立你的RoR学习环境(Windows)之一
- 【线段树 集合hash】bzoj4373: 算术天才⑨与等差数列
- 利用opencv作透明重叠人群密度热度图
- Linux常见命令(一)
- 关于org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor的队列
- 在xcode中用oc实现计算器
- 楷书书法规则_楷书笔画书写八大规律
- 获取服务器的视频文件夹,视频从云服务器获取视频文件夹
- 垃圾食品对身体的影响可不仅仅是减慢新陈代谢这么简单
- Apache ShenYu 网关正式支持 Dubbo3 服务代理
- [常用工具] 搜索引擎的常用技巧总结
- 手机号码邮箱 验证规则(最新)
- 干货丨让你更容易影响别人的 52 个小技巧
- (附源码)ssm基于JavaEE的电脑销售管理系统设计与实现 毕业设计021143
- 凑个热闹,分析下Padavan的代码,一
- 怎么用计算机计算复利,如何用普通计算器计算复利
- 计算机需要管理员密码,如何实现 Windows 系统在安装 / 卸载软件时要求输入管理员密码?...
热门文章
- 初识Volley(四)
- 项目代码风格要求(转自博客园-张子阳)
- vue+element-ui之tree树形控件有关子节点和父节点之间的各种选中关系详解
- java实现多人聊天室+私聊+Derby数据库
- 【看书】int的范围
- 用随机数形成一个由1-50组成的10个元素的列表,不允许有重复项,并升序排列,要求从键盘中输入一个1-50的整数,将这个整数按顺序插入到这个列表中,如果输入的数字在原列表中存在的话,重新输入。
- 手机隐私保护不容乐观,洗大师能否解决后顾之忧?
- maya mel新手入门要注意的小地方
- 解决docker启动mysql容器失败问题
- R 网络图 nodes,edges属性计算