【鸿蒙实战开发】HarmonyOS申请调试签名证书过程

30 篇文章 0 订阅
30 篇文章 0 订阅

因为项目中需要用到地图服务,所以不得不申请签名证书,过程太繁琐做个笔记,也方便大家参考。
开发设备:MacOS(M)
DevEco-Studio版本:5.0.3.400

签名基本概念

●密钥:包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,格式为.p12,公钥和私钥对用于数字签名和验证。
●证书请求文件:格式为.csr,全称为Certificate Signing Request,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向AppGallery Connect申请数字证书。
●数字证书:格式为.cer,由华为AppGallery Connect颁发。
●Profile文件:格式为.p7b,包含HarmonyOS应用/服务的包名、数字证书信息、描述应用/服务允许申请的证书权限列表,以及允许应用/服务调试的设备列表(如果应用/服务类型为Release类型,则设备列表为空)等内容,每个应用/服务包中均必须包含一个Profile文件。

手动签名步骤

手动签名共配置四个证书文件:

1.在 DevEco Studio 工具侧生成密钥(.p12)和证书请求文件(.csr)。
2.在 AppGallery Connect 侧申请应用证书(.cer)、Profile(.p7b)文件。

生成密钥和证书请求文件 .p12 和 .csr

官方文档
1、在主菜单栏单击 Build(构建) > Generate Key and CSR(生成私钥和证书请求文件)
在这里插入图片描述

2、在新打开页面中点击New

在这里插入图片描述

●注意!!!,一定要记住这个Password(我就是因为没记住又来了一遍)
●文件名是自定义的,后缀.p12
在这里插入图片描述

●OK
●下一步这个Alias也要记住,最好记个文本,后续要用
●只填必填项点Next会出错,应该是版本问题,以后会好吧
在这里插入图片描述

●Next
●这一步需要填csr文件路径和文件名,注意后缀.csr就行了
在这里插入图片描述

●Finish

在这里插入图片描述

●确认

3、到这一步就是用DevEco-Studio生成了密钥和证书请求文件,去刚才选择的路径可以看见.p12和.csr就对了
在这里插入图片描述

AppGallery Connect侧申请应用证书(.cer)。

●开发者账号需要实名认证
●每个账号最多申请2个调试证书(开发阶段)
●证书格式为.cer,包含公钥、证书指纹等信息

1、登录AppGallery Connect,点申请发布/调试证书
在这里插入图片描述

2、点新增,这可能会有之前用DevEco-Studio默认生成的证书,不用管。
在这里插入图片描述

3、在‘新增证书’窗口填写证书信息,点提交
在这里插入图片描述

●证书名称:不超过100个字符,随意。
●证书类型:选择“调试证书”。
●选取证书请求文件(CSR): 选择本地 .csr 文件,就是之前生成的那个。

4、证书申请成功后,“证书管理”页面展示证书名称等信息。点击“下载”,将生成的证书保存至本地,供后续签名使用。
在这里插入图片描述

AGC 创建HarmonyOS应用申请调试Profile .p7b

.p7b包含HarmonyOS应用/元服务的包名、数字证书信息、应用/元服务允许申请的证书权限列表,以及允许应用/元服务调试的设备列表(如果应用/元服务类型为Release类型,则设备列表为空)等内容。每个应用/元服务包中均必须包含一个Profile文件。
1、登录AppGallery Connect,点我的应用 -> 新增
在这里插入图片描述

这要注意确保应用名称的唯一性,与项目中app.json5配置文件中的bundleName一致
在这里插入图片描述

确认2、点击我的项目,打开在步骤1中新建的项目,打开会有补充包名的弹窗
在这里插入图片描述

我这选的是手工输入,与项目中app.json5配置文件中的bundleName一致(应该可以自定义,不知道后续有啥影响)
在这里插入图片描述

在我的项目页面中,选择“HarmonyOS应用 > HAP Provision Profile管理”,进入“管理HAP Provision Profile”页面,点击右上角“添加
在这里插入图片描述

在弹出的“HarmonyAppProvision信息”窗口添加调试Profile,完成后点击“提交”
在这里插入图片描述

●名称:不超过100个字符,任意。
●类型:选择“调试”。
●选择证书:选择一个调试证书
●选择设备:选择一个或多个调试设备(列表中是当前账号登录过的设备,包括模拟器)

3、调试Profile申请成功后,“管理HAP Provision Profile”页面展示Profile信息。点击“下载”,将生成的Profile保存至本地,供后续签名使用。
在这里插入图片描述

配置签名信息

回到DevEco-Studio配置签名信息,选择自己刚才生成的文件,忘了密码的同学再来一遍。
在这里插入图片描述

查看签名信息是否成功
1、登录AppGallery Connect平台,在“我的项目”中选择目标应用,获取“项目设置 > 常规 > 应用”的Client ID。
在这里插入图片描述

2、添加公钥指纹
在这里插入图片描述

3、在工程中entry模块的 module.json5 文件中,新增 metadata,配置name为client_id,value为上一步获取的Client ID的值
在这里插入图片描述

4、登录AppGallery Connect网站,选择“我的项目”,选择目标项目,点击API管理。
在这里插入图片描述

找到地图开关,打开开关
在这里插入图片描述

5、运行官方地图示例

import { AsyncCallback } from '@kit.BasicServicesKit';
import { map, mapCommon, MapComponent } from '@kit.MapKit';

@Entry
@Component
struct HuaweiMapDemo {
  private TAG = "HuaweiMapDemo";
  private mapOption?: mapCommon.MapOptions;
  private callback?: AsyncCallback<map.MapComponentController>;
  private mapController?: map.MapComponentController;

  aboutToAppear(): void {
    // 地图初始化参数,设置地图中心点坐标及层级
    this.mapOption = {
      position: {
        target: {
          latitude: 39.9,
          longitude: 116.4
        },
        zoom: 10
      }
    };

    // 地图初始化的回调
    this.callback = async (err, mapController) => {
      if (!err) {
        // 获取地图的控制器类,用来操作地图
        this.mapController = mapController;
        this.mapController.on("mapLoad", () => {
          console.info(this.TAG, `on-mapLoad`);
        });
      }
    };
  }

  build() {
    Stack() {
      // 调用MapComponent组件初始化地图
      MapComponent({ mapOptions: this.mapOption, mapCallback: this.callback })
        .width('100%')
        .height('100%');
    }
    .height('100%')
  }
}

打开虚拟机运行结果
在这里插入图片描述

案例地图渲染出来,签名应该是没问题了。。。

写在最后

●如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我两个小忙:
●点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
●关注小编,同时可以期待后续文章ing ,不定期分享原创知识。

在这里插入图片描述

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值