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

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

官方文档: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.             storeFile file('/Users/stone/Documents/project_AS/myapplication/stone.keystore')  
  7.             storePassword 'mypwd'  
  8.         }  
  9.     }  
  10.         buildTypes {  
  11.            release {  
  12.              ...  
  13.              signingConfig signingConfigs.release  
  14.            }  
  15.         }  
  16.   
  17. }  

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

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


b. 执行gradle 命令, $ gradle assembleRelease 

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

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


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

[plain] view plaincopy
  1. signingConfigs { //gradle assembleRelease  
  2.     myConfig {  
  3.         storeFile file("stone.keystore")  
  4.         storePassword System.console().readLine("\nKeystore password: ")  
  5.         keyAlias "stone"  
  6.         keyPassword System.console().readLine("\nKey password: ")  
  7.     }  
  8. }  

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


2. 使用Android Studio 签名打包

   菜单 Build > Generate Signed APK


3. 使用Android Studio 自动签名打包

   a. 打开Project Structure,打开方法如下:

Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包_第1张图片

   b. 选中需要构建的moudle,打开Signing,添加config

   Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包_第2张图片

   执行完成后,会在build.gradle中自动加上 signingConfigs{ config {...} }的信息

   c. 打开Build Types -> release

Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包_第3张图片

    在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



From: http://blog.csdn.net/shineflowers/article/details/45042485


---------------------------------------------------------------------------------------------------------------------------------------------------------------------

Android Studio如何签名

我们在使用Android Studio进行应用的发布时要进行签名,本经验将通过我的一个应用的签名过程教大家如何签名。

工具/原料

  • Android Studio
  • 一个自己以前使用的key当然没有可以自己生成一个

方法/步骤

  1. 第一步我们打开我们下载安装好的Android Studio

    Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包_第4张图片
  2. 然后我们选择好了我们的要发布的项目选择Build

    Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包_第5张图片
  3. 然后选择Generate Signed APK

    Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包_第6张图片
  4. 然后可以选择创建或者选择一个已有的key,我这里选择以前创建好的一个key文件

  5. 然后输入密码等信息,点击next

    Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包_第7张图片
  6. 然后点击finish,选择release版本


  7. 我们就可以看到生成的apk文件了,然后我们就可以把应用发布到各平台供人下载了

    Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包_第8张图片


From: http://jingyan.baidu.com/article/a24b33cd7086d719fe002b8c.html




你可能感兴趣的:(android,android,apk,签名,Studio)