HAP 可以直接在模擬器或者真機設備上運行,用于 HarmonyOS 應用開發(fā)階段的調試和查看運行效果。HAP 按構建類型和是否簽名可以分為以下四種形態(tài):
- 構建類型為 Debug 的 HAP (帶調試簽名信息):攜帶調試簽名信息,具備單步調試等調試手段的 HAP,用于開發(fā)者在真機或者模擬器中進行應用調試。
- 構建類型為 Debug 的 HAP (不帶簽名):不帶調試簽名信息,具備單步調試等調試手段的 HAP,僅能運行在模擬器中。
- 構建類型為 Release 的 HAP(帶調試簽名信息):攜帶調試簽名信息,不具備調試能力的 HAP,用于開發(fā)者在真機或者模擬器中查看和驗證應用運行效果。相對于 Debug 類型的 HAP 包,體積更小,運行效果與用戶實際體驗一致。
- 構建類型為 Release 的 HAP(不帶簽名):不帶調試簽名信息,不具備調試能力的 HAP,僅能運行在模擬器中查看和驗證應用運行效果。相對于 Debug 類型的 HAP 包,體積更小,運行效果與用戶實際體驗一致。
根據(jù) HarmonyOS 工程介紹,一個 HarmonyOS 工程下可以存在多個 Module,在編譯構建時,可以選擇對單個 Module 進行編譯構建;也可以對整個工程進行編譯構建,同時生成多個 HAP。
前提條件
構建類型為 Debug 的 HAP(帶調試簽名信息)
如果一個工程目錄下存在多個 Module,當對單個 Module 進行構建時,只需要對指定的 Module 進行簽名;如果對整個工程進行構建,則需要對所有的 Module 進行簽名。
- 打開 File>Project Structure,在 Modules>entry(模塊名稱)>Signing Configs > debug 窗口中,配置指定模塊的調試簽名信息。
- Store File:選擇密鑰庫文件,文件后綴為 .p12。
- Store Password:輸入密鑰庫密碼。
- Key Alias:輸入密鑰的別名信息。
- Key Password:輸入密鑰的密碼。
- SignAlg:簽名算法,固定為 SHA256withECDSA。
- Profile File:選擇申請的調試 Profile 文件,文件后綴為 .p7b。
- Certpath File:選擇申請的調試數(shù)字證書文件,文件后綴為 .cer。

- 在主菜單欄,點擊 Build > Build APP(s)/Hap(s) > Build Debug Hap(s),生成已簽名的 Debug HAP。

構建類型為 Debug 的 HAP(不帶簽名)
對于構建類型為 Debug 的 HAP,如果沒有配置簽名參數(shù),則默認不對 HAP 進行簽名,該方式生成的 HAP 僅能運行在模擬器上。
在主菜單欄,點擊 Build > Build APP(s)/Hap(s) > Build Debug Hap(s),生成不帶簽名的調試 Debug HAP。
構建類型為 Release 的 HAP(帶調試簽名信息)
如果一個工程目錄下存在多個 Module,當對單個 Module 進行構建時,只需要對指定的 Module 進行簽名;如果對整個工程進行構建,則需要對所有的 Module 進行簽名。
- 打開 File>Project Structure,在 Modules>entry(模塊名稱)>Signing Configs > release 窗口中 ,配置指定模塊的調試簽名信息。
- Store File:選擇密鑰庫文件,文件后綴為 .p12。
- Store Password:輸入密鑰庫密碼。
- Key Alias:輸入密鑰的別名信息。
- Key Password:輸入密鑰的密碼。
- SignAlg:簽名算法,固定為 SHA256withECDSA。
- Profile File:選擇申請的調試 Profile 文件,文件后綴為 .p7b。
- Certpath File:選擇申請的調試數(shù)字證書文件,文件后綴為 .cer。

- 在主菜單欄,點擊 Build > Build APP(s)/Hap(s) > Build Release Hap(s),生成已簽名的 Release HAP。

構建類型為 Release 的 HAP(不帶簽名)
對于構建類型為 Release 的 HAP,如果沒有配置簽名參數(shù),則默認不對 HAP 進行簽名,該方式生成的 HAP 僅能運行在模擬器上。
在主菜單欄,點擊 Build > Build APP(s)/Hap(s) > Build Release Hap(s),生成不帶簽名的調試 Release HAP。
更多建議: