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 09 Javascript
小议Javascript中的this指针
Mar 18 Javascript
Js切换功能的简单方法
Nov 23 Javascript
基于js与flash实现的网站flv视频播放插件代码
Oct 14 Javascript
js实现图片放大和拖拽特效代码分享
Sep 05 Javascript
Jquery Mobile 自定义按钮图标
Nov 18 Javascript
Bootstrap下拉菜单效果实例代码分享
Jun 30 Javascript
jQuery Ajax File Upload实例源码
Dec 12 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
Jul 13 Javascript
vue中v-text / v-html使用实例代码详解
Apr 02 Javascript
JS实现拼图游戏
Jan 29 Javascript
vue项目中播放rtmp视频文件流的方法
Sep 17 Javascript
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数字和字符串ID互转函数(类似优酷ID)
2014/06/30 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
javascript动态加载三
2012/08/22 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
javascript常用对话框小集
2013/09/13 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
解决Vue @submit 提交后不刷新页面问题
2020/07/18 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
python实现合并两个数组的方法
2015/05/16 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
2020/12/17 Python
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
实习老师个人总结的自我评价
2013/09/28 职场文书
创业计划书中包含的9个方面
2013/12/26 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
Python入门学习之类的相关知识总结
2021/05/25 Python