问题现象
动态共享包是否支持发布?是否支持源码发布?如何引用发布后的动态共享包?
背景知识
HSP(Harmony Shared Package)是动态共享包,包含代码、C++库、资源和配置文件,通过HSP可以实现代码和资源的共享。HSP不支持独立发布上架,而是跟随宿主应用的APP包一起发布,与宿主应用同进程,具有相同的包名和生命周期。
- 应用内HSP:在编译过程中与应用包名(bundleName)强耦合,只能给某个特定的应用使用。
- 集成态HSP:构建、发布过程中,不与特定的应用包名耦合;使用时,工具链支持自动将集成态HSP的包名替换成宿主应用包名,并且会重新签名生成一个新的HSP包,作为宿主应用的安装包,这个新的HSP也属于宿主应用HAP的应用内HSP。
解决方案
- OpenHarmony三方库中心仓仅支持HAR共享包发布,不支持HSP共享包发布,如需在应用内共享HSP,从ohpm命令行工具1.3.0版本和ohpm-repo私仓1.1.0版本开始,可将HSP共享包以.tgz文件形式发布到ohpm-repo。
- HSP不支持源码发布,仅支持以.tgz文件形式发布到ohpm-repo。无法直接从私仓的HSP中拿到源码,HAR有源码模式,可以使用源码模式进行调试开发,参考源码HAR。
- 动态共享包HSP包不能直接发布在ohpm-repo内,需要以.tgz文件形式发布共享,以发布集成态HSP为例参考如下步骤: