ionic 打包APP — Android 打包及签名

注:下文默认 Android studio 及 SDK、grandl 已安装。Android Studio下载地址 这里。

环境

  • 系统:macOS
  • ionic:v_3.19.0
  • Android studio: v_3.0

常规打包

  1. 添加Android平台并打包Android app(debug测试版):
    • 项目根目录执行命令:
      ionic cordova build android --prod(app体积小,打包时间稍长)
      or
      ionic cordova build android(app体积大,打包时间稍短)
    • 打包生成的文件地址:
      项目根目录/platforms/android/build/outputs/apk/android-debug.apk
  2. 添加Android平台并打包Android app(发布版):
    • 项目根目录执行命令:
      ionic cordova build android --prod --release(生成未签名版)
    • 打包生成的文件地址:
      项目根目录/platforms/android/build/outputs/apk/android-release-unsigned.apk

签名步骤

  1. 创建私钥,项目根目录下执行命令(记住设置的别名):
    keytool -genkey -v -keystore [自定义秘钥文件名,如 my-app].jks -keyalg RSA -keysize 2048 -validity 10000 -alias [自定义app别名,如 my-alias]

  2. 接下来会让设置秘钥库口令(记住秘钥):

    秘钥口令设置

  3. 设置秘钥库口令后会让输入一些APP信息:


    ionic 打包APP — Android 打包及签名_第1张图片
    app信息设置
  4. 按照提示依次输入后会在项目根目录生成秘钥文件 xxx.jks、

  5. 将 xxx.jks 与 android-release-unsigned.apk 放在同一目录下,执行签名命令:
    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [上步生成的xxx.jks] android-release-unsigned.apk [步骤1命令中设置的app别名,如 my-alias]

  6. 优化 apk 文件:

    • 切换到 zipalign 路径
      macOS: ~/Library/Android/sdk/build-tools/VERSION 如:25.0.1/
    • 将上步骤中已签名的 android-release-unsigned.apk 放入该目录中(与zipalign同级),执行优化命令:
      zipalign -v 4 android-release-unsigned.apk [自定义最终生成的apk的名字,如 HelloWorld.apk]
  7. 验证 apk 是否已签名
    和上步骤相同目录(上步已优化的apk在该目录下)下执行命令:
    apksigner verify [上步中自定义的apk名字,如 HelloWorld.apk]

签名过程中问题及处理

  1. 执行签名步骤5时如报错:


    签名报错

    解决:将 秘钥文件 xxx.jks 与 android-release-unsigned.apk 放在同一目录下。

  2. 执行签名步骤6时报错:

    • 错误1:
      错误1
      解决:执行命令的路径切换到 zipalign 所在路径。若依然报该错误,可尝试
      ./zipalign -v 4 android-release-unsigned.apk [自定义最终生成的apk的名字,如 HelloWorld.apk]
    • 错误2:
      错误2

      解决:已签名的 android-release-unsigned.apk 放入 zipalign 所在路径中。

你可能感兴趣的:(ionic 打包APP — Android 打包及签名)