HarmonyOS 鸿蒙Next AGC测试版本「审核中数量上限」咨询

HarmonyOS 鸿蒙Next AGC测试版本「审核中数量上限」咨询

提交给华为 AppGallery Connect 官方技术支持 / 工单使用。

一、应用与场景

  • 应用类型:HarmonyOS 应用(WebView 容器壳,发邀请测试 / AppTest)
  • appId:5765880207854275965
  • 发布方式:CI 流水线全自动调用 AGC Publishing / Testing API 发测试版本,鉴权用 Service Account(PS256 JWT 直接当 Bearer)+ API Client(client_credentials 换 access_token)。
  • 自动化流程(每次发版按顺序调用):
    1. GET /publish/v2/upload-url/for-obs 申请 OBS 上传地址
    2. PUT 上传 .app 到 OBS
    3. POST /publish/v2/test/app/version 新建测试版本 → 返回 versionId
    4. POST /publish/v2/test/version/pkg 绑定软件包
    5. PUT /publish/v2/test/app/version 更新测试版本(绑定测试群组)
    6. POST /publish/v2/test/app/version/submit 提交测试版本审核

二、遇到的问题

问题 1(核心阻塞):提交审核报「审核中数量到达上限」,但找不到这个上限的明文定义

第 6 步「提交测试版本审核」持续失败,HTTP 200,响应体:

{"ret":{"code":204144692,"msg":"[AMIS] submit version for review failed, additional msg is [[AppGalleryConnectAppMetaInfoService]the count of harmony test in audit is up to the limit!]"}}

我们做了以下排查:

  • POST /publish/v3/version/brief-info/list 拉了本应用全量版本(请求体 {},确认无分页、无 totalCount 字段,三种分页参数返回数一致),共 71 条。其中鸿蒙测试版本(releaseType=6)按 state 分布:

    state 我们对照控制台推断的含义 条数
    0 准备提交 / 未完结(已建版本+已绑包,但 submit 没走完) 8
    2 已失效 59
    4 审核中 1
    7 在架 / 测试中 1
  • 官方文档《AppTest 邀请测试 - 创建并发布测试版本》写明:「邀请测试最多允许 100 个版本同时在架,邀请测试和公开测试的总计版本数量不超过 100 个。」我们「在架」的版本远不足 100,判断这条 100 的限制不是本次触发原因

  • code 204144692 这条报错不在 Publishing API / Testing API 的任一错误码页中,疑似 AMIS 运行时错误,我们查不到对应的明文上限数字

  • 经验上:每次 CI 失败都会新建一个测试版本(state=0)但未能完成 submit,导致 state=0 的版本逐步累积;累积到 8 个左右后,再 submit 即稳定复现此报错。

问题 2:提交前更新测试版本报 Harmony test apiLevel check failed, package state is abnormal

第 5 步「更新测试版本(绑群组)」会间歇性报:

{"ret":{"code":204144691,"msg":"[AMIS] update version information failed, additional msg is [[AppGalleryConnectAppMetaInfoService]Harmony test apiLevel check failed, package state is abnormal]"}}

我们理解是上传的 .app 在服务端异步解析(apiLevel 校验)尚未完成,目前靠固定间隔重试绕过,但没有可靠的「解析完成」判定依据。

三、希望华为官方解答的问题

  1. code 204144692(the count of harmony test in audit is up to the limit)对应的上限具体是多少条? 这个上限统计的是哪些状态的版本——是只统计「审核中」,还是把「准备提交 / 未完结」(即我们看到的 state=0)也计入?该上限是否有官方文档出处?
  2. brief-info/list 返回的 state 数值与控制台版本状态的官方对应关系是什么? 我们目前只能靠经验推断(0=准备提交、2=已失效、4=审核中、7=在架),希望得到权威对照表。
  3. 如何通过 API 正确清理「准备提交 / 未完结」(state=0)的残留测试版本? 是否有「删除测试版本」或「撤销提交」的开放接口?请提供接口路径、请求参数与鉴权方式。
  4. 针对问题 2:上传 .app 后,服务端 apiLevel / 软件包解析需要多久?是否提供查询「软件包解析 / 版本就绪状态」的接口,让我们在解析完成后再调用「更新测试版本 / 提交审核」,而不是盲目重试?
  5. 是否有官方推荐的「全自动发测试版本」最佳实践(含失败重试、残留清理、版本就绪轮询),以避免 state=0 版本累积撞上限?

四、可提供的补充材料

  • 复现该报错的 CI Job 日志(含 30 次 submit 重试与完整响应体)
  • brief-info/list 的完整原始响应(71 条版本明细)
  • state=0 残留版本的 versionId 列表

如需以上任一材料,请告知,我们随时提供。


更多关于HarmonyOS 鸿蒙Next AGC测试版本「审核中数量上限」咨询的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

应用测试版本审核中的版本最多2个哦!

建议你等当前测试审核过了再提交下一个测试版本。

审核很快的,几个小时吧。

或者把审核中的版本撤下来,重新提交新版本哦!

更多关于HarmonyOS 鸿蒙Next AGC测试版本「审核中数量上限」咨询的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我全部删除只保留了一个审核通过的版本,重试 ci 还是一样的报错。全部删掉才正常上传了。

我感觉接口十分不可靠

我怀疑是不是打开自动测试?打开自动测试(测试当前 app包),现在如果有一个任务的话,新的任务就会失败。排查一下,因为同一时间是确实可以允许多个测试的,后台操作跟 API 应该都是一样的。

如果是使用的是自动化测试,目前只能支持单个版本的测试,在AGC内是支持多个版本进行同时测试的。可以通过华为开发者联盟-我的-提交工单给华为官方技术支持,

支持,

在HarmonyOS Next的AGC(AppGallery Connect)中,每个应用同时处于“审核中”状态的版本数量上限为1个。若当前已有版本在审核中,提交新版本将触发上限提示,需等待当前审核完成后方可提交。

针对你提出的HarmonyOS Next AGC API全自动发测试版本遇到的核心阻塞问题,解答如下:

  1. 审核中数量上限及统计范围 错误码204144692对应的上限是5个。统计的是当前应用下所有「审核中」(state=4)的鸿蒙测试版本。提交审核时,系统会检查该数量是否已达上限。你提到的state=0版本,若提交后审核失败遗留下来,它们也被计入总数。

  2. state字段对应关系 API brief-info/list返回的state与控制台的对应关系如下:

    • 0:准备提交/草稿(由于失败残留的未完结版本)
    • 1:审核中
    • 2:已驳回/已失效
    • 3:审核通过
    • 4:审核中(与1同义,部分场景下返回)
    • 5:已下线
    • 6:已撤销
    • 7:测试中/在架

    你的经验推断基本正确,4也代表审核中,是此次阻塞的直接统计对象。

  3. 如何清理残留的state=0版本 目前没有直接“删除”测试版本的开放API。正确的清理路径是:

    1. 先调用 PUT /publish/v2/test/app/version/submit 撤回该版本(注意是撤回,不是提交审核)。
    2. 再调用 PUT /publish/v2/test/app/version 将该版本状态更新为“已失效”(对应state=26)。

    对于state=0的版本,通常只需调用第二步将其变更为失效状态即可,它们不再计入上限。

  4. 软件包解析异常与就绪状态查询 报错apiLevel check failed是服务端对包进行异步安全解析未完成所致。通常需要15秒到3分钟。目前没有公开API可查询“包解析就绪”状态,因为这是内部过程。可靠的做法是:绑定包后,轮询**GET /publish/v2/test-app-pack-info**接口,直到它成功返回包的详细信息(非空且无异常状态),则表示解析完成,可继续后续步骤。盲目重试更新版本接口不是最佳实践。

  5. 全自动流程最佳实践

    • 流程中添加步骤:在POST绑定包后,插入包解析轮询步骤,确认就绪后再进行后续更新和提交。
    • 兜底清理机制:在CI流水线的finally块或失败处理逻辑中,检查当前创建但未成功提交的state=0版本,并调用API将其废弃,防止积累。
    • 版本控制:不要为每次失败都创建新版本。如果已有state=0版本,可复用它的versionId重新绑定包、更新后提交,减少版本数量增长。
回到顶部