1# 集成态HSP
2
3集成态HSP是应用内HSP的一种中间编译产物,目的就是解决使用方的bundleName和签名之间的强耦合问题。
4> **说明:**
5> HSP只能给bundleName一样的项目使用,集成态HSP可以给不同的bundleName的工程集成使用。
6
7## 使用场景
8集团内部有多个应用,多个应用中都有一个相同的动态共享包。为了节约开发成本,实现代码和资源的共享,多个应用可以共享一个基建HSP(集成态HSP)。
9
10## 约束限制
11- 集成态HSP只支持[Stage模型](application-package-structure-stage.md)。
12- 集成态HSP需要API12及以上版本,需要在工程级的[build-profile.json5文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/ide-hvigor-build-profile-V13#section511142752919)中,将useNormalizedOHMUrl字段设置为true。
13
14## 开发使用说明
151. 创建方-集成态HSP-工程配置:集成态HSP需要在工程级的build-profile.json5文件中,将useNormalizedOHMUrl字段设置为true。
16
17    ```json
18    // created_party_project/build-profile.json5
19    {
20      "app": {
21        "products": [
22          {
23            "name": "default",
24            "signingConfig": "default",
25            "compatibleSdkVersion": "5.0.0(12)",
26            "runtimeOS": "HarmonyOS",
27            "buildOption": {
28              "strictMode": {
29                "useNormalizedOHMUrl": true
30              }
31            }
32            // ...
33          }
34        ]
35        // ...
36      }
37    }
38    ```
392. 创建方-集成态HSP-模块配置:修改模块级构建配置文件build-profile.json5,设置配置项integratedHsp为true,指定构建的HSP模块为集成态HSP。
40
41    ```json
42    // created_party_project/library/build-profile.json5
43    {
44      "apiType": "stageMode",
45      "buildOption": {
46        "arkOptions": {
47          "integratedHsp": true
48        }
49      }
50    }
51    ```
52
533. 创建方-集成态HSP-打包配置(tgz包)。
54
55    (1) 配置项目签名信息,详见[应用/服务签名](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-signing-V5)56
57    (2) 配置release模式;
58
59    ![](./figures/ide-release-setting.png)
60
61    (3) 选择library目录,Build -> Make Module 'libray'。
62
634. 使用方-创建目录拷贝文件,在entry目录下新建libs目录,将集成态打包产物tgz包拷贝到libs目录下。
64
655. 使用方-工程依赖配置:使用方主模块下oh-package.json5配置文件中添加依赖。
66
67    ```json
68    // user_project/entry/oh-package.json5
69      "dependencies": {
70        "hsp": "./libs/library-default.tgz"
71      }
72    ```
73
746. 使用方-工程配置:集成态HSP需要在工程级的build-profile.json5文件中,将useNormalizedOHMUrl字段设置为true。
75    ```json
76    // user_project/build-profile.json5
77    {
78      "app": {
79        "products": [
80          {
81            "name": "default",
82            "signingConfig": "default",
83            "compatibleSdkVersion": "5.0.0(12)",
84            "runtimeOS": "HarmonyOS",
85            "buildOption": {
86              "strictMode": {
87                "useNormalizedOHMUrl": true
88              }
89            }
90          }
91        ]
92      }
93    }
94    ```
95    > **说明:**
96    > 安装运行应用前,使用方工程必须配置项目签名信息,详见[应用/服务签名](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-signing-V5)