OpenHarmony 實(shí)戰(zhàn)開(kāi)發(fā)——應(yīng)用HAP包簽名

背景

OpenAtom OpenHarmony(以下簡(jiǎn)稱“OpenHarmony”)應(yīng)用如果需要對(duì)外發(fā)布就必須要通過(guò)應(yīng)用簽名,DevEco Studio已提供自動(dòng)簽名功能加速應(yīng)用開(kāi)發(fā),但自動(dòng)簽名僅限于debug開(kāi)發(fā),如需對(duì)外發(fā)布則必須完成release簽名。

在OpenHarmony中有AGC應(yīng)用商店可以幫助開(kāi)發(fā)者完成release簽名,本文將介紹OpenHarmony應(yīng)用簽名方法的步驟,將使用OpenHarmony官方提供的簽名工具對(duì)HAP進(jìn)行簽名。

使用DevEco Studio完成HAP自動(dòng)簽名

打開(kāi)DevEco Studio工具,點(diǎn)擊右上角Project Structure進(jìn)入工程配置頁(yè)面

點(diǎn)擊Project -> Signing Configs,勾選Automatically generate signing,點(diǎn)擊OK

點(diǎn)擊Build -> Rebuild Project 或 Build HAP都可以編譯構(gòu)建HAP包

編輯構(gòu)建完成后我們可以得到未簽名的HAP包

這個(gè)包可以用于Debug調(diào)試,但不能用于Release正式發(fā)布

IDE對(duì)HAP包簽名的密碼限制

從理論上講,我們也可以通過(guò)DevEco Studio進(jìn)行HAP包的發(fā)布簽名,但是官方提供的OpenHarmony.p12文件密碼為123456

而IDE不支持使用123456這樣的簡(jiǎn)單的密碼,它達(dá)不到密碼安全級(jí)別

因此,使用官方加密文件完成簽名暫時(shí)行不通

我們改變思路,使用命令行方式完成簽名,這樣可以繞過(guò)IDE的限制

使用官方開(kāi)源簽名工具完成簽名

查閱官方資料發(fā)現(xiàn),官方已經(jīng)提供了命令行簽名工具

https://gitee.com/openharmony/developtools_hapsigner

我們通過(guò)修改配置文件、執(zhí)行腳本,即可完成HAP簽名

具體步驟如下:

1 安裝工具依賴環(huán)境

安裝python3.10(下載鏈接:https://www.python.org/downloads/),通過(guò)命令行驗(yàn)證安裝是否成功

安裝jdk,配置好環(huán)境變量,通過(guò)命令行驗(yàn)證安裝是否成功

2 將簽名工具代碼拉取到本地保存,修改配置文件

git clone https://gitee.com/openharmony/developtools_HAPsigner.git

修改developtools_HAPsigner\autosign\signHAP.config文件配置

# config.signtool改為HAP-sign-tool.jar的絕對(duì)路徑,可以在dist目錄中找到config.signtool=E:/openharmony/developtools_HAPsigner/dist/HAP-sign-tool.jar

# common.keystoreFile改為OpenHarmony.p12的絕對(duì)路徑,可以在dist目錄中找到common.keystoreFile=E:/openharmony/developtools_HAPsigner/dist/OpenHarmony.p12

# app.keypair.keyAlias改為OpenHarmony Application

Releaseapp.keypair.keyAlias=OpenHarmony Application Release

# cert.app.outFile改為OpenHarmonyApplication.pem的絕對(duì)路徑,可以在dist目錄中找到cert.app.outFile=E:/openharmony/developtools_HAPsigner/dist/OpenHarmonyApplication.pem

# sign.profile.outFile改為官方提供的p7b絕對(duì)路徑,比如launcher代碼中提供了launcher.p7b加密文件

sign.profile.outFile=E:/openharmony/signfiles/launcher/launcher.p7b

# sign.app.inFile為未簽名HAP路徑

sign.app.inFile=E:/openharmony/applications_launcher/product/phone/build/default/outputs/default/phone-launcher-default-unsigned.HAP

# sign.app.outFile為簽名后的HAP保存路徑

sign.app.outFile=E:/openharmony/applications_launcher/product/phone/build/default/outputs/default/phone-launcher-signed.HAP

3 完成配置文件修改后,執(zhí)行簽名腳本

# 進(jìn)入簽名工具autosign目錄

cd E:\openharmony\developtools_HAPsigner\autosign

# 執(zhí)行python腳本

python .\autosign.py signHAP

簽名成功后顯示Success

到指定目錄下可以找到簽名后的HAP

總結(jié)

DevEco Studio開(kāi)發(fā)工具為開(kāi)發(fā)人員提供了非常友好的HAP自動(dòng)簽名功能及非常便捷的Debug包。由于IDE的安全密碼要求,對(duì)于Release包的發(fā)布我們暫時(shí)需要手動(dòng)簽名,尤其是系統(tǒng)級(jí)的應(yīng)用。

寫(xiě)在最后

  • 如果你覺(jué)得這篇內(nèi)容對(duì)你還蠻有幫助,我想邀請(qǐng)你幫我三個(gè)小忙:
  • 點(diǎn)贊,轉(zhuǎn)發(fā),有你們的 『點(diǎn)贊和評(píng)論』,才是我創(chuàng)造的動(dòng)力。
  • 關(guān)注小編,同時(shí)可以期待后續(xù)文章ing??,不定期分享原創(chuàng)知識(shí)。
  • 想要獲取更多完整鴻蒙最新學(xué)習(xí)知識(shí)點(diǎn),請(qǐng)移步前往小編:https://gitee.com/MNxiaona/733GH/blob/master/jianshu
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容