【鸿蒙】解决三方(使用方)app引入开发的Hsp包,报错9568329

问题描述:

在开发完HSP包后打包成.tgz给使用方app使用,但是在自测正常引入demo时,报错9568329。
在这里插入图片描述


原因分析:

根据官方文档分析,HSP只能给bundleName一样的项目使用。通俗说在HSP编译时,把bundleName等主工程信息一起编译进module.json里了。通过查看编译后的oh_modules.json5可以验证这一言论。


解决方案:

集成态HSP:集成态HSP是应用内HSP的一种中间编译产物,目的就是解决使用方的bundleName和签名强耦合性。

根据官方文档,使用集成态HSP编译,可以解决bundleName与Hsp强耦合。

具体步骤:

  • 开发方

    1. 修改工程级build-profile.json5,设置配置项useNormalizedOHMUrltrue,指定工程使用标准化的OHMUrl格式。
    {
      "app": {
        "products": {
          "name": "default",
          "signingConfig": "default",
          "compatibleSdkVersion": "5.0.0(12)",
          "runtimeOS": "HarmonyOS",
          "buildOption": {
            "strictMode": {
              "useNormalizedOHMUrl": true
            }
          }
        }
      }
    }
    
    1. 修改HSPbuild-profile.json5,设置配置项integratedHsptrue,指定构建的HSP模块为集成态HSP。
    {
      "apiType": "stageMode",
      "buildOption": {
        "arkOptions": {
          "integratedHsp": true
        }
      }
    }
    
    1. 打包(tgz包)
      设置release打包模式:
      在这里插入图片描述
      打包: 选择library目录,Build -> Make Module ‘libray’。
  • 使用方

    1. 添加依赖
    "dependencies": {
        "hsp": "./lib/library-default.tgz"
      }
    
    1. 修改工程级build-profile.json5,设置配置项useNormalizedOHMUrltrue,指定工程使用标准化的OHMUrl格式。
    {
      "app": {
        "products": {
          "name": "default",
          "signingConfig": "default",
          "compatibleSdkVersion": "5.0.0(12)",
          "runtimeOS": "HarmonyOS",
          "buildOption": {
            "strictMode": {
              "useNormalizedOHMUrl": true
            }
          }
        }
      }
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值