HarmonyOS 鸿蒙Next中真机运行测试

HarmonyOS 鸿蒙Next中真机运行测试 我的平板是5.1,开发环境也是5.1,但是没有自动生成签名,但是我用之前4版本的环境建立的项目是可以自动生成签名的,求解

4 回复

开发者你好,可以参考排查下以下场景:

【问题定位】

  • 问题一: 检查signingConfigs的name字段是否超过了64个字符,是否存在特殊字符。
  • 问题二: 检查签名所用文件是否正确。
  • 问题三: 检查自动化签名功能使用次数30天内是否超过150次。
  • 问题四: 签名文件确认无误的话,可能是material文件损坏导致。
  • 问题五: 检查开发者账号有无实名,检查是否有外网权限,检查DevEco Studio设置中的HTTP代理是否为自动检测代理设置。
  • 问题六: 检查本地pc和北京时间是否一致。
  • 问题七: 检查工程级build-profile.json5文件中的signingConfigs下的material字段中存放的自动签名文件;检查AGC平台上的调试证书是否达到了数量上限。
  • 问题八: 检查本地是否配置了jdk环境。
  • 问题九: 检查build-profile.json5配置。
  • 问题十: 检查IDE是否识别调试设备

【分析结论】

  • 问题一: 签名配置名称不能超过64个字符的限制,并且字符串内只能包含字母和数字。
  • 问题二: 签名文件使用错误或文件过期,导致自动签名失败。
  • 问题三: AGC对自动化签名使用次数有限制,同一个开发者帐号,在最近30天使用自动化签名功能使用次数不能超过150次。
  • 问题四: material文件损坏导致自动签名报错。
  • 问题五: 报错根因是自动签名在生成签名证书时,需要与AGC网站进行数据交换,此时会对登录的账号进行数据校验和处理。当发现账号未实名认证、或者其他请求AGC数据失败的情况、以及HTTP代理未正确配置的情况都会导致这个报错。
  • 问题六: 由于本地pc和服务器时间不一致,导致签名失败。
  • 问题七: 当前存放在.ohos/config文件下的自动签名达到了签名上限;或者是AGC平台上的调试证书数量达到了上限。
  • 问题八: 由于本地缺少jdk环境,导致签名失败。
  • 问题九: signingConfigs.nameproducts.signingConfig不匹配。
  • 问题十: 当前报错代表签名工具无法通过hdc查询到调试设备的udid,有多种可能会导致IDE无法获取调试设备的udid

【修改建议】

  • 问题一: 签名配置名称不能超过64个字符的限制,并且字符串内只能包含字母和数字,根据该规则修改build-profile.json文件中signingConfigs的name字段。
  • 问题二: 项目根目录build-profile.json5里的signingConfigs配置信息全部删除,重新打开Project Structure配置自动签名。
  • 问题三: 方案一:建议相同BundleName的应用,如果设备无变化,请使用同一套签名文件信息,不要反复进行重签名操作。 方案二:更换其它开发者帐号进行登录,然后进行签名。 方案三:AGC限制同一个帐号,在近30天使用自动化签名的次数不能超过150次。因此,可以等待一段时间后,重新使用该帐号进行签名。
  • 问题四: material文件损坏,删除签名文件所在地的material文件后重新签名,若还是不行则删除material文件和签名文件后重新签名,项目根目录build-profile.json5里的signingConfigs中查看.ohos下的config文件存放位置。
  • 问题五: 一、账号未实名认证: 如报错所示,当前登录的华为开发者账号需要实名认证才能在AGC中创建项目获取签名证书。实名认证建议使用人脸认证、银行卡认证。 二、网络环境无法下载p7b证书(无外网权限): 自动签名就是手动签名的自动化。手动签名在下载p7b证书的步骤,需要用到外网权限,同理自动签名也需要。所以如果在确认账号已实名认证的签名前提下,通过手动在AGC上验证是否能够下载p7b来排查是否为外网权限问题。 三、DevEco Studio设置中的HTTP代理选择的是自动检测代理设置: 需设置为无代理模式或手工配置代理模式。
  • 问题六: 出现该报错是由于pc的系统时间与北京时间不一致。请将pc的系统时间与北京时间调整为一致,然后重新签名。步骤如下: 1.关闭自动签名弹窗; 2.右键点击电脑右下角时间,选择(调整日期、时间); 3.点击立即同步; 4.同步完成后会有√。此操作需要电脑联网! 5.重新自动签名即可。 6.使用Mac电脑开发时,如果以上方法仍未解决问题,需关闭自动同步时间,手动修改系统时间与北京时间一致,精确到秒。 7.如果重置时间后仍不能正确签名,有可能是因为VPN把系统时间覆盖了。请检查是否打开或打开过VPN。若有,请重置一下VPN或把VPN的节点设置到国内IP。
  • 问题七: 将.ohos下的config文件夹整个删除后,重新签名;若还是报错,就尝试删除一个AGC上的调试证书。
  • 问题八: 为本地安装jdk,配置java环境,即可自动签名。
  • 问题九: signingConfigs.nameproducts.signingConfig匹配,同时检查文件路径是否含特殊字符或空格。
  • 问题十: 在项目根目录下local.properties里SDK路径下的toolchains文件夹中(确保有可执行的hdc工具)手动执行hdc shell bm get --udid,确认下是否能够正确获取设备udid,若获取不到则重新刷设备镜像或更换设备。

【背景知识】 自动签名是一种由系统自动生成签名文件的流程,主要用于简化开发者的操作并提高效率。在HarmonyOS中,自动签名可以帮助开发者快速进行应用的调试和测试。

使用场景:自动签名主要适用于开发调试场景,便于开发者在开发过程中进行快速迭代和测试。然而,对于一些特定的情况,如跨设备调试、断网情况下调试或者需要使用特定权限的场景,手动签名可能是必需的。

 

更多关于HarmonyOS 鸿蒙Next中真机运行测试的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


  1. 可以在右上角的项目结构中将对应的 SDK 升至成对应系统的 API。例如: 5.0.4(16)

cke_1024.png

cke_2472.png

  1. 将真机设备通过 USB 连接并打开 USB 调试后,选 Signing Configs -> 勾选 Automaticlly generate signature 后登录 华为开发者账号 后即可完成自动签名

cke_16168.png

详细参考开发文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-signing#section18815157237

鸿蒙Next真机运行测试需使用华为DevEco Studio集成开发环境。通过USB连接华为鸿蒙设备后,在DevEco Studio中开启开发者模式并授权调试权限。项目编译生成HAP应用包后,可直接部署至真机进行功能验证。测试过程中可实时查看应用性能数据和运行日志,支持自动化测试脚本执行。设备需搭载鸿蒙Next开发者预览版系统,部分API功能仅限真机环境调试。

在HarmonyOS Next 5.1版本中,签名机制有所调整。相比4.0版本的自动签名生成,5.1需要手动配置调试证书:

  1. 进入DevEco Studio → File → Project Structure → Project → Signing Configs
  2. 点击"Debug"页签,勾选"Automatically generate signing"
  3. 点击"Apply"生成调试证书

如果仍无法生成,请检查:

  • 确保DevEco Studio为最新版本
  • 确认HarmonyOS SDK已完整安装
  • 尝试清理缓存:File → Invalidate Caches

之前4.0项目的自动签名功能在5.1中需要手动激活,这是版本间的正常差异。

回到顶部