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 相关文章推荐
浅析用prototype定义自己的方法
Nov 14 Javascript
jquery获取css中的选择器(实例讲解)
Dec 02 Javascript
JavaScript中textRange对象使用方法小结
Mar 24 Javascript
利用BootStrap弹出二级对话框的简单实现方法
Sep 21 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
Jan 19 Javascript
基于jQuery实现弹幕APP
Feb 10 Javascript
JavaScript编写棋盘覆盖代码详解
Aug 28 Javascript
解决iview多表头动态更改列元素发生的错误的方法
Nov 02 Javascript
详解vue中多个有顺序要求的异步操作处理
Oct 29 Javascript
详解node.js 事件循环
Jul 22 Javascript
vue.js click点击事件获取当前元素对象的操作
Aug 07 Javascript
vue使用require.context实现动态注册路由
Dec 25 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中文分词 自动获取关键词介绍
2012/11/13 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
2019/09/26 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
Python反射和内置方法重写操作详解
2018/08/27 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
Django发送邮件和itsdangerous模块的配合使用解析
2019/08/10 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
python小白切忌乱用表达式
2020/05/29 Python
STP的判定过程
2012/10/01 面试题
素质拓展感言
2014/01/29 职场文书
党组织公开承诺书
2014/03/29 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
通知的格式范文
2015/04/27 职场文书
2016年圣诞节寄语(一句话)
2015/12/07 职场文书
《海上日出》教学反思
2016/02/23 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书