一、前言
一起学鸿蒙,我是入坑小助手。
本次我为大家分享的是HaromonyOS集成HMS Core遇到的问题。(包含部分真机签名获取和集成HMS Core服务的流程)
作为想要同时学习HarmonyOS和HMS Core的小白,在集成服务这里又一次成功入坑。
入坑前经历
在入坑之前,我还是个对HarmonyOS\HMS Core只有初步了解的小白菜。
第一次入坑:以失败告终(我告诉自己应该是某个环节出了问题,理顺思路重新再来)
第二次入坑前一秒:应该可以的,这次理顺思路应该就行了。
二、在入坑道路上一去不复返
1.新建工程
首先创建一个Java的新工程
随后“Finish”进入工程。
进入工程后,我们可以打开AppGallery Connect进行签名以及HMS Core相关服务集成。
2.AppGallery Connect配置
在此页面点击"我的项目",并且如下"添加项目"
项目中还没有应用,我们先添加应用,具体参数自己设置即可,但应用包名尽量和创建工程时设置的包名保持一致。
完成以上步骤,我们返回DevEco-studio进行下一步操作。
以下就是我的入坑点了!
3.工程配置并成功入坑
点击“Build”中如下图选项,进行Key store file(.p12文件)的生成。(注:后缀一定要设为.p12)
下面是创建“p12”文件步骤
创建成功后,就需要我们进行导入并生成.csr文件,操作如下:
完成以上操作后,点击“完成”即可。(以上步骤几乎与获取真机签名部分步骤一致)
又继续对照HMS core相关服务中的“开发准备->配置AppGallery Connect”指南来进行SHA256指纹的获取。细心的小伙伴会发现,配置指南中给出的是要去用到jks文件来获取SHA256指纹,但经过了这么多步骤并没有得到任何一个jks文件。只能打开终端硬着头皮试一下是否能用“keytool -list -v -keystore ···”命令来打开我们的csr文件或p12文件,结果想必大家都知道了。
4.坑底挣扎
作为一个小白,发现上面的方法不可行,于是抱着试探的心理开始了新一轮的“挣扎”。回想Android集成HMS Core的流程(集成scene kit服务):
先这样
再这样
然而,我的结果却是:
虽然这样
却是这样
三、艰难出坑
于是又开始了漫长的“搜索”过程,有些解答中说要发送到windows电脑然后通过命令获取SHA256,有些说现在HMS Core还无法适配HarmonyOS。后来终于在官方文档找到了已经开放HarmonyOS集成的Map服务配置教程。
看到这里,作为小白的我才知道前面的命令是可以打开p12文件的。再次去尝试命令:(经过反复核对分析终于看到了自己之前给自己挖的坑🤦♂️)
从图中我们看得出来,依然是没有运行出来的。但没有经验的入门者谁会去注意想到“路径存在空格导致错误”这一点呢?又对文件夹进行重命名,终于运行出如下结果:
终于能看出,图中蓝色部分也就是我们需要的SHA256证书指纹,将其复制到AppGallery Connect项目中相应位置即可,如下图:
将SHA256证书指纹复制进去并保存后,点击“API管理”,并开启“地图服务”(通过前面查询,我们知道目前Map服务已经适配了Harmony,我们后面就以Map服务为例进行操作),开启后回到之前的“常规”页面下载“agconnect-services.json”文件
再后面,按照Map服务官方指南来做就可以了!以下就是我从坑里爬上来的运行结果了!(基于Map服务示例代码的运行结果)
四、总结建议
最后,再给大家一个建议🥰,在开发之前一定要分析好实施的可行性,比如我们想要集成的HMS Core服务,有些服务目前还暂未支持HarmonyOS开发,就需要我们自己去提前判断出正确方向才能避坑前行。
我是“入坑小助手”,让我们一起携手前进,珍爱发际线。