将组件发布到 OpenHarmony 三方库中心仓(OHPM)是一个严谨的流程,整体可以分为账号准备、密钥配置、工程创建、打包构建、发布审核等核心步骤。以下是详细的操作指南:

1. 账号与组织准备

前往 OpenHarmony 三方库中心仓(ohpm.openharmony.cn)注册账号并完成实名认证。如果需要以组织名义发布,需在“组织管理”中新增组织,包名需遵循 @组织名/包名 的格式。

2. 生成密钥与配置认证

OHPM 使用 RSA 公私钥校验发布权限,仅支持 PEM 格式。

  • 生成密钥:使用 ssh-keygen 生成公私钥对,生成时必须输入密码(密码不能为空)。

    ssh-keygen -m PEM -t RSA -b 4096 -f ~/.ssh_ohpm/mykey
  • 上传公钥:登录中心仓官网,进入「个人中心」-「认证管理」,新增 OHPM 公钥,将 mykey.pub 的内容粘贴保存。

  • 配置私钥与发布码:在命令行中配置私钥路径和从官网获取的发布码(publish_id)。

    ohpm config set key_path ~/.ssh_ohpm/mykey
    ohpm config set publish_id your_publish_id

3. 创建 Library 模块与完善必备文件

  • 创建模块:在 DevEco Studio 中,通过 New > Module > Static Library 创建一个静态库模块。
  • 完善配置文件:确保模块级 oh-package.json5 包含必填字段(如 nameversionmainlicense),且所有直接依赖必须在模块内声明完整,不能依赖工程级配置。
  • 准备三个必备文件:在库模块根目录(与 src 同级)下,必须包含以下三个文件,且内容不能为空
    • README.md:包含包的介绍和引用方式。
    • CHANGELOG.md:填写版本更新记录。
    • LICENSE:真实的许可证全文(推荐 Apache-2.0)。

4. 编译打包 HAR

  • 选中 HAR 模块,通过 DevEco Studio 菜单栏执行 Build > Make Module <模块名>
  • 安全警告:请务必使用 Release 模式构建,避免使用 Debug 模式,因为 Debug 包中会含有源码,存在代码泄露风险。
  • 构建成功后,会在 build 目录下生成 .har 文件。

5. 发布与等待审核

  • 执行发布:在命令行中指定 .har 文件的具体路径进行发布。

    ohpm publish <HAR路径>

    执行后需输入生成密钥时设置的密码。

  • 等待审核:发布成功后,中心仓会发送“创建上架审核单成功”通知。审核通过后,会发送“审核通过”通知,此时其他开发者即可通过 ohpm install 安装使用。

一、 安全合规:闭源 SDK 的字节码打包与混淆

企业级闭源 SDK 在发布至 OHPM 时,必须采用字节码打包并开启代码混淆,以保护核心业务逻辑不被反编译。

  1. 构建模式与混淆:在 IDE 中将 Build Mode 调整为 release,并开启代码混淆。打包后的 oh-package.json5 中 "artifactType" 属性值应为 obfuscation
  2. 声明文件校验:闭源包必须确保 oh-package.json5 中 "types" 属性定义的声明文件(.d.ts 或 .d.ets)真实存在,否则发布时会被直接拦截报错。
  3. 自定义 License:闭源 SDK 需在根目录提供自定义的 LICENSE 文件,并将 oh-package.json5 中的 license 字段明确指定为 proprietary

二、 工程化校验:防驳回的字段与依赖隔离

OHPM 中心仓的审核机制极其严格,以下工程化细节是避免被驳回的关键:

  1. 包名规范:包名(name 字段)必须保证全局唯一,以小写字母开头,推荐采用 @group/packagename 标准格式。
  2. 依赖绝对隔离:HAR 模块的所有直接依赖必须在模块级的 oh-package.json5 中声明完整。严禁依赖工程级配置“补漏”,否则打包后会因找不到依赖而报错。
  3. 版本号递增与不可变性:一旦 name + version 组合审核通过,该版本号将被永久占用。即使后续执行 ohpm unpublish 下架,也无法再次使用。迭代必须严格递增版本号。
  4. 敏感信息脱敏:发布前务必通过 .ohpmignore 文件配置打包时要忽略的文件/文件夹,彻底清除私钥、密码、个人信息等敏感数据。

三、 自动化发布:CI/CD 流水线集成

在企业级 DevOps 流程中,发布不应依赖手动执行命令,而应集成到 CI/CD 流水线中。

# 1. 流水线环境初始化:配置私钥与发布码
# 注意:私钥密码和 publish_id 应通过 CI 平台的 Secret 环境变量注入
ohpm config set key_path $OHPM_PRIVATE_KEY_PATH
ohpm config set publish_id $OHPM_PUBLISH_ID

# 2. 执行自动化发布
# 支持通过命令行参数临时指定发布码或私钥路径,避免污染全局配置
ohpm publish ./build/default/outputs/default/my-library.har \
  --publish_id $OHPM_PUBLISH_ID \
  --key_path $OHPM_PRIVATE_KEY_PATH

四、 审核时效与状态追踪

  1. 响应时效:提交上传后,OHPM 中心仓审核人员将在 1 个工作日内响应并反馈审核结果。
  2. 状态监控:发布成功后,平台会发送“创建上架审核单成功”通知;审核通过后,可在【个人中心】-【Package】管理界面查看上架状态,并通过 ohpm install @org/lib_xxx 验证安装。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐