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

    xiaoxiao2021-03-25  58

    1. 默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore

    2. Release Mode 签名:

     build.gradle

        

    [plain]  view plain  copy  print ? 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对应的配置名 

    执行gradle 命令, $ gradle assembleRelease 

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

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

    我自己这么配置的;

    signingConfigs { debug { keyAlias 'ucoupon' keyPassword 'mypsd' storeFile file('../ucoupon.keystore') storePassword 'mypsd' } release { keyAlias 'ucoupon' keyPassword 'mypsd' storeFile file('../ucoupon.keystore') storePassword 'mypsd' } } 这样就可以再设置中切换:

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

    [plain]  view plain  copy  print ? 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 

    转载请注明原文地址: https://ju.6miu.com/read-40107.html

    最新回复(0)