一.需求
- 开发Uniapp项目时,使用HBuilderX进行云打包,会经常遇到两个方面的问题,当天的打包的次数受到了限制和打包的时间会比较长,因此,对于离线打包其需求还是比较常见的,这篇文章记录一下对Uniapp的项目使用Android Studio来打包Android端的apk。
- 当然,离线打包也有一定的不足,比如:有的插件不支持离线打包的方式,至于还有其它方面的不足大家可以自行查询一下;
二.参考资料与环境准备
- Android原生工程配置
- 需要使用到Android studio和HbuilderX
- 当前测试的as版本-20240301,下载地址
- HbuilderX版本:4.36
三.离线打包流程
-
1.导入下载的UniPlugin-Hello-AS工程(下载地址见参考资料)
-
2.移除并删除导入的项目中的各个module文件
- 快捷键:ctrl + alt + shift + s,按照下图进行选择,选中要删除的module,然后点击箭头指向的地方,最后需要手动删除目标module的文件夹
- 快捷键:ctrl + alt + shift + s,按照下图进行选择,选中要删除的module,然后点击箭头指向的地方,最后需要手动删除目标module的文件夹
-
3.生成jks证书
- 3.1.通过命令行生成jsk证书,假设jks名称为myjks,则输入以下命令
keytool -genkeypair -alias myjks -keyalg RSA -keystore myjks.keystore -keysize 2048 -validity 36500 -sigalg SHA256withRSA
- 3.2.将证书格式转一下
keytool -importkeystore -srckeystore myjks.keystore -srcstoretype PKCS12 -deststoretype JKS -destkeystore myjks.jks
- 3.3.将生成的jks证书放到步骤1中的app目录下;然后使用命令获取SHA1和SHA256两个值(下方第4步中会使用到)
keytool -list -v -keystore myjks.jks
-
4.在uniapp后台添加离线打包的配置
- 在后台选择使用HbuilderX创建的项目,选择“离线打包Key管理”,按照下图方式进行配置
- 保存之后选择“创建离线key”,记录生成的key为Android对应的value的值
- 在后台选择使用HbuilderX创建的项目,选择“离线打包Key管理”,按照下图方式进行配置
-
5.修改app文件夹下的build.gradle中的配置
-
6.使用BuilderX进行本地打包
- 将生成的本地资源放入文件夹中(UniPlugin-Hello-AS\app\src\main\assets\apps)
-
7.更改\UniPlugin-Hello-AS\app\src\main\AndroidManifest.xml中的内容
将<meta-data
android:name="dcloud_appkey"
android:value="开发者需登录https://dev.dcloud.net.cn/申请签名" />
更改成
<meta-data
android:name="dcloud_appkey"
android:value="78b2a45f4274af99fa17d63615458ecd" />
- 8.更改\UniPlugin-Hello-AS\app\src\main\assets\data\dcloud_control.xml中的内容
<hbuilder>
<apps>
<app appid="__UNI__F089EA2" appver=""/>
</apps>
</hbuilder>
- 9.(通过命令)进行打包
- 打包后的效果以及使用真机进行调试
- 打包后的效果以及使用真机进行调试
四.总结
- 经过以上步骤就可以实现uniapp使用Android studio进行离线打包,当更改了BuilderX的内容,重复步骤6和9即可,如果需要使用离线打包的Apk来上架,还得要把图标以及应用名称等进行设置才行(这块不做记录,自行查询即可)。
评论区