uni-app在Windows环境下(云端)打包成安卓安装包

8116次阅读 629人点赞 作者: WuBin 发布时间: 2022-05-26 16:43:47
扫码到手机查看

准备工作

IDE下载安装和帐号注册

HBuilderX开发工具下载:https://www.dcloud.io/hbuilderx.html

前往https://ask.dcloud.net.cn/account/setting/profile/注册帐号,必须要绑定手机。

或者使用公用测试证书:https://ask.dcloud.net.cn/article/36522

安装java-se环境

下载安装:https://www.oracle.com/technetwork/java/javase/downloads/index.html

生成证书

Android平台签名证书(.keystore)生成

Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。Android证书的生成是自助和免费的,不需要审批或付费。

安装好1.2中的java环境后,比如我的是装在D:\software\javase\bin

建议将JRE安装路径添加到系统环境变量,已配置可跳过此章节打开命令行(cmd),输入以下命令:

d:setPATH=%PATH%;"D:\software\javase\bin"
  • 第一行:切换工作目录到D:路径
  • 第二行:将jre命令添加到临时环境变量中

生成签名证书(官方,有bug,请参考2.3)

使用keytool -genkey命令生成证书:

keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
  • testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字(记住这个名字,打包时候要用到)
  • test.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
  • 36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期

回车后会提示:

Enter keystore password:  //输入证书文件密码,输入完成回车  
Re-enter new password:   //再次输入证书文件密码,输入完成回车  
What is your first and last name?  
  [Unknown]:  //输入名字和姓氏,输入完成回车  
What is the name of your organizational unit?  
  [Unknown]:  //输入组织单位名称,输入完成回车  
What is the name of your organization?  
  [Unknown]:  //输入组织名称,输入完成回车  
What is the name of your City or Locality?  
  [Unknown]:  //输入城市或区域名称,输入完成回车  
What is the name of your State or Province?  
  [Unknown]:  //输入省/市/自治区名称,输入完成回车  
What is the two-letter country code for this unit?  
  [Unknown]:  //输入国家/地区代号(两个字母),中国为CN,输入完成回车  
Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?  
  [no]:  //确认上面输入的内容是否正确,输入y,回车  

Enter key password for <testalias>  
(RETURN if same as keystore password):  
//确认证书密码与证书文件密码一样(HBuilder|HBuilderX要求这两个密码一致),直接回车就可以

证书文件密码要牢记,打包的时候需要填写。

以上命令运行完成后就会生成证书,路径为“D:\test.keystore”。当然这是默认路径的。

可行的生成证书方法

如果按照1.4中的步骤,生成的证书在加载时,会提示:证书文件不是有效地keystore文件,经过查询,可以使用如下方式解决:

https://zhuanlan.zhihu.com/p/499813377(原文)

这里,我要将证书生成到E:\code\uni-app-test目录下:

在云打包时提示证书文件不是有效地keystore文件,解决方法:

第一步:生成正常证书

keytool -genkey -alias unilearns -keyalg RSA -sigalg SHA1WithRSA -validity 36500 -keysize 1024 -keystore E:\code\uni-app-test\unilearns.keystore -v

第二步:更改秘钥库类型

keytool -importkeystore -srckeystore E:\code\uni-app-test\unilearns.keystore -destkeystore E:\code\uni-app-test\unilearns.keystore -deststoretype JKS

到这里,就可以使用新生成的证书进行云打包了。

查看证书信息

可以使用以下命令查看:

keytool -list -v -keystore test.keystore  
Enter keystore password://输入密码,回车

如果提示“keytool' 不是内部或外部命令,也不是可运行的程序”那么就应该进入你的java-se安装目录-bin目录下,比如我java-se安装在software下,那么,应该执行(切记-list -v之间有空格!):

keytool -list -v -keystore E:\code\uni-app-test\unilearns.keystore
不要进入到keystore目录下执行查看!

解决方式参考:https://blog.csdn.net/lplj717/article/details/119241631

云端打包

更换app图标

APP图标等,在HB中的manifest.json中进行替换。推荐做一个1024x1024尺寸的图标,然后使用其可视化的界面,一键生成所有图标即可。或者使用图标工厂生成:

https://icon.wuruihong.com/

打包

在编辑好文档后,在“发行”-“原生APP-云打包”

使用自有证书进行云端打包选择配置项如下:

  • App包名:Android应用包名,推荐使用反向域名风格的字符串,如“com.domainname.appname”;
  • 证书别名:生成证书时使用-alias参数设置的证书别名(2.2中的testalias,-alias后面的名称!)
  • 证书私钥密码:生成证书时使用的keystore密码(2.2中生成证书时,提示要输入的密码,填写在此处。【Enter keystore password://输入证书文件密码,输入完成回车:这个步骤输入的密码!】)
  • 证书文件:生成证书时使用-keystore参数设置的证书保存路径。

备注:已经打好的安装包,允许开发者在指定天内下载指定次数,超时或超次后服务器端会清除文件。

打包失败,常见原因

  • 如果使用自用证书,很可能是证书配置错误。
  • 如果使用DCloud证书仍然出错,很可能是图片错误。所有图片格式必须是标准png,且严格符合分辨率要求。使用其他图片格式重命名为png会导致打包失败!

相关资料

点赞 支持一下 觉得不错?客官您就稍微鼓励一下吧!
关键词:uni-app,云端打包
推荐阅读
  • uniapp实现被浏览器唤起的功能

    当用户打开h5链接时候,点击打开app若用户在已经安装过app的情况下直接打开app,若未安装过跳到应用市场下载安装这个功能在实现上主要分为两种场景,从普通浏览器唤醒以及从微信唤醒。

    8186次阅读 521人点赞 发布时间: 2022-12-14 16:34:53 立即查看
  • Vue

    盘点Vue2和Vue3的10种组件通信方式

    Vue中组件通信方式有很多,其中Vue2和Vue3实现起来也会有很多差异;本文将通过选项式API组合式API以及setup三种不同实现方式全面介绍Vue2和Vue3的组件通信方式。

    3282次阅读 241人点赞 发布时间: 2022-08-19 09:40:16 立即查看
  • JS

    几个高级前端常用的API

    推荐4个前端开发中常用的高端API,分别是MutationObserver、IntersectionObserver、getComputedstyle、getBoundingClientRect、requ...

    13228次阅读 854人点赞 发布时间: 2021-11-11 09:39:54 立即查看
  • PHP

    【正则】一些常用的正则表达式总结

    在日常开发中,正则表达式是非常有用的,正则表达式在每个语言中都是可以使用的,他就跟JSON一样,是通用的。了解一些常用的正则表达式,能大大提高你的工作效率。

    12104次阅读 385人点赞 发布时间: 2021-10-09 15:58:58 立即查看
  • 【中文】免费可商用字体下载与考证

    65款免费、可商用、无任何限制中文字体打包下载,这些字体都是经过长期验证,经得住市场考验的,让您规避被无良厂商起诉的风险。

    10347次阅读 829人点赞 发布时间: 2021-07-05 15:28:45 立即查看
  • Vue

    Vue3开发一个v-loading的自定义指令

    在vue3中实现一个自定义的指令,有助于我们简化开发,简化复用,通过一个指令的调用即可实现一些可高度复用的交互。

    14248次阅读 1132人点赞 发布时间: 2021-07-02 15:58:35 立即查看
  • JS

    关于手机上滚动穿透问题的解决

    当页面出现浮层的时候,滑动浮层的内容,正常情况下预期应该是浮层下边的内容不会滚动;然而事实并非如此。在PC上使用css即可解决,但是在手机端,情况就变的比较复杂,就需要禁止触摸事件才可以。

    14180次阅读 1156人点赞 发布时间: 2021-05-31 09:25:50 立即查看
  • Vue

    Vue+html2canvas截图空白的问题

    在使用vue做信网单页专题时,有海报生成的功能,这里推荐2个插件:一个是html2canvas,构造好DOM然后转canvas进行截图;另外使用vue-canvas-poster(这个截止到2021年3月...

    27073次阅读 2131人点赞 发布时间: 2021-03-02 09:04:51 立即查看
  • Vue

    vue-router4过度动画无效解决方案

    在初次使用vue3+vue-router4时候,先后遇到了过度动画transition进入和退出分别无效的情况,搜遍百度没没找到合适解决方法,包括vue-route4有一些API都进行了变化,以前的一些操...

    23237次阅读 1791人点赞 发布时间: 2021-02-23 13:37:20 立即查看
交流 收藏 目录