Uniapp Android 本地离线打包(详细流程)

一、简介

  • App 离线 SDK 暂时不支持 Kotlin,未来不清楚。

  • uniapp 提供了 云打包本地打包 两种方案,云打包 需要排队且还有次数限制,本地打包 则就没有这些限制,而且会 本地打包 对开发 原生插件 有很大的帮助。

    image.png

  • 细节:需要 Android Studio 打包的时候,记得先通过工具栏的 Build -> 先 Clean Project -> 再 Rebuild Project -> 最后在打包或运行,生成基座或者测试离线包都适用这套流程。

二、准备工作

  • 按照官方文档中的 开发环境 下载好开发工具与 SDK 工程即可:Android 离线打包选了方式二:导入工程 方式,官方文档地址。

    注意:HBuilder X 3.5.0 及以上版本新增库 breakpad-build-release.aar

    注意:HBuilder X 3.8.7 及以上版本新增库 install-apk-release.aar,上架谷歌应用市场不能包含此库,更多参考文档

    我下载这个版本包好像没有 install-apk-release.aar,那就不用管,大多数的配置官方提供的工程中就已经配置好了,这边只把需要修改的罗列一下,当然最好通过本文结合官方文档来对照走步骤更好。

    在这里插入图片描述

    在这里插入图片描述

  • 下载的 Android 工程目录结构介绍,找到 HBuilder-Integrate-AS 离线打包工程,可以拷贝出来使用 Android Studio 打开该工程。

    image.png

    image.png

  • 打开工程后,先按 Android 老项目新人如何快速入手跑起来 这篇文章快速的配置一下基础环境。

  • 如果跑出下面这样的结果,非报错都先不要管,警告随他先。

    在这里插入图片描述

  • 如果需要重新编译项目可以在这里进行,或者使用 Build 工具栏里面刷新按钮也是一个效果。

    在这里插入图片描述

三、创建 Uniapp 测试项目

  • 使用 HBuilderXCli 创建一个测试项目 demo,然后运行到测试机或者模拟器。附:Uniapp 运行到 Android 真机或模拟器。

    1、确认当前模拟器或者真机支持的 cpu 类型,然后进行勾选,这里就是配置要打包的 apk 需要支持哪些cpu 类型的手机,全要支持可以全支持。附:adb 查看安卓手机、模拟器、apk包所支持的 CPU 类型(armeabi、armeabi-v7a、arm64-v8a …)

    反正就是勾的越多,打的包越大,你可以测试时用哪个勾哪个,等发包了在根据需要支持的手机市场进行勾选。

    在这里插入图片描述

    2、测试项目正常运行后,则进行本地打包,获得编译后的源码。

    image.png

    3、看控制台,等待编译完成,去给出的目录找到编译后的源码。

    image.png

    4、替换离线打包工程中的源码

    image.png

    image.png

    5、修改 dcloud_control.xml 文件里面的 appid,其实离线资源文件夹名称就是 appid,可以核对下免得出错。

    在这里插入图片描述

    在这里插入图片描述

四、离线工程的调整

  • 代码导入后,需要进行一些离线打包工程上的细节调整。

  • 包名替换,例如 com.dzm.test

    image.png

  • [可选]compileSdkVersion 修改,compileSdkVersion 30Android 项目中的一个配置项,定义了 编译时使用的 Android API 级别(即 Android SDK 版本),表示你正在使用 API 级别 30(对应 Android 11,即 Android 11)。

    在这里插入图片描述

  • 版本号修改,跟 HBuilderX -》manifest.json 中的版本号保持一致。

    image.png

  • 签名配置,也就是证书相关信息

    1、打开 Uniapp 开发者后台,登录一下。

    image.png

    image.png

    2、点击应用名称进入,找到 Android 云端证书,创建一个,稍微等待一下,需要刷新一下网页就能看到创建好的证书信息了,然后下载证书,放到 HBuilder-Integrate-AS 离线打包工程根目录。

    image.png

    image.png

    image.png

    3、复制证书的绝对路径,并替换配置中的证书路径

    image.png

    image.png

    在这里插入图片描述

    4、配置证书别名、密码

    image.png

    在这里插入图片描述

    在这里插入图片描述

    5、配置打包的 apk 需要支持的 cpu 类型

    ndk {abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
    }
    

    在这里插入图片描述

  • 申请 Appkey,如果没有则需要申请一下,有则可以直接拷贝,需要前往 Uniapp 开发者后台:

    在这里插入图片描述

    在这里插入图片描述

    点击 新增 后,需要填的资料中 包名 按上面的一样,版本可以根据情况来,创建 正式测试 两个切换使用,Android 应用签名SHA1值Android 应用签名SHA256 值在上面的 证书详情 中有,拷贝贴过来即可。其他根据需要可填可不填。

    在这里插入图片描述

    在这里插入图片描述

    然后创建一个 AppKey 并拷贝:

    在这里插入图片描述

    在这里插入图片描述

    AppKey 配置到离线工程中:

    在这里插入图片描述

    这个文件顶部的包名也要改一下,保持同步:

    在这里插入图片描述

  • 配置图标,不同分辨率可以按官方文档上的,多建几个文件夹配置。

    在这里插入图片描述

    在这里插入图片描述

  • 配置应用名称,需要保持一致

    在这里插入图片描述

五、离线工程试跑

  • 创建好虚拟机,点击调试项目

    在这里插入图片描述

    如果报错 Execution failed for task ‘:simpleDemo:stripDebugDebugSymbols’. NDK at /Users/dengzemiao/Library/Android/sdk/ndk-bundle did not have a source.properties file 点这里。

  • 解决问题再次点击调试按钮,项目跑成功了,如果 uniapp 重复打包导入项目后,最新内容没生效,可以删掉模拟器上安装好的包,重新运行安装一下。

    在这里插入图片描述

六、离线自定义基座打包

  • Uniapp Android 离线生成自定义基座(详细流程)

  • Uniapp Android 离线生成自定义基座(官方文档)

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

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

相关文章

NeurIPS 2024 | 像素级LLM实现图像视频理解、生成、分割和编辑大统一(昆仑万维等)

Accepted by NeurIPS 2024 文章链接:https://arxiv.org/pdf/2412.19806 项目链接:https://vitron-llm.github.io/ Github链接:https://github.com/SkyworkAI/Vitron 亮点直击 首次提出了一种通用的视觉多模态大语言模型(MLLM&…

细说STM32F407单片机FSMC连接外部SRAM的方法及HAL驱动

目录 一、FSMC连接外部SRAM的原理 1、 FSMC控制区域的划分 2、SRAM芯片与MCU的连接 二、访问外部SRAM的HAL驱动程序 1、外部SRAM初始化与控制 2、外部SRAM读写函数 3、直接通过指针访问外部SRAM 4、DMA方式读写外部SRAM 本文介绍STM32F407单片机FSMC连接外部SRAM及以轮…

Gitee图形界面上传(详细步骤)

目录 1.软件安装 2.安装顺序 3.创建仓库 4.克隆远程仓库到本地电脑 提交代码的三板斧 1.软件安装 Git - Downloads (git-scm.com) Download – TortoiseGit – Windows Shell Interface to Git 2.安装顺序 1. 首先安装git-2.33.1-64-bit.exe,顺序不能搞错2. …

基于单片机洗衣机控制器的设计(论文+源码)

1需求分析 在智能洗衣机系统设计中,考虑到洗衣机在实际应用过程中,需要满足用户对于不同衣物清洁、消毒的应用要求,对设计功能进行分析,具体如下: 通过按键实现洗衣机不同工作模式的切换,包括标准模式&…

【学Rust开发CAD】2 创建第一个工作空间、项目及库

文章目录 一、 创建工作空间二、新建项目(可执行文件)三、 新建库(库文件)四、更新项目依赖五、编写代码七、总结 在 Rust 中,工作空间(workspace)允许你管理多个相关的包(crate&…

STM32的LED点亮教程:使用HAL库与Proteus仿真

学习目标:掌握使用STM32 HAL库点亮LED灯,并通过Proteus进行仿真验证! 建立HAL库标准工程 1.新建工程文件夹 新建工程文件夹建议路径尽量为中文。建立文件夹的目的为了更好分类去管理项目工程中需要的各类工程文件。 首先需要在某个位置建立工…

Unity Excel转Json编辑器工具

功能说明:根据 .xlsx 文件生成对应的 JSON 文件,并自动创建脚本 注意事项 Excel 读取依赖 本功能依赖 EPPlus 库,只能读取 .xlsx 文件。请确保将该脚本放置在 Assets 目录下的 Editor 文件夹中。同时,在 Editor 下再创建一个 Exc…

牛客网刷题 ——C语言初阶(6指针)——字符逆序

1. 题目描述:字符逆序 牛客网题目链接 将一个字符串str的内容颠倒过来,并输出。 输入描述: 输入一个字符串,可以有空格 输出描述: 输出逆序的字符串 示例1 输入 I am a student 输出 tneduts a ma I 2. 思路 首先字符串逆序,之…

【USRP】教程:在Macos M1(Apple芯片)上安装UHD驱动(最正确的安装方法)

Apple芯片 前言安装Homebrew安装uhd安装gnuradio使用b200mini安装好的路径下载固件后续启动频谱仪功能启动 gnu radio关于博主 前言 请参考本文进行安装,好多人买了Apple芯片的电脑,这种情况下,可以使用UHD吗?答案是肯定的&#…

141.《mac m系列芯片安装mongodb详细教程》

文章目录 下载从官网下载安装包 下载后双击解压出文件夹安装文件名修改为 mongodb配置data存放位置和日志log的存放位置启动方式一方式二方式二:输入mongo报错以及解决办法 本人电脑 m2 pro,属于 arm 架构 下载 官网地址: mongodb官网 怎么查看自己电脑应该下载哪个版本,输入…

Elasticsearch:基础概念

这里写目录标题 一、什么是Elasticsearch1、基础介绍2、什么是全文检索3、倒排索引4、索引(1)创建索引a 创建索引基本语法b 只定义索引名,setting、mapping取默认值c 创建一个名为student_index的索引,并设置一些自定义字段 &…

Dexcap复现代码数据预处理全流程(四)——demo_clipping_3d.py

此脚本的主要功能是可视化点云数据文件(.pcd 文件),并通过键盘交互选择演示数据的起始帧和结束帧,生成片段标记文件 (clip_marks.json) 主要流程包括: 用户指定数据目录:检查目录是否存在并处理标记文件 -…

安装Cockpit服务,使用Web页面管理你的Linux服务器

说起管理 Linux 服务器,大家首先想到的使用 SecureCRT、Xshell、MobaXterm 等工具远程到服务器,然后使用命令行管理服务器。今天给大家介绍一个好玩的工具,名字叫Cockpit, Cockpit 是一个免费开源的基于 web 的 Linux 服务器管理…

[A-25]ARMv8/v9-GIC的系统架构(中断的硬件基础)

ver0.1 前言 我们在观看很多的影视剧过程中,尤其是军旅体裁类型的布景中,经常会看见高级干部的办公桌上都会有几部电话机。这样的电话可不能小看,重要的事情尤其是突发和紧急的情况都要通过这几部电话第一时间通知给决策者。这几部电话,必须举报几个特点:及时性好、稳定…

13-线段的转折点样式

13-线段的转折点样式_哔哩哔哩_bilibili13-线段的转折点样式是一次性学会 Canvas 动画绘图(核心精讲50个案例)2023最新教程的第14集视频,该合集共计53集,视频收藏或关注UP主,及时了解更多相关视频内容。https://www.bi…

计算机网络 (28)虚拟专用网VPN

前言 虚拟专用网络(VPN)是一种在公共网络上建立私有网络连接的技术,它允许远程用户通过加密通道访问内部网络资源,实现远程办公和安全通信。 一、基本概念 定义:VPN是一种通过公共网络(如互联网&#xff09…

基于transformer的目标检测:DETR

目录 一、背景介绍 二、DETR的工作流程 三、DETR的架构 1. 损失函数 2. 网络框架讲解及举例 一、背景介绍 在深度学习和计算机视觉领域,目标检测一直是一个核心问题。传统方法依赖于复杂的流程和手工设计的组件,如非极大值抑制(nms&…

Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)

Vue Amazing UI 一个 Vue 3 组件库 使用 TypeScript,都是单文件组件 (SFC),支持 tree shaking 有点意思 English | 中文 Vue Amazing UI 是一个基于 Vue 3、TypeScript、Vite 等最新技术栈开发构建的现代化组件库,包含丰富的 UI 组件和常…

C语言----指针

目录 1.概念 2.格式 3.指针操作符 4.初始化 1. 将普通变量的地址赋值给指针变量 a. 将数组的首地址赋值给指针变量 b. 将指针变量里面保存的地址赋值给另一个指针变量 5.指针运算 5.1算术运算 5.2 关系运算 指针的大小 总结: 段错误 指针修饰 1. con…

Python应用——将Matplotlib图形嵌入Tkinter窗口

Python应用——将Matplotlib图形嵌入Tkinter窗口 目录 Python应用——将Matplotlib图形嵌入Tkinter窗口1 模块简介2 示例代码2.1 Matplotlib嵌入Tkinter2.2 Matplotlib嵌入Tkinter并显示工具栏 1 模块简介 Tkinter是Python的标准GUI(图形用户界面)库&…