转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50538148   文章出自:薛瑄的博客

你也可以查看我的其他同类文章,也会让你有一定的收货!

生成APK自动追加版本号

可自动区分debug和release,并追加版本号:

  1. 打开 build.gradle

  2. 在 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名称 指定签名证书文件相关推荐

  1. android studio生产签名文件,Android Studio 生成 keystore 签名文件

    Android Studio 生成 keystore 签名文件 常见 SSL 证书格式 : .DER .CER,文件是二进制格式,只保存证书,不保存私钥. .PEM,一般是文本格式,可保存证书,可保存 ...

  2. Android Studio生成二维码

    Android Studio生成二维码 第一步 导入依赖 第二步 在清单文件里加权限 第三步 初始化 第四步 在清单文件里进行调用 第五步 在MainActivity 第六步 建一个管理类 第七步 新 ...

  3. android生成apk流程,Android Studio生成APK的基本流程

    Android Studio生成APK的基本流程 2020年08月14日 | 萬仟网移动技术 | 我要评论 Android Studio生成APK流程修改版本号和文件名安全加固(可选)生成签名apk修 ...

  4. Android Studio的res自动生成的文件出错了_莫韵乐与bug的奇妙冒险

    Android Studio的res自动生成的文件出错了_莫韵乐与bug的奇妙冒险 无论学什么编程语言都要跟奇怪的bug过不去 奇怪的bug出现了 今天满怀欣喜地进行安卓开发学习,创建好一个新的项目之 ...

  5. Android Studio项目打包:3、Android Studio生成的apk究竟在哪里?(非正式打包)

    以前11年那会刚干Android开发的时候用的开发工具是eclipse,现在大家都用的Android Studio, 当有的时候我们需要给相关人员演示apk效果,这时我们只需要快速运行打包apk而不是 ...

  6. android studio生成JKS时候提示:JKS 密钥库使用专用格式。建议使用 keytool -importkeystore

    本文是方便新手的,将过程中许多问题都列举出来引用其他文章链接,方便新手快速找到如何解决,大家根据自己需求选择性查看即可 使用Android Studio自带的功能创建的key的时候,出现warning ...

  7. android studio生产签名文件,Android Studio生成keystore签名文件步骤讲解

    Android App打包时要用到签名文件,Android Studio生成签名文件步骤如下: Build---Generate Signed Apk...如图: 如果你的project中有2个或者2 ...

  8. Android Studio生成keystore签名文件

    Android App打包时要用到签名文件,Android Studio生成签名文件步骤如下: Build---Generate Signed Apk...如图: 如果你的project中有2个或者2 ...

  9. android生成md5,使用Android studio生成签名文件以及获取MD5

    内容要点:android 一.Android studio生成签名文件安全 二.经过Android studio获取MD5app 1.Android studio生成签名文件ide 在菜单栏中,点击 ...

最新文章

  1. python 网络编程之Socket通信案例消息发送与接收
  2. JS报“Uncaught TypeError: undefined is not a function ”异常
  3. 问题 I: 成对最小公倍数(数学)
  4. 建立你的RoR学习环境(Windows)之一
  5. 【线段树 集合hash】bzoj4373: 算术天才⑨与等差数列
  6. 利用opencv作透明重叠人群密度热度图
  7. Linux常见命令(一)
  8. 关于org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor的队列
  9. 在xcode中用oc实现计算器
  10. 楷书书法规则_楷书笔画书写八大规律
  11. 获取服务器的视频文件夹,视频从云服务器获取视频文件夹
  12. 垃圾食品对身体的影响可不仅仅是减慢新陈代谢这么简单
  13. Apache ShenYu 网关正式支持 Dubbo3 服务代理
  14. [常用工具] 搜索引擎的常用技巧总结
  15. 手机号码邮箱 验证规则(最新)
  16. 干货丨让你更容易影响别人的 52 个小技巧
  17. (附源码)ssm基于JavaEE的电脑销售管理系统设计与实现 毕业设计021143
  18. 凑个热闹,分析下Padavan的代码,一
  19. 怎么用计算机计算复利,如何用普通计算器计算复利
  20. 计算机需要管理员密码,如何实现 Windows 系统在安装 / 卸载软件时要求输入管理员密码?...

热门文章

  1. 初识Volley(四)
  2. 项目代码风格要求(转自博客园-张子阳)
  3. vue+element-ui之tree树形控件有关子节点和父节点之间的各种选中关系详解
  4. java实现多人聊天室+私聊+Derby数据库
  5. 【看书】int的范围
  6. 用随机数形成一个由1-50组成的10个元素的列表,不允许有重复项,并升序排列,要求从键盘中输入一个1-50的整数,将这个整数按顺序插入到这个列表中,如果输入的数字在原列表中存在的话,重新输入。
  7. 手机隐私保护不容乐观,洗大师能否解决后顾之忧?
  8. maya mel新手入门要注意的小地方
  9. 解决docker启动mysql容器失败问题
  10. R 网络图 nodes,edges属性计算