OpenHarmony應(yīng)用Hap包簽名
??想了解更多關(guān)于開源的內(nèi)容,請訪問:??
背景
OpenHarmony應(yīng)用如果需要對外發(fā)布就必須要通過應(yīng)用簽名,DevEco Studio已提供自動簽名功能加速應(yīng)用開發(fā),但自動簽名僅限于debug開發(fā),需要對外發(fā)布則必須完成release簽名。
在HarmonyOS中有AGC應(yīng)用商店可以幫助開發(fā)者完成release簽名,但是OH就沒有這么方便了,本文將介紹OH應(yīng)用簽名方法步驟,將使用OH官方提供的簽名工具對Hap進(jìn)行簽名。
使用DevEco Studio完成Hap自動簽名
打開DevEco Studio工具,點(diǎn)擊右上角 Project Structure 進(jìn)入工程配置頁面。
點(diǎn)擊Project -> Signing Configs,勾選Automatically generate signing,點(diǎn)擊 OK。
點(diǎn)擊Build -> Rebuild Project 或 Build Hap 都可以編譯構(gòu)建Hap包。
編輯構(gòu)建完成后我們可以得到未簽名的hap包。
這個包可以用于Debug調(diào)試,但不能用于Release正式發(fā)布。
IDE對Hap包簽名的密碼限制
從理論上講,我們也可以通過DevEco Studio進(jìn)行Hap包的發(fā)布簽名,但是官方提供的OpenHarmony.p12文件密碼為123456。
而IDE不支持使用 123456 這樣的簡單的密碼,它達(dá)不到密碼安全級別。
因此,使用官方加密文件完成簽名暫時行不通。
我們改變思路,使用命令行方式完成簽名,這樣可以繞過IDE的限制。
使用官方開源簽名工具完成簽名
查閱官方資料發(fā)現(xiàn),官方已經(jīng)提供了命令行簽名工具 developtools_hapsigner,https://gitee.com/openharmony/developtools_hapsigner。
我們通過修改配置文件、執(zhí)行腳本,即可完成Hap簽名。
具體步驟如下:
1、安裝工具依賴環(huán)境
安裝python3.10 (下載鏈接:https://www.python.org/downloads/),通過命令行驗(yàn)證安裝是否成功。
安裝jdk,配置好環(huán)境變量,通過命令行驗(yàn)證安裝是否成功。
2、將簽名工具代碼拉取到本地保存,修改配置文件
修改developtools_hapsigner\autosign\signHap.config文件配置
# config.signtool 改為 hap-sign-tool.jar 的絕對路徑,可以在 dist 目錄中找到
config.signtool=E:/openharmony/developtools_hapsigner/dist/hap-sign-tool.jar
# common.keystoreFile 改為 OpenHarmony.p12 的絕對路徑,可以在 dist 目錄中找到
common.keystoreFile=E:/openharmony/developtools_hapsigner/dist/OpenHarmony.p12
# app.keypair.keyAlias 改為 OpenHarmony Application Release
app.keypair.keyAlias=OpenHarmony Application Release
# cert.app.outFile 改為 OpenHarmonyApplication.pem 的絕對路徑,可以在 dist 目錄中找到
cert.app.outFile=E:/openharmony/developtools_hapsigner/dist/OpenHarmonyApplication.pem
# sign.profile.outFile 改為 官方提供的p7b絕對路徑,比如 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開發(fā)工具為開發(fā)人員提供了非常友好的hap自動簽名功能,以及非常便捷的Debug包發(fā)布。
由于IDE的安全密碼要求,對于Release包的發(fā)布我們暫時需要手動簽名,尤其是系統(tǒng)級的應(yīng)用。
我們可以利用官方提供的簽名工具較為容易的完成release包簽名,后續(xù)可以自行開發(fā)GUI工具進(jìn)一步提升簽名效率。