zoukankan      html  css  js  c++  java
  • Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包

    官方文档:https://developer.Android.com/tools/publishing/app-signing.html

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

    2. 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对应的配置名 

    执行gradle 命令, $ gradle assembleRelease 

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

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

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

    signingConfigs { //gradle assembleRelease  
        myConfig {  
            storeFile file("stone.keystore")  
            storePassword System.console().readLine("
    Keystore password: ")  
            keyAlias "stone"  
            keyPassword System.console().readLine("
    Key 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 

    转自:http://blog.csdn.net/jjwwmlp456/article/details/44942109#comments

  • 相关阅读:
    双飞翼布局和圣杯布局的对比
    阿里云centos+java环境搭建
    Android零散知识点积累
    [转]linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例
    [转]linux shell 获取当前正在执行脚本的绝对路径
    [转+整理]linux shell 将字符串分割成数组
    [转]linux shell 数组建立及使用技巧
    linux shell 入门
    jquery 字符串转为json
    JQuery插件开发入门
  • 原文地址:https://www.cnblogs.com/Sharley/p/5995865.html
Copyright © 2011-2022 走看看