鸿蒙应用开发—鸿蒙app一键安装脚本

背景

当鸿蒙App开发完后需要提测,如何将App文件发给QA安装测试,是一件麻烦事,因为鸿蒙App并不能像Android Apk那样可以直接安装到设备中,能想到的方式有:

  • 直接叫测试拿手机过来安装
  • 让测试安装DevEco Studio 拉代码编译安装

上面的方式显然是不可取的,鸿蒙App的安装过程相对复杂,需要手动执行一系列命令行操作,为了简化这个过程,可以通过一个脚本从而实现一键安装。如果再结合构建脚本,可以实现打包、发布、安装一条龙,减少中间手动环节。

当然官方也提供了邀请链接和DeepLink链接方式,但这两种方式是需要审核或者专业的>组织内部发布证书,对及时响应并不友好。

鸿蒙app一键安装脚本

可以像安卓一样在电脑上执行命令行来安装鸿蒙应用,支持在windows和mac上运行。

准备工作

使用前请确保你的电脑上已经安装并配置了环境变量:

  • Windows:Java JDK 17 或更高版本; Mac: Java JDK 11 或更高版本
  • Python 3

使用方法

安装脚本

命令:

python ohos-app-install.py <包名> <app文件路径> [签名文件下载链接]

参数:

  • 第1个参数:应用包名
  • 第2个参数:app文件路径,可以是网络链接,也可以是本地文件路径
  • 第3个参数:签名文件的下载链接,可选的,首次使用或更新签名时需要,有固定的格式。

例子:

python ohos-app-install.py com.hzw.dsbridge dsbrige-demo-default-unsigned.app https://gitee.com/common-apps/ohos_tools/raw/master/sign.zip

或者直接通过网络链接安装:

python ohos-app-install.py com.hzw.dsbridge https://gitee.com/common-apps/ohos-py/raw/master/dsbrige-demo-default-unsigned.app

sign.zip 的文件格式如下:

ohos-app-install.py
sign
├── sign-config.json # 配置文件
└── yyy/            # 证书目录└── xxx.cer       └── xxx.p7b  └── xxx.p12

sign-config.json 的文件格式如下:

{"configs": [{"package_name": "com.hzw.dsbridge","app_cert_file": "sign/yyy/xxx.cer","profile_file": "sign/yyy/xxx.p7b","keystore_file": "sign/yyy/xxx.p12","key_alias": "hzw","key_pwd": "h123456789","keystore_pwd": "h123456789"}]
}

注意:测试环境仅提供测试签名文件。在正式环境中,应用签名应该在服务器端完成以确保安全性。 签名文件除了命令行链接下载,还可以按照格式放在脚本同目录下 。

生成exe/unix执行文件 - 可选

如果想更方便的使用,可以将脚本转换为可执行文件,Windows和Mac都支持。

创建配置,在根目录创建confog.json,内容如下:

{"app_url": "","package_name": "","sign_url": ""
}

生成执行文件命令:

pyinstaller ohos-gen-app.spec

如果在执行pyinstaller命令时报错command not found: pyinstaller,则需要安装pyinstaller 执行pip3 install pyinstaller,在安装过程报错 error: externally-managed-environmen,可以在虚拟环境中安装,如下:

# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
source venv/bin/activate
# 安装 pyinstaller
pip install pyinstaller

源码

https://gitee.com/common-apps/ohos-py

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【第45节】windows程序的其他反调试手段上篇

目录 引言 一、通过窗口类名和窗口名判断 二、检测调试器进程 三、父进程是否是Explorer 四、RDTSC/GetTickCount时间敏感程序段 五、StartupInfo结构的使用 六、使用BeingDebugged字段 七、 PEB.NtGlobalFlag,Heap.HeapFlags,Heap.ForceFlags 八、DebugPort:CheckRem…

.Net 9 webapi使用Docker部署到Linux

参考文章连接&#xff1a; https://www.cnblogs.com/kong-ming/p/16278109.html .Net 6.0 WebApi 使用Docker部署到Linux系统CentOS 7 - 长白山 - 博客园 项目需要跨平台部署&#xff0c;所以就研究了一下菜鸟如何入门Net跨平台部署&#xff0c;演示使用的是Net 9 webAPi Li…

npm和npx的作用和区别

npx 和 npm 是 Node.js 生态系统中两个常用的工具&#xff0c;它们有不同的作用和使用场景。 1. npm&#xff08;Node Package Manager&#xff09; 作用&#xff1a; npm 是 Node.js 的包管理工具&#xff0c;主要用于&#xff1a; 安装、卸载、更新项目依赖&#xff08;包&a…

个人论坛的测试报告

目录 一、项目的介绍 二、项目功能 三、测试项目 1.编写测试用例​编辑 2.执行部分测试用例 3.自动化测试 1&#xff09;添加相关Maven依赖(pom.xml) 2&#xff09;编写论坛系统的界面测试用例 3&#xff09;编写自动化代码测试部分测试用例 4.性能测试 一、项目的介…

《 C++ 点滴漫谈: 三十三 》当函数成为参数:解密 C++ 回调函数的全部姿势

一、前言 在现代软件开发中&#xff0c;“解耦” 与 “可扩展性” 已成为衡量一个系统架构优劣的重要标准。而在众多实现解耦机制的技术手段中&#xff0c;“回调函数” 无疑是一种高效且广泛使用的模式。你是否曾经在编写排序算法时&#xff0c;希望允许用户自定义排序规则&a…

大联盟(特别版)双端互动平台完整套件分享:含多模块源码+本地部署环境

这是一套结构清晰、功能完整的互动平台组件&#xff0c;适合有开发经验的技术人员进行模块参考、结构研究或本地部署实验使用。 该平台覆盖前端展示、后端服务、移动端资源以及完整数据库&#xff0c;采用模块化架构&#xff0c;整体部署流程简单清晰&#xff0c;适合自研团队参…

spark-SOL简介

Spark-SQL简介 一&#xff0e;Spark-SQL是什么 Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块 二&#xff0e;Hive and SparkSQL SparkSQL 的前身是 Shark&#xff0c;Shark是给熟悉 RDBMS 但又不理解 MapReduce 的技术人员提供的快速上手的工具 …

深入理解浏览器的 Cookie:全面解析与实践指南

在现代 Web 开发中&#xff0c;Cookie 扮演着举足轻重的角色。它不仅用于管理用户会话、记录用户偏好&#xff0c;还在行为追踪、广告投放以及安全防护等诸多方面发挥着重要作用。随着互联网应用场景的不断丰富&#xff0c;Cookie 的使用和管理也日趋复杂&#xff0c;如何在保障…

macOS 上使用 Homebrew 安装和配置 frp 客户端

macOS 上使用 Homebrew 安装和配置 frp 客户端 (frpc) 指南 frp (Fast Reverse Proxy) 是一款高性能的反向代理应用&#xff0c;常用于内网穿透。本文将介绍在 macOS 上使用 Homebrew 安装 frpc&#xff0c;并进行配置和管理。 一、安装 frpc 使用 Homebrew 安装&#xff08;…

【HarmonyOS NEXT】多目标产物构建实践

目录 什么是多产物构建 如何定义多个构建产物 如何在项目中使用 参考文章 什么是多产物构建 在鸿蒙应用开发中&#xff0c;一个应用可定义多个 product&#xff0c;每一个 product 对应一个定制的 APP 包&#xff0c;每个 product 中支持对 bundleName、bundleType、输出产…

腾讯云COS直传,官方后端demo,GO语言转JAVA

腾讯云COS直传,官方后端demo,GO写的,我们台是JAVA所以转一下,已跑通。废话不多说,直接上代码: Controller类如下: import com.ruoyi.web.core.config.CosConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.Ht…

C 语言 第八章 文件操作

目录 文件操作 文件和流的介绍 C 输入 & 输出 C 文件的读写 创建/打开文件 写入文件 fputc 函数 fputs 函数 fprintf 函数 实例&#xff1a; 读取文件 fgets函数 实例&#xff1a; 关闭文件 文件操作 文件和流的介绍 变量、数组、结构体等数据在运行时存储于内存…