HarmonyOS鸿蒙Next中上传软件包时候测试不通过,理由是:“Public HNP受控上架,您的应用不允许上架Public HNP”

HarmonyOS鸿蒙Next中上传软件包时候测试不通过,理由是:“Public HNP受控上架,您的应用不允许上架Public HNP” 上传软件包时候测试不通过,理由是:“Public HNP受控上架,您的应用不允许上架Public HNP”,有人遇到过吗

7 回复

首先是Public HNP的发布上架是受控的,普通三方应用不被允许上架Public HNP的。

因为Public HNP安装在系统公共目录下,所有应用都可以通过HNP_PUBLIC_HOME环境变量访问,相当于系统级的共享原生工具。出于安全管控考虑,华为对Public HNP的上架实行白名单受控机制,只有经过华为审核授权的应用才允许上架Public HNP,普通三方应用不允许。

如果你要用的,要满足下面几点:

  1. 主体必须是认证企业开发者账号,个人账号无法开通 Public HNP 权限;
  2. 登录华为开发者联盟后台 → 服务与支持 → 提交业务工单;
  3. 工单备注:申请 Public HNP 受控上架授信,附上:
  4. 企业营业执照、资质证明;
  5. 完整业务场景说明(哪些第三方需要调用你的原生能力、安全防护方案);
  6. HNP 模块接口清单、权限管控设计;
  7. 华为安全团队人工审核,通过后加入白名单,才可携带 Public HNP 上架。

更多关于HarmonyOS鸿蒙Next中上传软件包时候测试不通过,理由是:“Public HNP受控上架,您的应用不允许上架Public HNP”的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这里建议先区分“随本应用私有使用的 native 包”和“Public HNP”。报错里指向 Public HNP 时,一般意味着公共目录/公共能力形态,通常不是靠改工程配置就能自行开通的能力。

如果平台文档没有暴露自助申请入口,比较稳的路径是走华为开发者支持工单/合作接口确认是否具备申请条件。工程侧可以同时评估替代方案:能否改成应用私有分发,或者用 HAP/HSP/HAR/普通 so 只服务本应用,避免触发 Public HNP 的上架校验。

这个提示通常表示你的上传包里包含了 Public HNP 相关产物,但当前应用没有对应的受控上架资格。先判断是不是误打包:如果业务并不需要 HNP,检查 build-profile、模块配置、三方依赖或构建插件,看看是否生成了 .hnp/hnp module,并从发布包里移除。

如果确实要发布 Public HNP,就不能靠改包名绕过,需要按平台要求申请对应能力或换成普通 HAP/HSP/HAR 分发形态。排查时建议解压最终 .app 包,看里面实际包含哪些模块和产物,很多时候是某个依赖或构建配置把 HNP 带进去了。

项目确实需要带有hnp包,是将hnp放到hap包中,安装hap包时自动安装hnp包;“需要按平台要求申请对应能力”这个平台要求没有找到,官网中没有提及相关内容

您的应用使用了受控的Public HNP(HarmonyOS Native Plugin),该类插件仅限系统应用或特定合作应用使用,普通开发者应用无法上架公共市场。需移除相关HNP依赖后重新提交。

这个错误提示“Public HNP受控上架”是指你的应用里包含了一个公开类型的HNP(HarmonyOS Native Package),但这类包在鸿蒙Next上架时是受到约束的,普通应用不能直接向公众分发。

常见原因有两个:

  • 你的HNP使用了受限的系统能力或硬件接口(比如某些安全、通信、传感功能),这些能力只对合作伙伴或特定品类应用开放,公众应用不能直接携带。
  • HNP类型配置有误。在 DevEco Studio 中创建或依赖了一个 public 类型的共享包,但该包本身要求申请“受限上架”资质,而未申请该资质就会直接拒绝。

解决办法是核查项目中的 HNP 依赖,确认是否引入了需要特权的 Native 模块。如果是所需功能,通常要将其改为 HSP 共享包(Harmony Shared Package)或者用 ArkTS API 实现普通能力,而不是使用 Public HNP。如果确实必须使用 Public HNP,则需在华为开发者联盟申请相应受限资质并通过审核,但普通三方应用一般无法获批。

建议先从 oh-package.json5 和 HAR/HSP 依赖中排查,去除所有非必要的 Public HNP,或替换为系统 API 实现。

回到顶部