当前位置: 首页 > news >正文

【uniapp离线打包】(基于Android studio)

文章目录

    • uniapp打包官方教程入口
    • 一、准备工作(工具三大件)
      • Android Studio版本推荐
    • 二、准备工作(Android壳和uniapp包)
      • 导入Android壳
      • 生成uniapp包
      • 将uniapp包导入android壳
      • 降低jdk版本
    • 三、准备工作(证书)
      • 准备Android平台离线签名证书(使用AndroidStudio图形化界面)
      • 准备Android平台离线签名证书(使用jak命令)
    • 四、修改配置参数
      • build.gradle配置
      • data/dcloud_control.xml修改appid
      • build.gradle修改包名
      • build.gradle文件的android节点下配置应用的签名信息
      • AndroidManifest.xml文件中配置appkey(官网获取appkey)
    • 五、打包apk(Android studio)

uniapp打包官方教程入口

https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android.html
按如下操作即可进入:
在这里插入图片描述

一、准备工作(工具三大件)

  1. Android Studio 下载地址:Android Studio官网
    在这里插入图片描述

Android Studio版本推荐

下载地址:
https://download.csdn.net/download/xzzteach/89611153

  • 随着Android Studio的不断发展,版本众多,选择一个适合自己需求的版本变得尤为重要。本文将为您推荐适合不同需求的Android Studio版本。

  • 初学者推荐版本:对于刚开始接触Android开发的初学者,建议选择稳定性好、功能齐全的版本。考虑到Android Studio 4.2.1也就是android-studio-ide-202.7351085-windows.exe具有更好的稳定性和性能,同时提供了更多的功能和改进,支持新的Android SDK技术,因此这个版本是初学者的理想选择。

  • 开发企业应用推荐版本:在实际企业开发中,推荐使用稳定版的Android Studio。例如,Android Studio Arctic Fox 2020.3.1是稳定版本,适合企业级开发。

  • 追求新功能推荐版本:对于追求新功能的用户,可以选择最新的预览版或Canary版。这些版本通常包含了一些新的功能和改进,可以让您提前体验到未来的Android Studio功能。

  • 跨平台开发推荐版本:如果您需要进行跨平台开发,可以考虑选择支持多平台的Android Studio版本。这些版本通常会提供更多的插件和工具,帮助您更轻松地实现跨平台开发。

总之,选择适合自己的Android Studio版本需要根据自己的需求和实际情况来决定。无论您是初学者还是资深开发者,都可以在Android Studio的不同版本中找到适合自己的工具和功能。

  1. HBuilderX(确保升级到最新版本)
    在这里插入图片描述

  2. App离线SDK下载:最新android平台SDK下载
    在这里插入图片描述

3.1.10版本起需要申请Appkey,具体请点击链接

SDK目录说明
|-- HBuilder-Hello App离线打包演示应用
|-- HBuilder-Integrate-AS 集成uni-app的最简示例
|-- SDK SDK库文件目录
|-- Feature-Android.xls Android平台各扩展Feature API对应的详细配置
|-- Readme.txt 版本说明文件及注意事项
|-- UniPlugin-Hello-AS uni原生插件开发示例

二、准备工作(Android壳和uniapp包)

导入Android壳

在这里插入图片描述

在这里插入图片描述
再后面的弹出窗选择release

生成uniapp包

HBuilder执行如下操作:
在这里插入图片描述

将uniapp包导入android壳

在这里插入图片描述

降低jdk版本

在这里插入图片描述
因为笔者使用的AndroidStudio版本过高,需要将jdk版本降到1.8
在这里插入图片描述
在这里插入图片描述

三、准备工作(证书)

jdk1.8请用命令方式高版本的用AndroidStudio图形化界面

准备Android平台离线签名证书(使用AndroidStudio图形化界面)

在实际测试中,可能我使用的AS版本过高,用方法二做的证书总是提示错误,于是,最后我是使用使用AndroidStudio图形化界面来生成的证书,下面开始:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

准备Android平台离线签名证书(使用jak命令)

  • Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。

  • Android证书的生成是自助和免费的,不需要审批或付费。

  • 可以使用JRE环境中的keytool命令生成。以下是windows平台生成证书的方法:

  • 安装JRE环境(推荐使用JRE8环境,如已有可跳过)
    可从Oracle官方下载jre安装包:https://www.oracle.com/java/technologies/downloads/#java8

下面以Windows平台,jre安装目录为C:\_http\jdk1.8.0_201为例亲测只能使用201版本才有md5,笔者电脑java太新,所以不设环境变量,直接使用绝对路径,实际操作时请修改为自己安装目录

  • 生成签名证书
    使用keytool -genkey命令生成证书:
 C:\_http\jdk1.8.0_201\bin\keytool.exe -genkey -alias msjb -keyalg RSA -keysize 2048 -validity 36500 -keystore msjb.keystore
  • testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
  • test.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
  • 36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期
    回车后会提示:

在这里插入图片描述

在这里插入图片描述

注意:上述信息填写要规范,乱填有可能会影响应用上架应用市场。

查看证书信息
可以使用以下命令查看:

 C:\_http\jdk1.8.0_201\bin\keytool.exe -list -v -keystore msjb.keystore

Enter keystore password: //输入密码,回车
会输出以下格式信息:
在这里插入图片描述

其中证书指纹信息(Certificate fingerprints):

  • MD5
    证书的MD5指纹信息(安全码MD5)
  • SHA1
    证书的SHA1指纹信息(安全码SHA1)
  • SHA256
    证书的SHA256指纹信息(安全码SHA245)
    在这里插入图片描述
    在这里插入图片描述
    官网方法如下:
    https://ask.dcloud.net.cn/article/35777

四、修改配置参数

build.gradle配置

data/dcloud_control.xml修改appid

文件中的appid修改成uniapp的appid
在这里插入图片描述

build.gradle修改包名

在这里插入图片描述

build.gradle文件的android节点下配置应用的签名信息

signingConfigs {config {keyAlias '签名别名'keyPassword '签名密码'storeFile file('xxx/xxx/xxx.keystore或xxx/xxx/xxx.jks') // 路径为相对路径或绝对路径storePassword '密码'v1SigningEnabled true //兼容v1v2SigningEnabled true //兼容v2}
}

AndroidManifest.xml文件中配置appkey(官网获取appkey)

登录https://dev.dcloud.net.cn/,点击当前所需要打包操作的应用名称,进入各平台信息中,点击新增,配置AndroidApp信息
在这里插入图片描述

五、打包apk(Android studio)

在这里插入图片描述

相关文章:

【uniapp离线打包】(基于Android studio)

文章目录 uniapp打包官方教程入口一、准备工作(工具三大件)Android Studio版本推荐 二、准备工作(Android壳和uniapp包)导入Android壳生成uniapp包将uniapp包导入android壳降低jdk版本 三、准备工作(证书)准备Android平台离线签名…...

稳稳的年化10%,多任务时序动量策略——基于pytorch的深度学习策略(附python代码)

原创文章第608篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 做因子挖掘这段时间,有一个观感。 传统的因子挖掘,尤其是手工构造因子,到遗传算法因子挖掘。——本身也是一种”拟合“,或者说试图”…...

C++分析AVL树

目录 AVL树介绍 AVL树平衡因子更新分析 AVL树插入时旋转与平衡因子更新 左单旋 右单旋 左右单旋 右左单旋 AVL旋转可行性 AVL树节点删除(待补充) AVL树分析 AVL树介绍 二叉搜索树在某些极端情况下可能会退化,为了解决这个问题&…...

aurora8b10b ip的使用(framing接口下的数据回环测试)

文章目录 一、Aurora8B/10B协议二、时钟、复位与状态指示1、时钟2、复位3、状态指示 三、数据发送、接受接口(1)AXI4-Stream位排序(2)Streaming接口(3)Framing接口(帧传输接口) 四、…...

如何通过OpenCV判断图片是否包含在视频内?

要判断图片是否包含在视频内,可以使用计算机视觉技术和图像处理方法。这通常涉及特征匹配或模板匹配。以下是一个基于OpenCV的解决方案,通过特征匹配的方法来实现这一目标。 步骤概述 读取视频和图片: 使用OpenCV读取视频文件和图片文件。 …...

大数据基础:Spark重要知识汇总

文章目录 Spark重要知识汇总 一、Spark 是什么 二、Spark 四大特点 三、Spark框架模块介绍 3.1、Spark Core的RDD详解 3.1.1、什么是RDD 3.1.2、RDD是怎么理解的 四、Spark 运行模式 4.1、Spark本地模式介绍 4.2、Spark集群模式 Standalone 4.3、Spark集群模式 Stan…...

Executable Code Actions Elicit Better LLM Agents

Executable Code Actions Elicit Better LLM Agents Github: https://github.com/xingyaoww/code-act 一、动机 大语言模型展现出很强的推理能力。但是现如今大模型作为Agent的时候,在执行Action时依然还是通过text-based(文本模态)后者JSO…...

循环结构(三)——do-while语句

目录 🍁引言 🍁一、语句格式 🚀格式1 🚀格式2 🍁二、语句执行过程 🍁三、实例 🚀【例1】 🚀【例2】 🚀【例3】 🍁总结 🍁备注 &am…...

pandas 或筛选

pandas 或筛选 在Pandas中,可以使用DataFrame.loc方法结合逻辑运算符来实现或筛选。这里提供一个简单的例子: import pandas as pd 创建示例DataFrame df pd.DataFrame({ ‘A’: [1, 2, 3, 4], ‘B’: [5, 6, 7, 8], ‘C’: [9, 10, 11, 12] }) 设定…...

工具(1)—截屏和贴图工具snipaste

演示和写代码文档的时候,总是需要用到截图。在之前的流程里面,一般是打开WX或者QQ,找到截图工具。但是尴尬的是,有时候,微信没登录,而你这个时候就在写文档。为了截个图,还需要启动微信&#xf…...

【从零开始一步步学习VSOA开发】快速体验SylixOS

快速体验SylixOS 安装完毕RealEvo-IDE 后,同时也安装了RealEvo-Simulator。RealEvo-Simulator 是一个虚拟运行环境,可以模拟各种体系结构并在其上运行 SylixOS。相比于物理板卡,在 RealEvo-Simulator 进行运行调测更加的方便快捷且成本低廉。…...

Ansible自动化:简化IT基础设施管理的艺术

目录 一.前言 二.Ansible简介 2.1什么是Ansible? 2.2Ansible的主要特点 2.3Ansible的应用场景 三.探索Ansible的高级功能 3.1 高级Playbook特性 3.2 Ansible Vault 3.3 动态Inventory 3.4Ansible Tower(AWX) 3.5模块开发 3.6 Ans…...

【Rust光年纪】探索Rust语言中的WebSocket库和框架:优劣一览

Rust语言中的实时通信利器:WebSocket库与框架全面解析 前言 随着Rust语言的不断发展,其在Web开发领域也变得越来越受欢迎。WebSocket作为实现实时通信的重要技术,在Rust的生态系统中也有多个库和框架提供了支持。本文将介绍几个主流的Rust …...

HTML 基础结构

目录 1. 文档声明 2. 根标签 3. 头部元素 4. 主题元素 5. 注释 6. 演示 1. 文档声明 <!DOCTYPE html>&#xff1a;声明文档类型&#xff0c;表示该文档是 html 文档&#xff0c; 2. 根标签 &#xff08;1&#xff09;所有的其他标签都要放在一对根标签中&#…...

多页合同怎么盖骑缝章_电子合同怎么盖骑缝章?

多页合同怎么盖骑缝章&#xff1f;电子合同怎么盖骑缝章&#xff1f; 对于纸质多页合同&#xff0c;盖骑缝章是一种常见的做法&#xff0c;用于确保合同的完整性&#xff0c;防止任何页面被替换或篡改。以下是盖骑缝章的基本步骤&#xff1a; 将所有合同页面平铺在桌面上。用…...

GD 32 IIC通信协议

前言&#xff1a; ... 通信方式 通信方式分为串行通信和并行通信。常见的串口就是串行通信的方式 常用的串行通信接口 常用的串行通信方式有USART,IIC,USB,CAN总线 同步与异步 同步通信&#xff1a;IIC是同步通信&#xff0c;有两个线一个是时钟信号线&#xff0c;一个数数据…...

Spring Task初学

介绍 Spring Task 是Spring框架提供的任务调度工具&#xff0c;可以按照约定的时间自动执行某个代码逻辑 为什么要在Java程序中使用Spring Task? 运行效果 cron表达式&#xff1a;一般日和周不会同时出现 入门案例 启动类添加注解EnableScheduling开始任务调度 创建MyTask类…...

决策树可解释性分析

决策树可解释性分析 决策树是一种广泛使用的机器学习算法&#xff0c;以其直观的结构和可解释性而闻名。在许多应用场景中&#xff0c;尤其是金融、医疗等领域&#xff0c;模型的可解释性至关重要。本文将从决策路径、节点信息、特征重要性等多个方面分析决策树的可解释性&…...

BUGKU-WEB never_give_up

解题思路 F12查看请求和响应&#xff0c;查找线索 相关工具 base64解码URL解码Burp Suit抓包 页面源码提示 <!--1p.html--> 2. 去访问这个文件&#xff0c;发现直接跳转到BUGKU首页&#xff0c;有猫腻那就下载看看这个文件内容吧 爬虫下载这个文件 import requests …...

hive自动安装脚本

使用该脚本注意事项 安装hive之前确定机子有网络。或者yum 更改为本地源&#xff0c;因为会使用epel仓库下载一个pv的软件使用该脚本前提是自行安装好mysql数据库准备好tomcat软件包&#xff0c;该脚本使用tomcat9.x版本测试过能正常执行安装成功&#xff0c;其他版本没有测试…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...