背景
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
