uni-app项目打包步骤和踩过的坑(一)

news2024/12/23 1:53:34

        最近接了一个前同事留下的uni-app的项目,之前没有接触过,好在以前的工作中用到过vue做过前台开发,虽然时间不长,但是有些方面还是可以借鉴的。经过前几篇文章的介绍,我已经补完了后台服务代码,打算发布到设备上试试。

        下面的步骤,不要跳步,一步步看,肯定是可以成功的。   

1. 本次用到的工具:
        1. 代码开发工具:HBuilder X

        2. apk打包工具:Android Studio

        3. apk打包SDK:Android离线SDK  (下载地址:Android离线SDK)

        3. 生成签名证书的工具:jdk1.8(网上说只要装jre就行,但jdk里包含jre,所以直接装jdk吧,jdk装完要配置环境变量,jdk环境变量的配置可以看这个:jdk环境变量配置)

        4. 生成appkey的网站:DCLOUD的开发者中心(网址:开发者中心) 

2. 导出前的配置
        在 HBuilder X 中打开uni-app项目中的 mainifest.json 文件,会弹出来一些可配置的内容,这次我们简单一点,只配置基础配置。其中 uni-app应用标识(AppID) 如果默认没有的话,点后面的 重新获取 即可,它会警告你,不过点了没事,且会为你生成一个AppID。然后就是选择开发使用的vue版本,按实际选择即可,其它的貌似可以随便填(如果只是做打包测试的话)。

 在生成本地打包过程中由于没有相应的账号需要先注册账户号,有账号的可以忽略本部分内容:

 点击上面链接,进入账号注册页面,

注册完账号需要安装APP打包云,出现下面的弹窗即表示插件安装成功:

由于是新账号需要在云上创建一个应用,将原有应用ID更新为新创将的应用ID:

3. 导出uni-app项目供打包使用
        项目代码在自己手机上测试运行成功后,我们需要把uni-app的项目导出。点击 HBuilder X上方的 发行-->原生App-本地打包-->生成本地打包App资源 即可。如果是第一次点击,可能会提示你装什么东西,按提示的来,同意安装就可以了

导出成功后,HBuilder X 下方的控制台会告诉你导出路径。至此,HBuilder X 的任务完成。

 4. 下载Android离线SDK

          下载地址:Android离线SDK 

         这个sdk可能有其他功能,目前只知道可以打包。

 5. 将HBuilder X导出的文件夹移动到离线SDK中
        将刚才 HBuilder X 导出的以AppID命名的文件夹(www文件夹的上一级)整个移动到离线SDK的 HBuilder-Integrate-AS\simpleDemo\src\main\assets\apps 路径下,该路径下默认会有一个叫 __UNI__A 的文件夹,这个直接删除,我们用不到

说明:我的生成路径下有两个APPID命名的文件夹是因为原有项目不是我自己创建的,在自己创建DCLOUDE 账号后,我更改了APPID 

 6. Android Studio 导入SDK中的示例项目

        如果第一次安装 Android Studio,安装过程中会提示你缺啥好像,记不太清了,直接cancel那个提示,然后跟着引导一步步安装就行了,安装结束后,好像也没什么问题。

下载路径:Download Android Studio & App Tools - Android Developers (google.cn)

安装过程截图: 

 

接着导入离线SDK中的 HBuilder-Integrate-AS 文件夹到 Android Studio 

a.选第一个时出现错误

在我导入的时候出现了这个错误:

 b.更换选择第二个选项出现下面弹窗时提示提高服务,需要发送信息;一般都不发送

点击next,出现下面窗体

 好像时提示代理的窗体,我直接关闭了,出现下面窗体,选择custom

点击next 

 点击next,下面是设置相关的,一般不改

 点击next

点击next

 点击next出现协议条款,只能同意

 

 

 导入HBuilder-Integrate-AS到

 提示有个问题,暂时忽略试试

7. 修改dcloud_control.xml 中的 appid

       找到 assets/data 下的 dcloud_control.xml 文件,点开它,将文件中appid的值,改成 HBuilder X 中生成的appid。appid记不住没关系,还记得第5步中让你移动的那个文件夹吗,它的文件名就是appid

 

8. 生成Android证书签名
        这一步我参考了别人的文章,所以不多讲了,按他的步骤做(jdk环境变量的配置虽然他文章里写了,小白最好还是看这个:jdk环境变量配置),

下载JAVA jdk链接:Java Downloads | Oracle

 

 

记下生成证书的文件路径、证书的SHA1安全码、证书的alias(别名)以及设置的两个密码(怕忘记,两个密码设一样的),后续步骤会用得到。参考网址(生成Android证书签名)。

9. 生成appkey

        前往 DCLOUD 的开发者中心(网址:开发者中心),如果按照我的步骤做,那在第2步 HBuilder X 中生成appid后,就能在开发者中心我的应用中看到这条应用,点击应用名称会跳转到该条应用的管理页面。

在安卓云中没有证书,可以点击创建证书。记录证书密码

       点击上方的 离线打包Key管理 按钮,进入生成appkey的菜单。我的这个菜单是已经生成appkey的,所以会和你第一次点进来有所不同,不用担心。

     选择平台:我们选择Android,因为我们这次是打包apk。

        Android包名:包名不能随便写,否则安装apk打开后会报错!它的值在离线SDK的 \HBuilder-Integrate-AS\simpleDemo\src\main\AndroidManifest.xml 中,没改过的话应该跟我一样,是 com.android.simple

 目前我是执行到这一步了,不知道问题出在哪里?我先把网上成功的案例步骤贴到后面;以供大家参考:后续找到问题在更新。不知道步骤10中应填写什么???????????????????????????????????????????????????????????????????????

10. 在 AndroidManifest.xml 中配置appKey

        回到 Android Studio ,在 AndroidManifest.xml 中配置appKey,下图是我自己写的不知道对不对,暂且先记下。后续在进行更新...

 

 11. 打包apk

现在万事俱备,只剩打包了,点击 Android Studio 上方的 Build-->Generate Signed Bundle / APK...

         弹出打包窗口,选择 APK,然后点击 Next

        点击 Choose existing...,选择第8步让你记下的证书存放路径,Key store path 就会自动填充,Key store password、Key alias、key password,这三项也在第8步中设置。如果两个password记不住了,那就按第8步的教程重新生成一个证书吧。Remember passwords 根据自己需要吧(小白还是勾吧,记住密码)。全部填完后点击下方 Next 

         最后就是选择导出路径,然后选择 release,然后点击下方 Finish。

         导出成功后,Android Studio 下方的 Build 控制台会提示 BUILD SUCCESSFUL 。

        然后就可以在导出路劲的release文件夹里找到打包好的apk文件了,截图里的是默认导出路径,你可以在release的时候选择你的导出路径。

         然后在手机上安装刚才的apk并打开,如果正常打开,那基本就成功了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1553699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT布局管理和空间提升为和空间间隔

QHBoxLayout:按照水平方向从左到右布局; QVBoxLayout:按照竖直方向从上到下布局; QGridLayout:在一个网格中进行布局,类似于HTML的table; 基本布局管理类包括:QBoxLayout、QGridL…

AI人像写真解决方案,满足企业多样化视觉需求

美摄科技,作为一家专注于人工智能技术研发与应用的高新企业,深知企业对于高质量、高效率视觉内容的需求,特推出AI人像写真解决方案,为企业打开全新的视觉营销通道。 我们的AI人像写真解决方案,基于深度学习和计算机视…

3D分割项目 | 基于Pytorch+3DUnet实现的3D体积语义分割算法

项目应用场景 用于 3D 体积语义分割场景,适用于各种物体的 3D 语义分割,比如大米、大豆的体积分割等 项目效果: 项目流程 > 具体参见项目内README.md (1) 安装 conda install -c conda-forge mamba mamba create -n pytorch-3dunet -c p…

第十四届蓝桥杯JavaA组省赛真题 - 互质数的个数

解题思路: 快速幂 欧拉函数 快速幂比较常见于数据较大的取模场景,欧拉函数感觉还是有点抽象 注意: 取模的时候就不要简写了,例如:res res * a % mod;不要写成res * a % mod; import java.util.Scanner;public c…

cesium vue 绘制标记实体(撒点),监听鼠标左击事件

添加实体 const viewer new Cesium.Viewer(cesiumContainer, {})viewer.entities.add()查看实体 const viewer new Cesium.Viewer(cesiumContainer, {}) const billboard viewer.entities.add({...})viewer.zoomTo(billboard)删除实体 根据实体删除 if (billboard.value…

ElementUI 周组件展示成月的第几周

ElementUI 周组件展示成月的第几周 组件展示 <el-date-picker unlink-panels :clearable"false" change"weekChange":editable"false" :type"dateType":value-format"valueFormat" :format"format"v-if&qu…

怎样一次性给多篇word文档标注拼音?一键批量注音

随着办公自动化的普及&#xff0c;我们经常会遇到需要处理大量Word文档的情况。在这些文档中&#xff0c;有时需要将文字标注上拼音&#xff0c;特别是在处理一些包含生僻字或需要拼音辅助阅读的文档时。然而&#xff0c;手动一篇篇地给Word文档标注拼音不仅效率低下&#xff0…

深度剖析MySQL锁:解开数据库并发控制的神秘面纱

MySQL 锁是 MySQL 数据库管理系统中为了实现并发控制和数据一致性的机制。在多用户并发访问数据库时&#xff0c;锁可以确保多个事务在对同一数据进行操作时不会相互干扰&#xff0c;以防止数据不一致的现象发生。 一、锁分类 MySQL支持多种类型的锁&#xff0c;主要包括…

DataX-Oracle新增writeMode支持update

目录 前言 第一步下载源码 第二步修改源码 1、Oraclewriter 2、WriterUtil 2.1、修改getWriteTemplate方法 2.2、新增onMergeIntoDoString与getStrings方法 3、CommonRdbmsWriter 3.1、修改startWriteWithConnection 3.2、修改doBatchInsert 3.3、修改fillPreparedStatem…

苹果应用商店上架利器:推荐几款常用的应用发布工具

摘要 移动应用app上架是开发者关注的重要环节&#xff0c;但常常会面临审核不通过等问题。为帮助开发者顺利完成上架工作&#xff0c;各种辅助工具应运而生。本文探讨移动应用app上架原理、常见辅助工具功能及其作用&#xff0c;最终指出合理使用工具的重要性。 引言 移动应…

洛谷_P1803 凌乱的yyy / 线段覆盖_python写法

P1803 凌乱的yyy / 线段覆盖 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题是不是用python做只能做到70分啊&#xff1f;&#xff1f; n int(input()) data [] for i in range(n):data.append(list(map(int,input().split())))data.sort(keylambda x:x[1])ans 1 mi…

Solidity Uniswap V2 Router swapTokensForExactTokens

最初的router合约实现了许多不同的交换方式。我们不会实现所有的方式&#xff0c;但我想向大家展示如何实现倒置交换&#xff1a;用未知量的输入Token交换精确量的输出代币。这是一个有趣的用例&#xff0c;可能并不常用&#xff0c;但仍有可能实现。 GitHub - XuHugo/solidit…

景联文科技高质量大模型训练数据汇总!

3月25日&#xff0c;2024年中国发展高层论坛年会上&#xff0c;国家数据局局长刘烈宏在“释放数据要素价值&#xff0c;助力可持续发展”的演讲中表示&#xff0c;中国10亿参数规模以上的大模型数量已超100个。 当前&#xff0c;国内AI大模型发展仍面临诸多困境。其中&#xff…

批量剪辑视频,批量调整片头片尾时长,批量剪辑更高效!

在视频剪辑的世界里&#xff0c;有时候我们需要对视频的片头片尾进行精细调整&#xff0c;以适应不同的需求和创意。然而&#xff0c;传统的视频剪辑软件往往操作繁琐&#xff0c;效率低下&#xff0c;让人望而却步。今天&#xff0c;我要为您介绍一种全新的批量剪辑方式&#…

一个传入省市区ID的级联框

省市区ID 功能edit页面(主要)script逻辑如何拿到当前级联下所有ID数组长ID数组是如何回显的 (1)长ID数组是如何回显的 (2) 功能 选择第一层传第一层下的所有 id 数组&#xff0c;选择第二层传递第二层以及第二层下的所有 id 数组 edit页面(主要) 编辑页的一个 Table&#xff0c…

Dynamo设置按链接视图显示

Hello大家好&#xff01;我是九哥~ 先来看一段视频&#xff1a; Dynamo设置链接视图 相信用Revit的小伙伴都用到过这个功能&#xff0c;就是在链接Revit模型时&#xff0c;为了便于出图&#xff0c;我们经常需要将链接模型从“按主体视图”改为“按链接视图”&#xff0c;这样能…

buy me a btc 使用数字货币进行打赏赞助

最近在调研使用加密货币打赏的平台&#xff0c;发现idatariver平台 https://idatariver.com 推出的buymeabtc功能刚好符合使用场景&#xff0c;下图为平台的演示项目, 演示项目入口 https://buymeabtc.com/idatariver 特点 不少人都听说过buymeacoffee&#xff0c;可以在上面发…

BabySQL【2019极客大挑战】

知识点&#xff1a; 功能分析 登录界面一般是 where username and password 可以从username出手&#xff0c;注释掉and语句单引号闭合绕过 通过测试和报错信息发现是一个单引号读取输入可以单引号闭合绕过关键字过滤 or and 过滤 || &&替换双写绕过select from wher…

【学习笔记】java项目—苍穹外卖day01

文章目录 苍穹外卖-day01课程内容1. 软件开发整体介绍1.1 软件开发流程1.2 角色分工1.3 软件环境 2. 苍穹外卖项目介绍2.1 项目介绍2.2 产品原型2.3 技术选型 3. 开发环境搭建3.1 前端环境搭建3.2 后端环境搭建3.2.1 熟悉项目结构3.2.2 Git版本控制3.2.3 数据库环境搭建3.2.4 前…

基于单片机环境监测温湿度PM2.5系统设计

**单片机设计介绍&#xff0c;基于单片机环境监测温湿度PM2.5系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机环境监测温湿度PM2.5系统是一个集成了传感器技术、单片机控制以及数据处理与显示功能的综合性系统…