❤ Uniapp使用三( 打包和发布上线)
一、介绍
什么是 uniapp?
uniapp 是一种基于 Vue.js 的多平台开发框架,它可以同时用于开发安卓、iOS、H5 等多个平台。因此,只需要写一次代码就可以在多个平台上运行,提高了开发效率。
打包工具 : HBuilder X
配置应用信息
打开项目根目录下的 manifest.json 文件,该文件包含了应用程序的各种配置信息,如应用名称、版本号、应用图标等。根据需求来修改相关配置信息,最后保存修改。
二、Uniapp打包运行安卓和IOS端(2种)
目前有两种,云打包和本地打包
开始使用打包之前,HbuildX【 发行 】的工具栏,看一下云打包与本地打包的区别:
原生APP-云打包
云打包
① 通过官方在【云服务器】已经提供好的打包环境进行打包,简单方便快捷,适合新手入门;
② 打包次数限制,1天只能打包【5次】,第六次需要收费(大概2¥一次)
③ 打包时间长度不受控,高峰期排队时长可能需要 【几个小时】以上
原生APP-本地打包
本地打包
① 需要下载 Android Studio(Android 集成开发工具)配置环境,需要熟悉原生Android 开发,操作难度大,灵活性高;
② 本地离线打包,不限制打包次数,完全免费;
③ 打包时间受控,下载好离线SDK,配置好资源环境,无需排队;
三、原生app云打包
云打包
用HBuilderX打开要打包的项目
选中项目列表中的项目右击选择发行=>原生App-云打包,弹出打包页面
到开发者中心生成证书
证书生成后下载下来,存到指定目录,然后在开发者中心选择需要打包项目=>我的应用=>证书管理=>证书详情中可查看别名密码
打包页面输入别名密码,选择下载好的证书,可以选择不要开屏广告,然后选择打包
最后会生成apk包,下载安装即可使用
四、本地打包
(1)安装下载
下载HBuilderX
下载地址
https://www.dcloud.io/hbuilderx.html
下载AndroidStudio
-下载地址
https://developer.android.google.cn/studio?hl=zh-cn
SDK下载地址
App离线打包SDK 下载
https://nativesupport.dcloud.net.cn/AppDocs/download/android.html#
离线打包
安心打包
一键打包即可
插件安装完成后需重新点击“打包”按钮提交打包
打包完成后自动保存到项目的**“unpackage/release/apk/”**目录
如果清空了这个目录,那么下次打包将执行首次打包逻辑。
安装IOS模拟器
对Mac版本要求:
MacOSX,安装ios模拟器,需要先安装xcode;或在App store中搜索xcode完成安装。
xcode安装打开,按下快捷键command+,,打开Preferences窗口,如下图:
Android模拟器
android studio模拟器(大小1个G左右)
(2)打包
-
生成本地打包资源
-
下载Android Studio和App离线SDK
下载路径:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android -
解压得到的目录如下
-
使用Android Studio打开Android 离线SDK解压目录里面这个文件夹,这个是示例项目,我们只需要更改这个项目的一些配置,其他配置HBuilderX已经配置好了
-
切换到Project
-
打开apps目录,把目录下的文件夹删除,我的是__UNI__B,然后打开HBuilderX本地打包的资源目录,最后拷贝到示例项目的apps目录下,也就是刚刚__UNI__B的位置
把dcloud_control.xml文件里面的id属性值__UNI__B改成manifest.json里面的id值相同
.... 进行不下去了 ,太麻烦了,建议直接app云打包吧 ...
五、常见问题
提示:打包时未添加maps模块
在app设置里添加对应的高德地图模块,去iclound 里面添加地图参数
uniapp打包app扫码提示未获取相机权限
解决此问题的方法是在HBuilder|HBuiulderX中添加缺失的模块,保存后提交App云端打包。
打开应用的manifest.json文件,切换到“模块权限配置”项(uni-app应用为“App模块权限配置”项),在右侧的“打包模块配置”中x勾选缺失的模块:
uniapp 打包之后 uni.makePhoneCall 点击无效果
在 manifest.json 文件中 添加如下权限
<uses-permission android:name=\"android.permission.CALL_PHONE\"/>
项目提示打包时未添加videoplayer模块
云打包只需在manifest.json,模块权限配置中勾选即可