HarmonyOS鸿蒙Next上架审核时报错:没有匹配到符合应用系统版本的设备

HarmonyOS鸿蒙Next上架审核时报错:没有匹配到符合应用系统版本的设备 【问题描述】

上架审核的时候出现这个错误

cke_386.png

【版本信息】

DevEco Studio 6.0.0 release

targetSdkVersion:6.0.0(20)

compatibleSdkVersion:5.0.5(17)


更多关于HarmonyOS鸿蒙Next上架审核时报错:没有匹配到符合应用系统版本的设备的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

开发者您好,一般情况是发布包中存在ACL权限未在profile中勾选申请。可以参考如下方案申请发布Profile时添加ACL权限。如果未能解决问题,麻烦提供一下详细报错信息,感谢理解与支持。

【解决方案】

ACL,即Access Control List,中文名“访问控制列表”。 ACL受限权限,在HarmonyOS中泛指那些对非系统应用限制开放但可通过特殊渠道获取的权限。更详细的HarmonyOS权限机制和ACL介绍,详见权限机制中的基本概念

在申请前,请审视是否符合受限权限的使用场景。为避免应用的上架申请被驳回,开发者应优先使用Picker/控件等替代方案,仅少量符合特殊场景的应用被允许申请受限权限。每个受限权限的介绍、可用场景及其建议方案请参考受限开放权限列表。如果应用未申请相应的权限证书,却试图在配置文件中声明此类权限,将会导致应用安装失败。

  • 在调试阶段,可以通过DevEco Studio自动签名完成申请。在自动签名的过程中,将由DevEco Studio完成向AGC申请受限权限的步骤,开发者可直接使用,具体请参考自动签名-操作步骤
  • 在发布阶段,必须根据以下步骤完成受限权限的手动申请:
    • 在AGC侧申请Profile文件: 申请的Profile文件,将用于后续的应用签名信息配置。应用因特殊场景要求使用受限开放权限,请务必在申请发布Profile“添加Profile页面”时,申请使用相应权限,否则应用将在审核时被驳回。申请Profile的步骤请参考:申请发布Profile
    • 在代码工程中申请权限: 在AGC侧完成上述配置后,开发者还需要根据实际情况在工程中声明权限。
      1. 在配置文件中声明权限
      2. 如果权限的授权方式为user_grant(用户授权)时,需要通过弹窗向用户申请权限
  • 若应用/元服务需使用ACL权限,需要在AGC申请权限,AGC会根据应用/元服务的使用场景审核是否可以使用对应的权限,参考申请ACL权限

更多关于HarmonyOS鸿蒙Next上架审核时报错:没有匹配到符合应用系统版本的设备的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


影响应用兼容性的关键信息:https://developer.huawei.com/consumer/cn/doc/harmonyos-releases/app-compatibility-influence-factor

在应用的工程配置中,三个SDK版本属性之间的大小关系为:compatibleSdkVersion值≤targetSdkVersion值≤compileSdkVersion值,如果配置不符合这个规则,会有报错提示。

modelVersion

含义:标识开发态版本号(即当前开发环境使用的 DevEco Studio 配套工具版本)。

说明:

  • 该字段与开发工具的版本严格对应,例如 DevEco Studio 6.0.0.858 配套的 modelVersion 值为 6.0.0。
  • 主要用于工具链兼容性校验,开发者无需手动修改。

compatibleSdkVersion

含义:标识应用/元服务运行所需兼容的最低SDK版本,应用/元服务不能安装在低于该版本的设备。当前支持的版本参考所有HarmonyOS版本。相关字段与应用兼容性关系参见应用兼容性说明

说明:

  • 运行环境是HarmonyOS时,字段类型是字符串,配置示例:“compatibleSdkVersion”: “6.0.0(20)”。
  • 运行环境是OpenHarmony时,字段类型是数值,配置示例:“compatibleSdkVersion”: 20。

targetSdkVersion

含义:标识应用/元服务运行所需目标SDK版本,是系统提供的前向兼容手段。如果新SDK版本中API行为发生变更,将应用/元服务安装到新系统后,可通过该字段提供向前兼容手段,在新系统版本保持老的API行为。

如未配置,默认与compileSdkVersion保持一致。当前支持的版本参考所有HarmonyOS版本。相关标签与应用兼容性关系参见应用兼容性说明

说明:

  • 运行环境是HarmonyOS时,字段类型是字符串,配置示例:“targetSdkVersion”: “6.0.0(20)”。
  • 运行环境是OpenHarmony时,字段类型是数值,配置示例:“targetSdkVersion”: 20。

modelVersion不需要跟targetSdkVersion对应,由于compatibleSdkVersion字段即标识应用/元服务运行所需兼容的最低SDK版本,所以如果改动这些版本号,需要真机或者模拟器版本兼容最低compatibleSdkVersion版本。

该报错表明应用配置的API版本与目标设备不兼容。需检查项目中的module.json5文件,确保targetAPIVersioncompatibleAPIVersion字段与HarmonyOS Next版本匹配。同时,确认在AppGallery Connect中正确选择了支持Next版本的设备类型。

这个报错表明,在应用上架审核阶段,华为应用市场的审核系统未能找到与您应用配置的系统版本要求相匹配的测试设备。

根据您提供的 targetSdkVersioncompatibleSdkVersion 配置,问题核心在于您的应用版本兼容性范围设置与当前审核环境可用的设备不匹配。

具体分析如下:

  1. 版本配置解读

    • targetSdkVersion: 6.0.0 (20): 表示您的应用是针对 HarmonyOS Next(API Version 20)进行开发和优化的
    • compatibleSdkVersion: 5.0.5 (17): 表示您的应用声明其可以兼容运行的最低系统版本是 HarmonyOS 5.0.5(API Version 17)
  2. 问题原因: 审核系统会根据您 compatibleSdkVersion 的设置,去寻找系统版本 >= 5.0.5 (17) 的设备来安装和测试您的应用。然而,当前用于 HarmonyOS Next(API 20)应用审核的测试环境,其设备系统版本很可能都是 HarmonyOS Next(即 API 20)。 这里存在一个关键点:HarmonyOS Next(API 20)与之前的 HarmonyOS(API 17及以下)是不同架构的系统。一个声明 targetSdkVersion 为 20 的应用,其编译产物是针对 Next 架构的,无法在 API 17 的设备上安装或运行。因此,即使您将 compatibleSdkVersion 设为 17,审核系统也无法用 API 17 的设备来测试一个 Next 应用。

  3. 解决方案: 您需要将 compatibleSdkVersion 修改为与 targetSdkVersion 架构匹配的版本。对于 HarmonyOS Next 应用,正确的设置是:

    • targetSdkVersion: 6.0.0 (20)
    • compatibleSdkVersion: 6.0.0 (20)一个同样属于 HarmonyOS Next 系列的更高版本号(如果未来有)

    修改位置:在项目的 module.json5 文件中进行修改。

    {
      "app": {
        ...
        "targetSdkVersion": 20,
        "compatibleSdkVersion": 20, // 将此项修改为20,使其与targetSdkVersion保持一致
        ...
      }
    }
    

总结:HarmonyOS Next 应用的上架审核必须在 HarmonyOS Next 系统的设备上进行。请确保您的 compatibleSdkVersion 设置为 20,以明确指定您的应用需要运行在 HarmonyOS Next 及以上版本的环境,这样审核系统才能正确匹配到可用的测试设备。修改配置后,重新打包提交审核即可。

回到顶部