uniapp开发打包多端应用完整方法指南


Posted in Javascript onDecember 24, 2022

一、uni-app项目介绍

用uni-app开发多端项目,一套代码可同时打包出各端小程序、h5和app,uni-app支持通过 HBuilderX可视化界面 和 vue-cli命令行 两种方式创建项目,下面示例项目采用 HBuilderX可视化界面 的方式创建,cli项目可参考uni文档,大部分流程都是通用的。

项目结构:

  • ├── components 公用组件 

  • ├── libs 公共方法 

  • ├── pages 页面 

  • ├── static 本地静态资源,注意:静态资源只能存放于此 

  • ├── store 状态管理 

  • ├── styles 公共样式 

  • ├── config.js 配置文件 

  • ├── manifest.json 配置应用名称、appid、logo、版本等打包信息,详见 

  • ├── pages.json 配置页面路由、导航条、选项卡等页面类信息 

  • └── unpackage 

  • ├── res 图标、启动页 

  • ├── cert APP证书文件 

  • └── dist 打包的文件 

拿到源码先修改 config.js 里的 api 请求接口地址,改成你自己的请求域名,然后 manifest.json 里各平台的 appid 改成你自己小程序的 appid:

uniapp开发打包多端应用完整方法指南

相关开发文档:

uniapp开发打包多端应用完整方法指南

二、注册开发者账号和创建应用

开始开发前需要先去uni的开发者后台注册一个账号,登录注册地址:https://dev.dcloud.net.cn/,然后在里面创建一个你自己的应用:

uniapp开发打包多端应用完整方法指南

三、安装开发工具HBuilderX

HBuilderX,简称HX,是轻如编辑器,强如IDE的合体版本,有点像vscode和小程序开发工具的结合体,顶部菜单栏有一个“运行”和“发行”的菜单,直接点击:运行 —— 运行到内置浏览器,可以直接像在浏览器里一样调试。

发布App时,需要使用HBuilderX,其他开发工具无法发布App,但可以发布H5、各种小程序。如需开发App,可以先在HBuilderX里运行起来,然后在其他编辑器里修改保存代码,代码修改后会自动同步到手机基座。HBuilderX下载地址:https://www.dcloud.io/hbuilderx.html。

四、新建和运行项目

先安装一些常用的插件:

  • 内置浏览器
  • uni-app(Vue2)编译
  • uni-app(Vue3)编译
  • App真机运行
  • App云打包
  • scss/sass编译
  • stylus编译

uniapp开发打包多端应用完整方法指南

创建项目创建新项目可以通过HBuilderX顶部菜单:文件 - 新建 - 项目,导入已有项目:文件 - 导入 - 从...

运行项目运行项目通过HBuilderX顶部菜单:运行 - 运行到...,开发阶段可先选择:运行到内置浏览器,如果有报错缺少xx插件,直接根据提示去安装对应插件,再重新运行就可以了。

uniapp开发打包多端应用完整方法指南

五、小程序和H5打包

各平台的配置可以直接在manifest.json里配置,或者在HBuilderX开发工具里选中manifest.json文件,右侧会出现图形化界面直接选择配置

uniapp开发打包多端应用完整方法指南

先运行起来,然后点击:发行 - 小程序/网站 - 设置小程序/网站名字/appid/域名,打包成功后可以在dist - build 文件夹下找到对应平台的打包文件(dist - dev 目录下对应的是各平台运行文件)

uniapp开发打包多端应用完整方法指南

六、安卓应用打包

1、点击:发行 - 原生App-云打包

2、按照unpackage/cert目录下的README.md说明填写:Android包名、证书别名、证书私钥密码、选择证书文件(直接点浏览按钮,选到 unpackage/cert 目录,Android开发证书生成参考文末的说明)

3、点击打包按钮

uniapp开发打包多端应用完整方法指南

七、IOS应用打包

1、点击:发行 - 原生App-云打包

2、按照unpackage/cert目录下的 README.md 说明填写:Bundle ID(AppID)、证书私钥密码、证书profile文件和私钥证书(直接点浏览按钮,选到 unpackage/cert 目录)

3、点击打包按钮

uniapp开发打包多端应用完整方法指南

使用云打包点击了打包按钮后,需要等待一段时间,少则几分钟,多则大半天...最终打包成功后会在控制台打印出app安装文件的下载地址:

uniapp开发打包多端应用完整方法指南

Android:apk文件,直接点击“打开所在目录”,生成的apk文件在 unpackage/release/apk文件夹下
IOS: ipa文件,直接点击“下载地址”,远程下载到本地

打包证书相关资料:
Android平台云端打包证书使用说明
Android平台云端打包 - DCloud公用证书(DCloud老版证书)
Android平台签名证书(.keystore)生成指南
iOS证书(.p12)和描述文件(.mobileprovision)申请

八、发布上线

1、小程序直接用小程序开发者工具导入 dist - build 文件夹下对应的目录,如微信小程序:dist/build/mp-weixin

2、H5和web网站一样,将最终打包出来的H5文件部署到线上:dist/build/h5

3、Android

  • 最终生成的apk文件,可以直接用聊天工具发送到安卓手机上安装使用
  • 去注册各大安卓应用市场账号,上传到应用市场供用户下载
  • 也可以自己开发一个发布页,将安卓apk放到项目里,用户点击直接下载到手机里,如果设备是ios还可以直接判断让跳转到appstore下载地址

4、IOS① 正式版本
ios正式应用只能从app store里下载,需要先注册苹果开发者账号,填写各项应用资料,上传ipa文件审核通过后才能下载使用

uniapp开发打包多端应用完整方法指南

② 测试版本
ios-app测试时,将ipa文件上传到蒲公英上:https://www.pgyer.com/

用有授权的苹果手机扫描二维码在Safari浏览器里打开即可直接下载安装,或者直接在safari浏览器中输入“下载地址”

附:windows下生成安卓开发证书

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

可以使用JRE环境中的keytool命令生成,以下是windows平台生成证书的方法:

1、安装JRE环境可从Oracle官方下载jre安装包:https://www.oracle.com/technetwork/java/javase/downloads/index.html(记住安装的路径,后面生成证书的时候要用到)

2、打开命令行(cmd),可以先切换到要生成的目录下
我直接在D盘根目录下生成输入:

d:

3、将JRE安装路径添加到系统环境变量

我的JRE装在D盘下 "D:\Programs\jre\bin"

set PATH=%PATH%;"D:\Programs\jre\bin"

注意这里安装路径不要写错了,我这里刚开始路径里 Programs 就少了个s,后面就一直报错:keytool不是内部或外部命令,也不是可运行的程序

4、使用keytool -genkey命令生成证书

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

uniapp开发打包多端应用完整方法指南

按提示输入信息后就会在D盘根目录下生成 android.keystore 文件,这个文件就可以用来直接打包安卓app了

Javascript 相关文章推荐
用JQUERY增删元素的代码
Feb 14 Javascript
jquery操作复选框checkbox的方法汇总
Feb 05 Javascript
js实现点击链接后窗口缩小并居中的方法
Mar 02 Javascript
Javascript动画效果(4)
Oct 11 Javascript
JS冒泡事件与事件捕获实例详解
Nov 25 Javascript
javascript自执行函数
Feb 10 Javascript
解决ionic和angular上拉加载的问题
Aug 03 Javascript
vue编译打包本地查看index文件的方法
Feb 23 Javascript
jQuery实现模糊查询的方法分析
May 10 jQuery
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
Jul 18 Javascript
VSCode 配置uni-app的方法
Jul 11 Javascript
vue项目实现分页效果
Mar 24 Vue.js
JS前端使用Canvas快速实现手势解锁特效
Sep 23 #Javascript
插件导致ECharts被全量引入的坑示例解析
Sep 23 #Javascript
TypeScript实用技巧 Nominal Typing名义类型详解
Sep 23 #Javascript
Moment的feature导致线上bug解决分析
Sep 23 #Javascript
js 实现Material UI点击涟漪效果示例
Sep 23 #Javascript
js 实现验证码输入框示例详解
Sep 23 #Javascript
TypeScript 内置高级类型编程示例
Sep 23 #Javascript
You might like
PHP系统流量分析的程序
2006/10/09 PHP
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
php两种无限分类方法实例
2015/04/21 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
JS操作Cookies的小例子
2013/10/15 Javascript
js charAt的使用示例
2014/02/18 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
15款jQuery分布引导插件分享
2015/02/04 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
vue自动化表单实例分析
2018/05/06 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
python异常和文件处理机制详解
2016/07/19 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
python线程优先级队列知识点总结
2021/02/28 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
培训专员岗位职责
2014/02/26 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
国窖1573广告词
2014/03/21 职场文书
销售2014年度工作总结
2014/12/08 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
Golang: 内建容器的用法
2021/05/05 Golang