android bundle指令打包

android bundle指令打包

区别apk打包,bundle打包的指令和签名,和得到apk安装步骤;

一、和apk打包一样,通过官方推荐的gradle去实现打包

	打包指令(apk):gradlew assebleRelease		//结果是  xxx.apk
	
	打包指令(bundle):gradlew bundleRelease	//结果是  xxx.aab

二、生成签名秘钥

参考中文官网文档:https://reactnative.cn/docs/signed-apk-android

//在windows的DOS中,进入JDK 的 bin 目录中执行:

$ keytool -genkeypair -v -keystore bai-release-key.jks -alias bai-key-alias -keyalg RSA -keysize 2048 -validity 10000

##### bai-release-key.jks 是签名文件的名称
##### bai-key-alias 是签名文件的别名,将来为应用签名时所需要用到的
	
	输入密钥库(keystore)和对应密钥的密码
	
		输入秘钥库口令:bai123456
		再次输入新口令:bai123456
		
		您的名字与姓氏是什么?				:yingbin bai
		您的组织单位名称是什么?				:mestore
		您的组织名称是什么?					:mestore
		您所在的城市或区域名称是什么?		:beijing
		您所在的省/市/自治区名称是什么? 	:beijing
		该单位的双字母国家/地区代码是什么?	:zh
		确认信息是否正确					:Y

//迁移到行业标准格式 PKCS12

$ keytool -importkeystore -srckeystore bai-release-key.jks -destkeystore bai-release-key.jks -deststoretype pkcs12

//把my-release-key.jks文件放到你工程中的android/app文件夹下

keytool的指令使用:https://www.cnblogs.com/benio/archive/2010/09/15/1826990.html

三、jarsigner签名aab文件

//jarsigner -keystore 签名文件.jks 绝对路径.aab 签名
$ jarsigner -keystore bai-release-key.jks app/build/outputs/bundle/release/app-release.aab bai-key-alias

//警告:未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳(时间戳可能会变,自己找), 则在签名者证书的到期日期
(2048-11-01) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。
$ jarsigner -keystore bai-release-key.jks app/build/outputs/bundle/release/app-release.aab bai-key-alias -tsa http://timestamp.digicert.com

四、aab(Android App Bundle)转apks并安装

参考:https://blog.csdn.net/QQ1075687690/article/details/113881018

1、下载bundletool,下载地址:https://github.com/google/bundletool/releases

2、配置bundletool:

$ @doskey bundletool=java -jar xxx\bundletool-all.jar $*

3、Error: could not open `G:\Android\DevelopTool\JRE1.8\lib\amd64\jvm.cfg’

将Path里面的%JAVA_HOME%/bin放在最前面即可(https://blog.csdn.net/mulinsen77/article/details/87600801)

重启电脑后,再次执行:$ @doskey bundletool=java -jar xxx\bundletool-all.jar $*

4、当 bundletool 从 app bundle 生成 APK 时,它会将这些 APK 纳入到一个名为“APK set archive”的容器中,
该容器以 .apks 作为文件扩展名。如需从 app bundle 为应用支持的所有设备配置生成一组 APK,请使用 bundletool build-apks 命令,如下所示。

$ bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

5、将 APK 部署到连接的设备
如需从 APK 集部署您的应用,请使用 install-apks 命令并使用 --apks=/path/to/apks 标记指定 APK 集的路径,如下所示。
(如果连接了多个设备,请添加 --device-id=serial-id 标记来指定目标设备。)

$ bundletool install-apks --apks=/MyApp/my_app.apks

五、将您的应用.aab上传到 Play 管理中心

参考:https://developer.android.google.cn/studio/publish/upload-bundle

如果您以 Android App Bundle 格式上传应用,Play 管理中心会自动为应用支持的所有设备配置生成拆分
APK 和多 APK。在 Play 管理中心内,您可以使用 App Bundle 资源管理器查看 Google Play 生成的所有
APK 工件、检查受支持的设备和 APK 缩减大小等数据,以及下载生成的 APK 以在本地进行部署和测试。

六、jarsigner的指令集:

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

[-keystore ] 密钥库位置

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[-strict] 将警告视为错误

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漠天515

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值