0
点赞
收藏
分享

微信扫一扫

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:

​​

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 命令, $ gradlew assembleRelease 

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

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


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

​​


    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签名打包_android

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

       

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

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

       c. 打开Build Types -> release

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

        在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 


    举报

    相关推荐

    0 条评论