官方文档: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
  1. android{
  2. signingConfigs{
  3. releaseConfig{
  4. keyAlias'stone'
  5. keyPassword'mypwd'
  6. storeFilefile('/Users/stone/Documents/project_AS/myapplication/stone.keystore')
  7. storePassword'mypwd'
  8. }
  9. }
  10. buildTypes{
  11. release{
  12. ...
  13. signingConfigsigningConfigs.release
  14. }
  15. }
  16. }

signingConfigs 即签名配置。 配置名releaseConfig{ //配置内容 }

在buildTypes中指定release时的signingConfigs对应的配置名


b. 执行gradle 命令,$gradleassembleRelease

编译并发布。 在build/outputs/apk/ 下能看到未签名的apk 和 已经签名的apk

如果未用签名文件,使用debug mode的debug签名。那就会生成一个debug签名的apk


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

[plain]view plaincopy
  1. signingConfigs{//gradleassembleRelease
  2. myConfig{
  3. storeFilefile("stone.keystore")
  4. storePasswordSystem.console().readLine("\nKeystorepassword:")
  5. keyAlias"stone"
  6. keyPasswordSystem.console().readLine("\nKeypassword:")
  7. }
  8. }

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


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


转载自:http://blog.csdn.net/shineflowers/article/details/45042485

更多相关文章

  1. android adb shell 命令大全
  2. Android(安卓)Studio 使用github
  3. Android(安卓)Library Project 使用问题总结
  4. android技术开发例子,解析以及源码集锦
  5. android adb shell 命令大全
  6. android技术开发例子,解析以及源码集锦
  7. ListView使用完全讲解
  8. Android的快速开发框架 afinal
  9. 在android jni中使用log

随机推荐

  1. Android提高篇之自定义dialog实现process
  2. Android使用Gradle依赖配置compile、impl
  3. LibGDX学习-LibGDX基本框架
  4. Android(安卓)屏幕旋转问题
  5. Android启动后,加载的2类service (Native
  6. Delphi10.2.3部署Android
  7. Android自适应屏幕方向、大小和分辨率,及
  8. Android裡使用的dpi 跟 pixel 的轉換
  9. View编程(2): invalidate()再探
  10. 发生android.view.ViewRoot$CalledFromWr