uniapp离线打包apk

本文详细描述了作者从uniapp项目起始,如何在androidstudio中申请证书、配置离线打包,以及处理gradle和签名配置的问题,以完成安卓应用的打包过程。
摘要由CSDN通过智能技术生成


前言

越来越多的前端或者后端同事开始接触到uniapp,号称:开发一次,多端覆盖。并且用的是vue.js,学习成本比较低,入门快。发布小程序、H5等都比较方便。编者在使用过程中也遇到过许多问题,并不能实现 “一端多用”的情况,暂不展开来讲。本文主要还是记录一下编者在使用vue开发到apk打包的全部过程。


一、项目起始

起因是我们需要做一个驾驶舱的项目,最终选用了vue作为框架,UI部分因为是定制化,所以基本没有使用到UI组件库。本来已经开发完展示没有问题,但是甲方需要在华为智慧屏中进行展示,在了解后发现智慧屏为安卓系统。虽然也可以在浏览器中输入部署后的服务地址来查看驾驶舱,但是为了良好的体验(甲方爸爸不想手动操作全屏之类的o(╥﹏╥)o),所以还是得做APP。
在开发APP前,了解到可以将vue项目放入uniapp的H5+app壳子中进行打包。非常开心,不用专门耗时耗力开发APP了。原本以为至此已经结束了吧,不料!忘记了Uniapp中自带的云打包是需要排队的,人少时没关系,人多的时候差不多需要20多分钟甚至更久。相当不方便!
因此,需要用到离线打包功能。下面记录了流程和一些遇到的坑。

二、android studio打包apk

1.申请证书

首先到Uniapp开发者后台:https://dev.dcloud.net.cn/
通常建好uniapp项目后,在配置文件中配置服务名称的时候就可以创建应用,然后在开发者后台应用列表中点击进入需要打包的应用。即可看到应用基本信息
在这里插入图片描述
然后点击Android云端证书,打开证书详情,复制一些数据,后续为生成离线打包key做准备
在这里插入图片描述
这些便是证书中所需的值,根据需要复制过来填写即可
在这里插入图片描述
进入各平台信息,点击生成appkey,即可在表格的离线打包Key中查看appkey
在这里插入图片描述

2.将本地app资源放到android studio(下文均以AS简称)进行打包

没有AS的话到官网下载:
https://developer.android.google.cn/studio/install
建议到uniapp App离线打包文档查看更为详细:uniapp-APP离线打包
安装AS基本一切可以先下一步,其余的都可以下载好之后再进行配置即可。
然后根据uniapp文档提供的地址下载 Android 离线SDK ,放到合适的文件夹解压后我们需要其中的HBuilder-Integrate-AS项目。
文件结构大概如下,这个simpleDemo便是我们的主要目录了
在这里插入图片描述
之后在AS中打开项目跟着官方文档更改一些配置。

首先在hbuilderX中导出本地资源:点击项目或者在工具栏中选择发行-->原生App-本地打包-->生成本地打包App资源
成功后会有提示,并且可以直接点击路径打开资源管理器:

在这里插入图片描述
打开后可以看到咱们的项目名,并且下面有个www的文件夹。第一次生成的资源直接拷贝到AS中(HBuilder-Integrate-AS\simpleDemo\src\main\assets\apps)放到apps下面就可以了,之后再生成资源的时候,只需要将www文件夹覆盖即可。
在这里插入图片描述
在此之前,我也翻到过其他编者的文章,所以不过多赘述步骤,只提一些小细节和关键点。

gradle: 在构建环境的时候,会安装gradle,如果只是用来打包离线apk,倒不用太深刻的去理解gradle,可以简单理解为android studio工程的依赖管理和打包工具或者项目构建工具,如果需要其他作用,可以去看详细的教程与文档。
记得在构建环境的时候需要科学上网工具,否则很多资源都是无法下载的,这里还要注意JDK与gradle的版本对应关系。可以去这个地址查看具体关系:https://docs.gradle.org/current/userguide/compatibility.html#compatibility
在这里插入图片描述
然后记得在AS中设置代理,避免下载失败。
之后在gradle.properties中配置一下 org.gradle.jvmargs 为

org.gradle.jvmargs=-Xmx1536m --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED

编者只是为打包apk,所以为何需要改动,具体原因并没有去深究。

接下来配置build.gradle中的signingConfigs.config,首先将uniapp中的证书下载到本地,并且放入simpleDemo根目录,方便配置。其他对照uniapp中的证书信息填写即可,这里注意keyPassword与storePassword填写一致,都是证书中的密码。
在这里插入图片描述

进入最后的打包环节:点击Build–>Generate Signed Bundle/APK

在这里插入图片描述
选择APK
在这里插入图片描述
点击 Choose existing 也就是选择已有文件,刚才放到simpleDemo根目录的证书文件,下面的密码、别名按照build.gradle中的signingConfigs.config配置即可
在这里插入图片描述
这里有两个选项:release和debug,通常直接打正式版即可,顺便可以选择导出的目录。如若出现失败,那就是上文中提到的版本对应问题或者是没有科学上网。成功后,如果没有手动配置,默认位置:HBuilder-Integrate-AS\simpleDemo\release
在这里插入图片描述

总结

表达的可能不是很清晰,有不足之处望指正,共同交流,感谢。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值