HarmonyOS鸿蒙Next中如何不暴露文件打包编译的har包来制作sdk
HarmonyOS鸿蒙Next中如何不暴露文件打包编译的har包来制作sdk 【问题描述】:需要自己制作sdk 但是编译的har包会暴露很多不想暴露的文件 这个有办法不暴露吗
【问题现象】:6需求问题
【版本信息】:6.0;api20
可以在打包的时候配置 build-profile.json5里面的
"buildOption": {
"strictMode": {
"useNormalizedOHMUrl": true
}
}
useNormalizedOHMUrl为true,试试;打出来的打包都是加密过的,看看是否符合你的要求
更多关于HarmonyOS鸿蒙Next中如何不暴露文件打包编译的har包来制作sdk的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HAR可以作为二方库和三方库提供给其他应用使用,如果需要对代码资产进行保护,建议开启混淆。
混淆能力开启后,DevEco Studio在构建HAR时,会对代码进行编译、混淆及压缩处理,保护代码资产。
HAR模块原先默认开启混淆能力,会对API 10及以上的HAR模块,且编译模块为release时,自动进行简单的代码混淆;从DevEco Studio 5.0.3.600开始,新建工程默认关闭代码混淆功能,可以在HAR模块的build-profile.json5文件中的ruleOptions字段下的enable进行开启混淆,详情请见代码混淆,配置如下所示:
{
"apiType": "stageMode",
"buildOption": {
},
"buildOptionSet": [
{
"name": "release",
"arkOptions": {
"obfuscation": {
"ruleOptions": {
"enable": true,
"files": [
"./obfuscation-rules.txt"
]
},
"consumerFiles": [
"./consumer-rules.txt"
]
}
}
},
],
"targets": [
{
"name": "default"
}
]
}
参考地址
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/har-package#编译
打包的时候配置 build-profile.json5里面的
"buildOption": {
"strictMode": {
"useNormalizedOHMUrl": true
}
}
useNormalizedOHMUrl为true,试试;打出来的包都是加密过的,看看是否符合你的要求

在HarmonyOS Next中,可通过创建HAR(Harmony Ability Resources)包来封装SDK,不暴露源码。使用DevEco Studio创建Library模块,编写API接口与实现。在模块的oh-package.json5中配置"type": "har",并正确声明导出的接口。编译后生成.har文件,其他项目依赖此HAR包即可调用其接口,内部文件不会暴露。
在HarmonyOS Next中,若需制作SDK且不希望har包暴露内部文件,可通过以下方式实现:
-
使用
oh-package.json5的exports字段进行条件导出
在模块的oh-package.json5中配置exports,可精确控制对外暴露的接口与文件。将需要公开的接口在exports中声明,未声明的内部文件将不会包含在最终har包中。{ "exports": { ".": "./src/main/ets/index.ets", "./utils": "./src/main/ets/utils/Util.ets" } } -
分离公共接口与内部实现
将SDK的公共接口声明(如.d.ets文件)与具体实现分离。在exports中仅指向接口声明文件,实现文件可置于其他目录且不在exports中引用。 -
利用ArkTS的访问控制修饰符
在代码中使用private或internal修饰符限制类、方法的可见性,避免内部实现被外部访问。 -
构建配置优化
在模块的build-profile.json5中,可检查并排除无需打包的资源文件(如测试代码、配置文件等),减少har包内容。
通过以上方法,可在提供必要功能接口的同时,有效隐藏SDK内部实现细节与文件结构。

