Ionic Android打包

本教程适合于ionic3框架打包Android apk,命令与ionic2类似,可供ionic2参考。ionic之所以能运行在多个平台中,得益于集成了Cordova框架。

  1. 为ionic项目添加Android平台:

    ionic cordova platform add android
    

    同样,如果需要移除Android平台:

    ionic cordova platform remove android
    
  2. 编译Android apk包:

    这里有两种apk包,一种是debug类型的,一种是未签名的发布包。debug类型的比较大,而且运行在手机上会比较慢,使用ionic3的命令打包成未签名的发布包,可以进行优化,app运行速度会有质的提升。
    打包debug类型,默认命名为android-debug.apk:

    ionic cordova build android
    

    打包未签名的发布包类型,默认命名为android-release-unsigned.apk:

    ionic cordova build android --prod --release
    
    • -prod ionic的打包方式,可以加快app开启速度

    • -release 声明打包的是发布版

  3. 生成.keystore签名文件

    keytool -genkey -alias superatom.factory -keyalg RSA -validity 40000 -keystore superatom.factory.keystore
    
    • keytool是生成签名文件的工具名称,-genkey意味着执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来。
    • -keystore superatom.factory.keystore 证书的文件名;
    • -alias superatom.factory 表示证书的别名
    • -keyalg RSA 生成密钥文件所采用的算法;
    • -validity 40000 该数字证书的有效期;

执行了这段命令,会在当前执行命令的目录下创建一个签名文件。

  1. 签名apk
    使用上面生成的签名文件签名apk:

    jarsigner -verbose -keystore /home/superatom/superatom.factory.keystore -signedjar factory_signed.apk android-release-unsigned.apk superatom.factory 
    
    • arsigner是工具名称,-verbose表示将签名过程中的详细信息打印出来;
    • -keystore /home/superatom/superatom.factory.keystore之前生成的证书的绝对路径
    • -signedjar factory_signed.apk 签名后的apk 命名
    • android-release-unsigned.apk需要签名的apk
    • superatom.factory 证书的别名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /home/superatom/superatom.factory.keystore -signedjar factory_signed.apk android-release-unsigned.apk superatom.factory 
  • 添加-sigalg SHA1withRSA -digestalg SHA1,即使用SHA1withRSA算法加密,如果不适用默认是SHA256withRSA。使用默认的算法会导致低版本的Android无法安装,360软件管家不允许发布此类算法签名的App。
  1. 到此,签名apk制作完毕!

你可能感兴趣的:(Ionic Android打包)