HarmonyOS鸿蒙Next中ohpm分发平台,build-profile.json5如何同时兼容HarmonyOS和OpenHarmony
HarmonyOS鸿蒙Next中ohpm分发平台,build-profile.json5如何同时兼容HarmonyOS和OpenHarmony 在这个配置文件里,有这样一个字段:
{
instancePath: 'app.products[0].runtimeOS',
keyword: 'enum',
params: { allowedValues: [ 'HarmonyOS', 'OpenHarmony' ] },
message: 'must be equal to one of the allowed values',
location: 'E:/BqLog/build/lib/ohos/harmonyOS/build-profile.json5:10:23'
}
他只能是HarmonyOS或者OpenHarmony二选一。 事实上我的包二进制上我试了,对于OpenHarmony和HarmonyOS API Level 10和以上都是兼容的。
但是打包成har,这个字段却无法兼容两种系统。 我需要把包上传到ohpm的分发平台上面去,上面只能传一个har包,如何保证两个系统都能从ohpm上获取包的分发呢
更多关于HarmonyOS鸿蒙Next中ohpm分发平台,build-profile.json5如何同时兼容HarmonyOS和OpenHarmony的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个点更像是“包元数据约束”,不是二进制兼容性问题。build-profile.json5 里的 runtimeOS 当前就是单值枚举,所以一个 HAR 的元数据不能同时声明 HarmonyOS 和 OpenHarmony。也就是说:源码层面你可以尽量写兼容代码,但分发层面通常还是要分别产出两套制品,或者至少两套构建配置。若一定走 ohpm 单包分发,当前公开配置里我没见到“一包双声明”的写法,建议改成双 pipeline / 双产物,并在 README 或版本说明里标注各自适用平台。
更多关于HarmonyOS鸿蒙Next中ohpm分发平台,build-profile.json5如何同时兼容HarmonyOS和OpenHarmony的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
感谢,我觉得这一块ohpm和har确实有进步空间。 不过我目前实测,发HarmonyOS的上去,OpenHarmony也能下载试用,应该是目前校验还不严格。
学习了
HarmonyOS 不是兼容 OpenHarmony 吗
二进制确实兼容,但是这个配置确实不一样。
在build-profile.json5中,通过设置"targetPlatform": ["HarmonyOS", "OpenHarmony"]可实现双平台兼容。若需区分不同模块,可在app或module层级分别配置targetPlatform字段,确保ohpm包元数据包含两个平台标识。


