美文网首页
ionic 打包APP — Android 打包及签名

ionic 打包APP — Android 打包及签名

作者: 二千一 | 来源:发表于2018-01-31 14:12 被阅读1094次

    注:下文默认 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信息:


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

          本文链接:https://www.haomeiwen.com/subject/jlwkzxtx.html