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

news2025/1/7 23:21:26

一、简介

  • 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.coloradmin.cn/o/2272275.html

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

相关文章

党员学习交流平台

本文结尾处获取源码。 本文结尾处获取源码。 本文结尾处获取源码。 一、相关技术 后端:Java、JavaWeb / Springboot。前端:Vue、HTML / CSS / Javascript 等。数据库:MySQL 二、相关软件(列出的软件其一均可运行) I…

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. …

WPF区域导航+导航参数使用+路由守卫+导航日志

背景:使用ContentControl控件实现区域导航是有Mvvm框架的WPF都能使用的,不限于Prism 主要是将ContenControl控件的Content内容在ViewModel中切换成不同的用户控件 下面是MainViewModel: private object body;public object Body {get { retu…

DeepSeek v3为何爆火?如何用其集成Milvus搭建RAG?

最近,DeepSeek v3(一个MoE模型,拥有671B参数,其中37B参数被激活)模型全球爆火。 作为一款能与Claude 3.5 Sonnet,GPT-4o等模型匹敌的开源模型DeepSeek v3不仅将其算法开源,还放出一份扎实的技术…

得物基于AIGC生成测试用例的探索与实践

一、背景 随着人工智能技术的快速发展,尤其是在自然语言处理(NLP)、计算机视觉和生成对抗网络(GANs)等领域,AIGC(AI Generated Content)得到了广泛应用,这一技术的进步使…

HTML5实现好看的二十四节气网页源码

HTML5实现好看的新年春节元旦网站源码 前言一、设计来源1.1 主界面1.2 关于我们界面1.3 春季节气界面1.4 夏季节气界面1.5 秋季节气界面1.6 冬季节气界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看的二十四节气网页源码,春季节气&#xf…

Hadoop集群之间实现免密登录

实现虚拟机之间能够互相登录,比如可以在hadoop1上面登录hadoop2。 第一步:执行”ssh-keygen -t rsa”命令,生成该虚拟机的密钥 第二步:密钥文件存储在/root/.ssh目录,执行cd /root/.ssh命令进入存储密钥文件的目录&am…

国产编辑器EverEdit - 常用资源汇总

1 国产编辑器EverEdit-常用资源汇总 EverEdit是一款国产文本编辑器,历经超过15年的更新和维护,拥有不输业界顶级商业文本编辑器(EmEditor、UltraEdit)的实力,甚至在某些方面的功能更强(当然,各有千秋),开发者对文本编辑…

C# 枚举格式字符串

总目录 前言 当前文章为 C# 中的格式设置(格式化字符串) 大全 中的一个小章节。 一、概述 1. 基本信息 可以使用 Enum.ToString 方法,新建表示枚举成员的数字值、十六进制值或字符串值的字符串对象。枚举格式说明符不区分大小写。 二、自定义数字格式说明符详解…

SQL-Server链接服务器访问Oracle数据

SQL Server 链接服务器访问 Oracle 离线安装 .NET Framework 3.5 方法一:使用 NetFx3.cab 文件 下载 NetFx3.cab 文件,并将其放置在 Windows 10 系统盘的 C:Windows 文件夹中。 以管理员身份运行命令提示符,输入以下命令并回车: …

Microi吾码|开源低代码.NET、VUE低代码项目,表单引擎介绍

Microi吾码|开源低代码.NET、VUE低代码项目,表单引擎介绍 一、摘要二、Microi吾码介绍2.1 功能介绍2.2 团队介绍2.3 上线项目案例 三、Microi吾码表单引擎是什么?四、Microi吾码表单引擎功能4.1 模块引擎 - 由表单引擎驱动4.2 流程引擎 - 由表…

自动化立体库安全使用管理制度完整版

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。欢迎大家到本文底部评论区留言。 新书《智能物流系统构成与技术实践》人俱乐部 完整版文件和更多学习资料,请球友到知识星球【智能仓储物流技术研习社】自行下载。 以下是《…

ArcGIS中怎么把数据提取到指定范围(裁剪、掩膜提取)

最近,经常能收到怎么把数据提取到指定范围、栅格数据怎么裁剪、矢量数据怎么裁剪、栅格数据怎么掩膜提取的咨询。 下面是我对这个问题的解决思路: 对于矢量数据: ①首先把数据加载进来 ②软件界面上面的工具栏找到→地理处理→裁剪&#x…

stm32的掉电检测机制——PVD

有时在一些应用中,我们需要检测系统是否掉电了,或者要在掉电的瞬间需要做一些处理。 STM32内部自带PVD功能,用于对MCU供电电压VDD进行监控。 STM32就有这样的掉电检测机制——PVD(Programmable Voltage Detecter),即可编程电压检…

QT:控件属性及常用控件(2)-----按钮类控件及显示类控件

文章目录 QT关于qrc一个蛋疼的问题一、按钮类控件1.PushButton1.1 给按钮加图标1.2 给按钮加快捷键 2.RadioButtion2.1 单选题2.2 关于状态2.3 多组单选 3.Check Box4.Tool Button 二、显示类控件1.Lable1.1 文本、图片显示1.2 Label格式1.3 设置伙伴(绑定伙伴关系) 2.LCDNumbe…

逆向入门(2)C篇-基础知识

C基础 1、在C中,函数的变量是从右往左传递的,也就是test(x,y),先传入y,再传x。 2、变量的分类: (1)全局变量。在编译的时候就已经确定了内存地址和宽度,变量名就是内存地址的别名…

【C语言】_assert断言

目录 1. assert功能 2. 使用assert判指针有效性 3. assert的参数 4. NDEBUG宏与assert机制的关闭 5. Debug版本与Release版本 1. assert功能 assert ( ) 是assert.h头文件定义的宏,用于在运行时确保程序符合指定条件: 如果不符合(条件…

在Unity中用Ab包加载资源(简单好抄)

第一步创建一个Editor文件夹 第二步编写BuildAb(这个脚本一点要放在Editor中因为这是一个编辑器脚本,放在其他地方可能会报错) using System.IO; using UnityEditor; using UnityEngine;public class BuildAb : MonoBehaviour {// 在Unity编…

【可实战】Bug的判定标准、分类、优先级、定位方法、提交Bug(包含常见面试题)

一、Bug相关概念 (一)bug判定标准 (二)常见 Bug 分类 (三)bug优先级 1.bug严重程度与优先级的关系 有些很严重的Bug,只在极端的条件下才出现,用户碰到的概率很低,这种情…

C语言:调试的概念和调试器的选择

所谓调试(Dubug),就是跟踪程序的运行过程,从而发现程序的逻辑错误(思路错误),或者隐藏的缺陷(Bug)。 在调试的过程中,我们可以监控程序的每一个细节&#xff…