Openharmony开发用了系统级的权限,无法使用华为AGC中的证书,怎么解决?

Openharmony开发用了系统级的权限,无法使用华为AGC中的证书,怎么解决? 我在使用openharmony开发一款车机应用时,需要自己维护应用的更新升级,使用到了系统级的权限,因此无法使用华为AGC中的证书(在AGC中创建证书时,无法获取到系统级权限),但我的应用中使用了百度地图SDK,百度SDK要求通过证书获取AGC中APPID,所以我目前无法使用百度地图的许多功能,比如逆地理编码,也无法使用release证书进行上线分发,请问如何解决?

4 回复

楼主看一下这个:https://laval.csdn.net/user/discuss/69b1159754b52172bc6084dd,跟你的情况差不多。


在你申请dev和release证书的时候把你需要的系统权限也一起申请。申请成功就可以了。

OpenHarmony系统级权限与华为AGC证书不兼容,需使用OpenHarmony官方签名机制。在OpenHarmony应用开发中,系统级权限需要应用具备系统签名,而AGC证书仅适用于非系统应用。解决方案是使用OpenHarmony提供的系统签名工具对应用进行签名,具体操作需参考OpenHarmony官方文档中关于系统应用签名的章节。

在OpenHarmony上开发需要系统级权限的应用时,确实无法直接使用华为AGC(AppGallery Connect)平台自动生成的证书,因为AGC的证书机制与系统级权限不兼容。针对您的问题,解决方案如下:

1. 自行生成应用证书

  • 您需要使用OpenHarmony提供的命令行工具(如openharmony.pem)自行生成应用证书和私钥。
  • 生成证书后,在项目的build-profile.json5文件中配置证书路径,例如:
    "signingConfigs": [{
      "name": "default",
      "material": {
        "certpath": "path/to/your/certificate.pem",
        "storePassword": "your_password",
        "keyAlias": "your_key_alias",
        "keyPassword": "your_key_password",
        "profile": "path/to/your/agconnect-services.json",
        "signAlg": "SHA256withECDSA"
      }
    }]
    

2. 处理百度地图SDK的APPID依赖

  • 百度地图SDK依赖AGC的APPID,但系统级应用无法直接使用AGC证书。您可以尝试以下方式:
    • 联系百度地图团队:说明您正在开发OpenHarmony系统级应用,询问是否提供其他集成方式(如离线SDK或自定义配置)。
    • 模拟AGC环境:在代码中动态配置APPID(需确保百度SDK允许此方式)。例如,通过反射或条件编译注入APPID,但需注意合规性。
    • 使用其他地图服务:如果百度地图无法适配,可评估其他支持OpenHarmony或提供离线集成的地图服务(如高德地图OpenHarmony版本)。

3. 应用分发与签名

  • 自行生成的证书可用于应用签名和分发。在OpenHarmony生态中,系统级应用通常通过设备厂商或系统渠道分发,而非公共应用市场。
  • 若需上架华为应用市场,系统级权限应用可能受限,需与华为团队沟通特殊上架流程。

总结

核心矛盾在于系统级权限应用与AGC证书机制的冲突。建议优先通过自行签名解决基础功能,同时与百度地图团队协调SDK适配问题。如果百度地图无法提供支持,切换其他地图服务可能是更可行的方案。

回到顶部