前提摘要:

 HarmonyOS的手动签名是什么?

手动签名是 HarmonyOS 应用在特定调试与发布场景的强制要求,核心用于保障安全可信、适配复杂开发需求与满足上架规范,同时实现密钥与权限的自主可控。

为什么要进行HarmonyOS的手动签名?

  1. 安全与可信基础签名通过数字证书与Profile文件验证应用身份与完整性,防止篡改、冒充与恶意注入;只有签名后的HAP才可在真机安装运行,系统以此管控权限与设备访问。

  2. 调试场景的强制要求

    • 跨设备 / 跨应用交互、断网调试、多开发者共享密钥。
    • 使用需审批的受限开放权限(如部分ACL权限)或华为业务方审核权限(如华为账号一键登录)。
    • Kit 需配置指纹、调用需证书校验的开放能力。
  3. 发布上架的硬性规范应用上架华为应用市场必须使用手动签名,通过 AGC 申请发布证书与发布 Profile,确保发布包的合法性与可追溯性,同时保障后续更新的签名一致性。

  4. 密钥与权限自主可控手动签名由开发者自行生成与管理密钥(.p12)、证书(.cer)与 Profile(.p7b),便于团队协作、权限精细化管理及离线场景下的打包与调试。

手动签名核心价值

  • 安全合规:满足 HarmonyOS 强制签名机制,保障应用来源可信与完整性,避免安装拦截。
  • 场景适配:覆盖自动签名无法支持的复杂调试与发布需求,确保功能正常验证与上架。
  • 自主可控:密钥与证书自主管理,适配团队协作、权限管控与离线开发流程。
  • 更新保障:发布签名一致,确保后续版本平滑更新,避免因签名变更导致更新失败。

手动签名和自动签名的关键性差异?

维度 自动签名 手动签名
适用场景 快速调试、基础权限、联网开发 复杂调试、受限权限、发布上架、断网 / 多团队
密钥管理 IDE/AGC 托管,开发者无密钥副本 开发者自主生成与保管密钥,可共享
权限范围 仅支持部分开放权限 支持所有权限(含需审批权限)
发布支持 不支持发布包签名 必须用于发布包签名
离线能力 依赖联网申请 Profile 可离线打包与调试

对于开发者想要将开发好的小程序等上架到华为应用市场,就必须牵扯到一个签名的问题。

以下是本人关于手动签名和部署到AGC平台的详细步骤。

一.DevEco Studio的generate key的创建

打开File->project structure->signing configs查看自己是否没有配置签名

确定无误后,打开上面栏目的build->generate key and CSR

点开new,在store file中创建自己喜欢的文件路径(本人建议将你目前准备开发和上架平台的项目根文件夹放在一块,方便以后的量化处理)

后面的系统要求命名的名字自己命名即可(或者也可以不写)

命名之后创建自己喜欢的密码password,下面是再次输入验证的password

点击OK之后退出,在下面Alias输入自己文件的别名,最后点击next即可

在CSR file的存储路径进行配置,然后点击完成

二.在AppGallery Connect(AGC)平台上进行项目的创建部署

上网点击AGC平台官网进入(AppGallery Connect),依次点击证书 app IDprofile(我的项目),APP ID,然后点击创建,然后在创建页面中输入自己的项目名称,创建好之后点击上面的添加应用

点击添加应用后,选择harmonyos平台,然后点进跳出来的APP ID,出现以下页面之后依次输入相关信息,之后点击下一步

然后再次点击确认

之后点击华为账号,关于下面的能力需要依据开发者实际的项目所包含的元素进行勾选(比如项目里含有地图功能的等等),之后再次点击确认退出

出现下面的页面有APPID显示的说明成功

然后点击证书进行创建

注意的是下面的CSR文件路径得选择之前已经创建好的文件夹里的(文件夹里面自动会有csr的项目文件),选择之后提交

证书出来之后要进行下载(为后面的相关部署做铺垫,建议依旧下载到创建好的文件夹里)

下面还要添加profile:

最下面的证书的路径就是要选择之前下载好的路径里

最下面的权限可申请也可以不申请。

退出之后点击下载(建议下载到创建好的文件夹里)

三.返回DevEco Studio进行手动签名和相关配置查询

点击project structure的signing configs(记得两个都要取消勾选,进行手动签名)

圈出来的三个都在之前创建好的路径里(p12,p7b,cer),password和文件夹名字把之前配置好的输进去就可以了,最后点击apply和ok

点开项目的app.json5可以查看自己的配置信息:

点开build_profile.json5查看手动签名详细信息:

(以上内容为本人的经验,如有错误将加以修正)

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐