ionic android 发布

准备工作

1.密钥和证书管理工具:keytool

2.优化apk工具:zipalign


打包应用

1.打包apk,命令如下:

$ cordova build --release android

生成release版本的apk (ionic / cordova 命令均可) 。执行完这条命令后,cordova会根据你的config.xml生成一个未签名的apk包,默认存储在(platforms/android/build/outputs/android-release-unsigned.apk)。

2.生成密钥和证书,命令如下:

$ keytool -genkey -v -keystore key_name.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

-genkey执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来
参数说明:

-keystore key_name.keystore 证书的文件名;
-alias alias_name 表示证书的别名
-keyalg RSA 生成密钥文件所采用的算法
-keysize 2048 密钥文件的大小
-validity 10000 该数字证书的有效期;

输入后会要求输入两次密钥文件的密码,并回答一些关于你所在组织机构、地区等问题,回答完成截屏保存即可,密钥文件默认在项目的根目录。

3.签名apk,命令如下:

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1  -keystore key_name.keystore appName.apk alias_name

注意:alias_name 应与密钥文件中设置的alias_name一致!同时,keystore与apk需要在同一目录才可以使用上面的命令,否则需要手动指定相关文件目录位置。

4.优化(可选)
在Android SDK中的build-tools中包含了一个工具:zipalign,它可以优化apk,apk的MIME其实就是一个zip压缩文件,通过zipalign可以让apk序运行更快,首次被引入是在Android 1.6版本的SDK。
命令如下(先切换至apk所在目录):

$ zipalign -v 4 before.apk after.apk
部分API
  • keytool
-genkeypair [OPTION]...
     -alias <alias>                  要处理的条目的别名
     -keyalg <keyalg>                密钥算法名称
     -keysize <keysize>              密钥位大小
     -sigalg <sigalg>                签名算法名称
     -destalias <destalias>          目标别名
     -dname <dname>                  唯一判别名
     -startdate <startdate>          证书有效期开始日期/时间
     -ext <value>                    X.509 扩展
     -validity <valDays>             有效天数
     -keypass <arg>                  密钥口令
     -keystore <keystore>            密钥库名称
     -storepass <arg>                密钥库口令
     -storetype <storetype>          密钥库类型
     -providername <providername>    提供方名称
     -providerclass <providerclass>  提供方类名
     -providerarg <arg>              提供方参数
     -providerpath <pathlist>        提供方类路径
     -v                              详细输出
     -protected                      通过受保护的机制的口令

使用 “keytool -help” 获取所有可用命令,使用 “keytool -command_name -help” 获取 command_name 的用法

  • jarsigner
用法: jarsigner [选项] jar-file 别名 jarsigner -verify [选项] jar-file [别名...]

[-keystore <url>]           密钥库位置

[-storepass <口令>]         用于密钥库完整性的口令

[-storetype <类型>]         密钥库类型

[-keypass <口令>]           私有密钥的口令 (如果不同)

[-certchain <文件>]         替代证书链文件的名称

[-sigfile <文件>]           .SF/.DSA 文件的名称

[-signedjar <文件>]         已签名的 JAR 文件的名称

[-digestalg <算法>]        摘要算法的名称

[-sigalg <算法>]           签名算法的名称

[-verify]                   验证已签名的 JAR 文件

[-verbose[:suboptions]]     签名/验证时输出详细信息。
                            子选项可以是 all, grouped 或 summary

[-certs]                    输出详细信息和验证时显示证书

[-tsa <url>]                时间戳颁发机构的位置

[-tsacert <别名>]           时间戳颁发机构的公共密钥证书

[-altsigner <>]           替代的签名机制的类名

[-altsignerpath <路径列表>] 替代的签名机制的位置

[-internalsf]               在签名块内包含 .SF 文件

[-sectionsonly]             不计算整个清单的散列

[-protected]                密钥库具有受保护验证路径

[-providerName <名称>]      提供方名称

[-providerClass <>        加密服务提供方的名称
[-providerArg <参数>]]...   主类文件和构造器参数

[-strict]                   将警告视为错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值