HarmonyOS應用如何打包HAP并安裝到真機
寫了一個HarmonyOS應用后最大的心愿就是把它安裝到真機上,或發送給其他的小伙伴安裝到真機上運行。想要在真機上運行,真的沒有Android那么簡單。難點主要體現在配置簽名及安裝上。
配置簽名需要簽名文件,而簽名文件必須經過華為官網才能生成。簽名區分調試簽名與正式簽名的,調試簽名文件需要指定設備,即指定哪幾個設備可以安裝此簽名的安裝包;正式的簽名文件不需要指定設備,但使用正式簽名打出的安裝包是不能直接安裝到真機上的,這個會在后面的安裝步驟介紹。而安裝包也并不能在設備上直接點擊安裝。
下面可以看一下如何將HarmonyOS應用打包并安裝到真機上。
一、配置簽名
配置簽名需要3個文件
- xxxx.p12 密鑰文件,可本地生成
- xxxx.p7b HAP Provision Profile文件,需要從華為應用網站 創建并下載
- xxxx.cer 數字證書,需要從華為應用網站 創建并下載
配置的代碼如下:
- debug {
- storeFile file('xxxx.p12')
- storePassword '***'
- keyAlias = 'debugKey'
- keyPassword '****'
- signAlg = 'SHA256withECDSA'
- profile file('xxxx.p7b')
- certpath file('xxxx.cer')
- }
1、通過DevEco自動配置簽名
使用此種配置方式只能配置調試簽名文件,且前提是要有一臺HarmonyOS系統的設備連接到電腦。需要設備連接是因為調試簽名文件需要指定設備。
a. 在AppGallery Connect 網站建項目
AppGallery Connect網站連接為:https://developer.huawei.com/consumer/cn/service/josp/agc/index.html 不用點擊或復制鏈接進入網站,可根據使用真機調試文檔的指引進入。如下圖的紅框1,點擊進入即可。

這里需要特別注意,不能直接從“我的應用”圖標進入,直接創建應用。從“我的應用”進入創建不了HarmonyOS應用。只能從“我的項目”進入,創建項目后再創建HarmonyOS應用。

b. 在新建項目里創建HarmonyOS應用
創建HarmonyOS時選擇項目左側菜單的HarmonyOS應用進行創建,如下圖:

c. 自動填充簽名信息
完成以上兩步可以再根據使用真機調試文檔里的介紹進行處理即可。需要注意的是一定要在此界面勾選自動填充,即下圖的“Automatically generate singing”選項,在網站創建應用后,回到此彈窗,點擊下方的重試按鈕或重新進入此頁面,都會自動填充簽名信息的。

2、手動配置簽名
手動配置主要有以下3步,具體的可參考應用發布文檔,流程主要為以下4步
a. 創建密鑰文件(.p12文件)和證書請求文件(.csr文件)
b. 申請證書文件(.cer文件)
c. 申請HAP Provision Profile文件(.p7b文件)
d. 手動配置簽名信息
二、打包
使用gradle命令或直接在gradle面板執行打包任務即可。生成的hap文件位于build/outputs/hap/release/目錄下。注意,這里示意的為打release包,若打發debug包,把release換成debug即可。
1、使用gralde命令打包
- ./gradlew entry:assembleRelease
2、使用gradle面板打包
打開DevEco Studio右上方的gradle面板,選擇assembleRelease,雙擊運行即可。

三、安裝
目前測試發現只能安裝Debug包,且只能通過hdc命令進行安裝。使用發布證書打包出來的release安裝包,安裝時會提示以下錯誤信息,也就是設備不信任你的安裝包,即使你的證書上在華為官網申請的也不行,可能是必須得上架到應用市場才可以吧。
- Failure[INSTALL_FAILED_APP_SOURCE_NOT_TRUSTED]
將hap復制到手機上手,不能像Android程序一樣,點擊安裝包進行安裝,系統不識別這種文件格式,會彈窗提示讓選擇打開的程序,如果選擇“應用”,則提示“解析安裝包失敗”,這個提示很像是Android系統彈出的,而且選擇打開的程序彈窗也像是Android系統的彈窗。使用hdc安裝hap的命令為
- hdc app install xxx.hap


四、總結
打包hap及安裝到手機的流程與Android沒有太大區別,而異同點主要體現在流程中的生成簽名文件和安裝上。
生成簽名文件
- 簽名文件必須經過華為認證
- 使用調試簽名文件簽名的安裝包只能安裝到指定的設備
- 使用正式簽名文件簽名的安裝包不能直接安裝到真機,需要發布到應用市場才行
- 簽名文件不能共用,每個應用都需要配置一個簽名文件
安裝
- 安裝包不能手動點擊安裝,只能通過hdc app install 或進入shell后使用bm install進行安裝