HarmonyOS鸿蒙Next中已经成功发布新版本后如何在设备上安装旧版本正式包

HarmonyOS鸿蒙Next中已经成功发布新版本后如何在设备上安装旧版本正式包 【问题描述】:已经成功发布新版本后如何在设备上安装旧版本正式包

【问题现象】:已经成功发布新版本后如何在设备上安装旧版本正式包

【版本信息】:不涉及

【复现代码】:不涉及

【尝试解决方案】:尝试通过邀请测试的方式,但是创建并发布测试版本要求测试版本的VersionCode必须高于发布过的全网版本的VersionCode。期望能够在本地设备安装旧版本正式包而不是使用云调试

12 回复

开发者您好,发布证书签名的正式包是不能通过命令等方式直接安装到手机的,如果通过应用市场分发的方式,不论是正式上架还是邀请测试,都必须满足新版本大于在架版本。可以通过AppGallery Connect - 内部测试的方式不通过应用市场分发,自由配置版本号。

更多关于HarmonyOS鸿蒙Next中已经成功发布新版本后如何在设备上安装旧版本正式包的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


可以在后台的“软件包管理”那里看到所有上传过的正式包,选择其中一个旧版本的下载,然后通过hdc命令(hdc install 旧版本HAP/APP包路径)安装即可

装了新版本就没办法装旧版本了,有源码的话可以尝试改包名安装。

你好,可以参考一下 内部测试 的流程文档:

内部测试问答帖子 AppGallery Connect - 内部测试

【问题背景】

  1. 应用已成功发布新版本,需在本地设备上安装该应用的旧版本,而非通过云调试。

【解决方案】

所有方案的共同前提:先卸载设备上已安装的应用新版本,且设备需开启 “开发者模式”(路径:设置→关于手机→多次点击版本号)和 “USB 调试模式”(路径:设置→系统→开发者选项)。具体包含四种本地安装方法:

  1. hdc 命令安装:下载 HarmonyOS 的 Command Line Tools,将工具路径配置为系统环境变量(通过 where hdc 验证配置),设备 USB 连接电脑后,在 cmd 中执行 hdc install <旧版本HAP包路径> 完成安装。
  2. DevEco Studio(IDE)安装:安装新版 DevEco Studio(已集成 Node.js、Ohpm 等组件),设备通过 USB 或无线调试连接电脑,在 IDE 中配置 “自动签名”(Project Structure→Signing Configs),点击 “Run” 或 “Debug” 自动安装旧版本 HAP 包。
  3. DevEco Testing 工具安装:设备 USB 连接电脑,打开 DevEco Testing 工具,通过 “实用工具→设备投屏” 开启投屏,点击 “安装应用” 选择旧版本安装包路径,确认后完成安装,可通过日志查看结果。
  4. bm 工具命令安装:直接执行 bm 命令,常用命令包括:bm install -p <旧版本HAP路径>(常规安装)、bm install -p <路径> -r(覆盖安装)、bm install -s <HSP路径>(安装依赖共享库)。

开发者你好,可以用开发者调试方式先将本地设备上的新版本卸载,然后重新安装旧版本的安装包,参考以下几种方式:

【解决方案】

可以通过以下四种方式将测试包安装到测试机:

  • 方式一:通过hdc命令安装到测试机。
  1. 下载Command Line Tools。该命令行工具集合了HarmonyOS应用开发所用到的系列工具,包括代码检查codelinter、三方库的包管理Ohpm、命令行解析hstack、编译构建hvigorw。
  2. 配置环境变量:下载后的压缩包放到D盘,解压后获得文件夹D:\CommandLine-Tools-windows-x64-5.1.0.828SP1\Command-Line-Tools\SDK\default\OpenHarmony\toolchains,右击此电脑-属性-高级系统设置,把该路径添加到环境变量里,cmd窗口输入where hdc检查是否配置成功。
  3. 使用hdc命令安装测试包:测试机进入手机系统设置菜单-关于手机,多次点击版本号启用开发者模式,然后进入系统设置菜单-系统-开发者选项,打开USB调试模式,并通过USB将手机连接到电脑,通过cmd使用命令hdc install <测试包路径>来安装hap包。
  • 方式二:通过IDE安装到测试机。
  1. 下载新版DevEco Studio,并完成安装。安装过程中,新版本已经集成了Node.js、Ohpm和HarmonyOS SDK,因此不需要单独配置这些组件。
  2. 测试机开启开发者模式,采用USB连接方式或者无线调试的连接方式。
  3. 在DevEco Studio中选择设备,Project Structure(项目结构)-Signing Configs(签名配置)-勾选Automatically generate signature(自动签名)-点击OK完成自动签名,点击“Run”或“Debug”按钮,DevEco Studio自动将hap文件安装到测试机上。具体请参考【使用本地真机运行应用/元服务】
  • 方式三:通过DevEco Testing工具安装到测试机。测试机开启开发者模式,打开USB调试模式,并通过USB将手机连接到电脑,点击DevEco Testing工具左侧实用工具-设备投屏-开始投屏,点击安装应用,选择安装包路径,点击确定按钮进行安装,安装后可通过执行日志查看安装信息。
  • 方式四:使用bm工具来进行安装,例如:
# 安装一个HAP
bm install -p /data/app/ohos.app.hap
# 覆盖安装一个HAP
bm install -p /data/app/ohos.app.hap -r
# 安装一个应用间共享库
bm install -s xxx.hsp

以上方法哪些可以安装正式包?

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

正式包App资源包无法直接安装,必须通过应用市场下载并安装。最后通过解析App包安装的还是HAP包。但是应用市场只会显示上架的最新版本,也就只能在应用市场安装最新的版本。

那么对于我这个场景:期望在设备上安装旧版本的正式包,是否存在途径实现?

在HarmonyOS鸿蒙Next中,已发布新版本后无法直接通过官方渠道在设备上安装旧版本正式包。系统通常只允许安装当前或更新的正式版本。如需安装旧版本,需通过开发者模式使用ADB工具进行降级,但这会清除设备数据。具体操作需获取旧版本正式包的OTA包或APP包文件,通过ADB命令强制安装。注意降级可能导致兼容性问题。

在HarmonyOS Next中,应用发布新版本后,设备默认会从应用市场获取并安装最新版本。若需在设备上安装已发布的旧版本正式包,目前没有官方支持的直接降级安装途径。这是由于系统设计上遵循版本号递增原则,以保障应用的安全性和兼容性。

根据您描述的情况,通过“邀请测试”方式安装旧版本会遇到阻碍,因为测试版本的VersionCode必须高于已发布的全网版本。这意味着您无法通过创建测试版来安装一个VersionCode更低的旧版正式包。

可行的替代方案:

  1. 使用本地调试(仅限开发阶段):如果您仍保留有旧版本应用的源码和工程,可以在DevEco Studio中直接编译并运行旧版本到设备上。这本质上是安装一个调试包(debug签名的HAP),而非从应用市场安装的正式包。此方法仅适用于开发测试,不适用于已上架应用的正式环境降级。

  2. 管理应用市场版本:如果旧版本安装需求涉及正式用户,正确的做法是在华为开发者联盟的应用管理后台,对新版本进行“下架”或“暂停发布”操作。下架后,新版本将不再对新用户可见或提供更新。对于已安装新版本的设备,系统不会自动回退到旧版本,但未更新的设备仍可安装或保留旧版本。这是管理线上版本的官方方式。

重要说明: 直接安装低VersionCode的正式包(APK/HAP)通常会被系统安装服务阻止,这是出于安全机制考虑。HarmonyOS Next的应用模型和分发机制旨在确保版本向前迭代。因此,对于已发布的应用,建议通过版本管理策略(如控制新版本的发布范围或节奏)来应对此类需求,而非寻求设备侧的降级安装。

如果旧版本代码对当前开发有参考价值,建议妥善归档源码。对于线上用户,则应通过应用市场的版本管理功能进行操作。

回到顶部