侧边栏壁纸
博主头像
慢行的骑兵博主等级

贪多嚼不烂,欲速则不达

  • 累计撰写 35 篇文章
  • 累计创建 27 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Uniapp 使用Android studio进行离线打包

慢行的骑兵
2025-04-16 / 0 评论 / 0 点赞 / 69 阅读 / 779 字

一.需求

  • 开发Uniapp项目时,使用HBuilderX进行云打包,会经常遇到两个方面的问题,当天的打包的次数受到了限制和打包的时间会比较长,因此,对于离线打包其需求还是比较常见的,这篇文章记录一下对Uniapp的项目使用Android Studio来打包Android端的apk。
  • 当然,离线打包也有一定的不足,比如:有的插件不支持离线打包的方式,至于还有其它方面的不足大家可以自行查询一下;

二.参考资料与环境准备

三.离线打包流程

  • 1.导入下载的UniPlugin-Hello-AS工程(下载地址见参考资料)
    03.uniapp插件生成流程

  • 2.移除并删除导入的项目中的各个module文件

    • 快捷键:ctrl + alt + shift + s,按照下图进行选择,选中要删除的module,然后点击箭头指向的地方,最后需要手动删除目标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管理”,按照下图方式进行配置
      05.uniapp插件生成流程
    • 保存之后选择“创建离线key”,记录生成的key为Android对应的value的值
      06.uniapp插件生成流程
  • 5.修改app文件夹下的build.gradle中的配置
    修改build.gralde

  • 6.使用BuilderX进行本地打包

    • 07.uniapp插件生成流程
    • 将生成的本地资源放入文件夹中(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来上架,还得要把图标以及应用名称等进行设置才行(这块不做记录,自行查询即可)。
0

评论区