Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包
Posted 匆忙拥挤repeat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包相关的知识,希望对你有一定的参考价值。
本文关联文章:安卓多渠道打包:使用Gradle和安卓 Studio
官方文档:https://developer.android.com/tools/publishing/app-signing.html
1. 默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore
2. Release Mode 签名:
build.gradle:
android
signingConfigs
releaseConfig
keyAlias 'stone'
keyPassword 'mypwd'
storeFile file('/Users/stone/Documents/project_AS/myapplication/stone.keystore')
storePassword 'mypwd'
buildTypes
release
...
signingConfig signingConfigs.release
( 插一句:上文中,由于当时编辑失误, 要修正一个地方,感谢评论里的小哥哥。 release ... signingConfig signingConfigs.releaseConfig )
signingConfigs 即签名配置。 配置名releaseConfig //配置内容
在buildTypes中指定release时的signingConfigs对应的配置名
执行gradle 命令, $ gradle assembleRelease
编译并发布。 在build/outputs/apk/ 下能看到未签名的apk 和 已经签名的apk
如果未用签名文件,使用debug mode的debug签名。那就会生成一个debug签名的apk
3. 签名密码写在gradle中不安全:
signingConfigs //gradle assembleRelease
myConfig
storeFile file("stone.keystore")
storePassword System.console().readLine("\\nKeystore password: ")
keyAlias "stone"
keyPassword System.console().readLine("\\nKey password: ")
这样在命令 执行 命令时,就会被要求输入密码
4. 使用Android Studio 签名打包
菜单 Build > Generate Signed APK
5. 使用Android Studio 自动签名打包
a. 打开project structure (cmd+;)
b. 选中需要构建的moudle,打开Signing,添加config
执行完成后,会在build.gradle中自动加上 signingConfigs config ... 的信息
c. 打开build types > release
在signing Config中选择定义的配置
zip align enabled 默认为true, 用于启用优化Apk的操作
d. $ gradle build
会在build/outputs/apk/ 目录下输出 在build types中定义的 编译类型
如:
myapplication-debug-unaligned.apk
myapplication-debug.apk
myapplication-release-unaligned.apk
myapplication-release-unsigned.apk
myapplication-release.apk
6. 使用Android SDK 和 JDK 的命令 签名打包APK
创建签名
keytool -genkey -v -keystore stone.keystore -alias stone -keyalg RSA -keysize 2048-validity 10000 生成签名文件
为apk签名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore stone.keystore unsigned.apk stone 不生成新文件
检测apk是否签名
jarsigner -verbose -certs -verify signed.apk
优化apk
zipalign -f -v 4 signed_unaligned.apk signed_aligned.apk
以上是关于Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包的主要内容,如果未能解决你的问题,请参考以下文章
如何解决android studio2.3导入android studio2.1的问题