当前位置: 首页 > news >正文

Uniapp 使用Android studio进行离线打包

一.需求

  • 开发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的文件夹
      在这里插入图片描述
  • 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的值
      在这里插入图片描述
  • 5.修改app文件夹下的build.gradle中的配置
    在这里插入图片描述

  • 6.使用BuilderX进行本地打包
    在这里插入图片描述

    • 将生成的本地资源放入文件夹中(UniPlugin-Hello-AS\app\src\main\assets\apps)
  • 7.更改\UniPlugin-Hello-AS\app\src\main\AndroidManifest.xml中的内容

将<meta-dataandroid:name="dcloud_appkey"android:value="开发者需登录https://dev.dcloud.net.cn/申请签名" />
更改成        
<meta-dataandroid: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来上架,还得要把图标以及应用名称等进行设置才行(这块不做记录,自行查询即可)。

相关文章:

  • 小白工具视频转 3GP,多格式转换与数据安全的完美结合,在线使用
  • 责任链模式(Chain of Responsibility Pattern)
  • python-将文本生成音频
  • React 入门教程:构建第一个 React 应用
  • 嵌入式C语言进阶(二+)内存管理补充版
  • nvm切换node版本后,解决npm找不到的问题
  • Web前端 (CSS篇)
  • MyBatis:SpringBoot结合MyBatis、MyBatis插件机制的原理分析与实战
  • Shell编程之正则表达式与文本
  • Tomcat大版本升级教程
  • B端可视化方案,如何助力企业精准决策,抢占市场先机
  • MyBatis与MyBatis-Plus:字段自动填充的两种实现方式
  • 【Netty篇】Future Promise 详解
  • 【物联网】基于LORA组网的远程环境监测系统设计
  • 医疗大模型落地方案:技术选型、部署策略与调优
  • 与/或形演绎推理——基于王永庆著《人工智能原理与方法》的深度解析
  • GitHub 趋势日报 (2025年04月15日)
  • OpenCV操作函数
  • kafka服务端和springboot中使用
  • Excel数据自动填充到Word自定义表格
  • 重庆网站建设的培训机构/自己怎么优化我网站关键词
  • 网站管理机制建设情况/网站关键字优化技巧
  • 杭州网站建设公司/洛阳网站seo
  • 网站所有人查询/百度竞价排名技巧
  • 建设网站的风险6/抖音seo排名
  • 瑶海区网站建设/被忽悠去做网销了