Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包

本文转载自:http://blog.csdn.net/shineflowers/article/details/45042485
官方文档:https://developer.android.com/tools/publishing/app-signing.html

默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore
比如 C:\Users\chengcj1.android\debug.keystore
1.利用Gradle命令行进行签名

a. Release Mode 签名:
build.gradle:
[plain] view plaincopy

派生到我的代码片
派生到我的代码片

android {
signingConfigs {
releaseConfig {
keyAlias 'stone'
keyPassword 'mypwd'
storeFile file('/Users/stone/Documents/project_AS/myapplication/stone.keystore')
storePassword 'mypwd'
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}

}

signingConfigs 即签名配置。 配置名releaseConfig{ //配置内容 }
在buildTypes中指定release时的signingConfigs对应的配置名

b. 执行gradle 命令, $ gradlew assembleRelease
编译并发布。 在build/outputs/apk/ 下能看到未签名的apk 和 已经签名的apk
如果未用签名文件,使用debug mode的debug签名。那就会生成一个debug签名的apk

c. 签名密码写在gradle中不安全:

[plain] view plaincopy

派生到我的代码片
派生到我的代码片

signingConfigs { //gradle assembleRelease
myConfig {
storeFile file("stone.keystore")
storePassword System.console().readLine("\nKeystore password: ")
keyAlias "stone"
keyPassword System.console().readLine("\nKey password: ")
}
}

这样在命令 执行 命令时,就会被要求输入密码

2. 使用Android Studio 签名打包

菜单 Build > Generate Signed APK

3. 使用Android Studio 自动签名打包
a. 打开Project Structure,打开方法如下:


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

4. 使用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 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,738评论 25 709
  • 最近在项目中遇到需要实现 Apk 多渠道、定制化打包, Google 、百度查找了一些资料,成功实现了上述功能,在...
    看一季残花落幕阅读 7,347评论 1 8
  • 1.介绍 如果你正在查阅build.gradle文件的所有可选项,请点击这里进行查阅:DSL参考 1.1新构建系统...
    Chuckiefan阅读 14,170评论 8 72
  • 我生性懦弱。 上学之前我特怕黑,到了大概太阳傍着山下沉那会儿,就不敢走那条老胡同,那里没几户人家,每次走近都有种 ...
    夏曦曦Walt阅读 3,783评论 0 1
  • 从来没有想过有一天敢把我们的故事拿到众目睽睽之下 可是令我一生难忘的感情一定要勇敢说出来 我并不想一点点从头讲到尾...
    刘刘刘刘刘刘YJ阅读 2,817评论 0 0