如果新應(yīng)用需要使用應(yīng)用簽名服務(wù),可以選擇由AGC創(chuàng)建并管理新的簽名密鑰,也可以選擇由您自行上傳簽名密鑰。不管使用哪種方式,AGC將保證您簽名密鑰的安全。
前提條件
已參考創(chuàng)建應(yīng)用在AGC中創(chuàng)建了您的應(yīng)用。
已簽署應(yīng)用簽名服務(wù)協(xié)議。
選擇應(yīng)用簽名管理方式
對(duì)于新應(yīng)用,AGC提供的兩種應(yīng)用簽名管理方式均可選擇。
1.登錄AppGallery Connect,選擇“我的應(yīng)用”。
2.點(diǎn)擊需要簽名的應(yīng)用,進(jìn)入“分發(fā)”頁簽,選擇“服務(wù)>應(yīng)用簽名”。
3.根據(jù)最終發(fā)布給用戶的APK是否使用您自己的簽名密鑰,選擇相應(yīng)的簽名方式。
注意:
如果您已經(jīng)使用了應(yīng)用簽名服務(wù),則此處將提示此應(yīng)用已加入應(yīng)用簽名計(jì)劃。
選擇“讓AG Connect創(chuàng)建并管理我的應(yīng)用簽名密鑰”,AGC會(huì)為您生成新的簽名密鑰,并使用新的簽名密鑰對(duì)您的應(yīng)用重新簽名。后續(xù)您升級(jí)應(yīng)用時(shí)只需使用上傳密鑰對(duì)更新的應(yīng)用軟件包進(jìn)行簽名,再將應(yīng)用軟件包提交發(fā)布即可。新應(yīng)用推薦使用此方式,詳細(xì)操作參見選擇由AGC創(chuàng)建簽名密鑰。
注意:
如果您已經(jīng)上傳了軟件包,此選項(xiàng)將不展示。如果您希望使用此方式,建議您重新創(chuàng)建應(yīng)用。
為了保證簽名密鑰的安全性,AGC不支持查看或?qū)С鲂律傻暮灻荑€,但支持導(dǎo)出簽名密鑰的密鑰證書。如果您想在多個(gè)應(yīng)用商店使用同一個(gè)簽名密鑰,或者與第三方對(duì)接時(shí)需要通過簽名密鑰進(jìn)行簽名驗(yàn)證,請(qǐng)不要選擇此方式。
選擇“導(dǎo)出并上傳密鑰和證書”,AGC會(huì)使用您自己上傳的簽名密鑰對(duì)應(yīng)用重新簽名,后續(xù)升級(jí)應(yīng)用時(shí)您只需使用應(yīng)用的上傳密鑰對(duì)更新的應(yīng)用軟件包進(jìn)行簽名,再將應(yīng)用軟件包提交發(fā)布即可。詳細(xì)操作參見選擇自行上傳簽名密鑰。
選擇由AGC創(chuàng)建簽名密鑰
如果您在選擇簽名管理方式時(shí)選擇“讓AG Connect創(chuàng)建并管理我的應(yīng)用簽名密鑰”,您需要將上傳密鑰的密鑰證書提交到AGC。
1.生成用于軟件包簽名的上傳密鑰。此步驟為Android通用步驟,由您自行完成。
2.使用如下命令,為新生成的上傳密鑰導(dǎo)出證書(PEM格式)。
命令中斜體加粗的內(nèi)容需替換為實(shí)際的值,其中upload-keystore.jks為上傳密鑰所在的簽名文件,upload為簽名文件的別名,upload_certificate.pem為導(dǎo)出的上傳密鑰的密鑰證書。
$keytool-export-rfc-keystore upload-keystore.jks-alias upload-file upload_certificate.pem
3.點(diǎn)擊“瀏覽”選擇生成的密鑰證書。
4.點(diǎn)擊右上角的“提交”將密鑰證書提交至AGC。
5.使用上傳密鑰對(duì)應(yīng)用軟件包進(jìn)行簽名,并上傳軟件包到AGC。
上傳軟件包后AGC會(huì)執(zhí)行重簽名,需要消耗幾分鐘時(shí)間,請(qǐng)耐心等待。
6.配置重簽名后的證書指紋。
重簽名生成的證書指紋可能不同于您開發(fā)應(yīng)用時(shí)本地生成的簽名證書指紋。如您的應(yīng)用當(dāng)前集成的華為相關(guān)服務(wù)需依賴SHA256證書指紋,您還需為應(yīng)用添加重簽名后的SHA256證書指紋,具體請(qǐng)參見配置重新生成的證書指紋。
7.將應(yīng)用發(fā)布信息補(bǔ)充完整,發(fā)布應(yīng)用。
選擇自行上傳簽名密鑰
如果您在選擇簽名管理方式時(shí)選擇“導(dǎo)出并上傳密鑰和證書”,您需要使用PEPK工具生成包含簽名密鑰的zip文件,并將zip文件上傳到AGC。為了更高的安全性,您還可以提交上傳密鑰的密鑰證書,建議您使用不同于簽名密鑰的上傳密鑰。如果不上傳,則您需要使用您提交的簽名密鑰作為上傳密鑰。
1.生成包含簽名密鑰的簽名文件。此步驟為Android通用步驟,由您自行完成。
2.通過網(wǎng)絡(luò)或其他合法途徑獲取PEPK工具(pepk.jar)。
3.使用PEPK工具將包含簽名密鑰的簽名文件導(dǎo)出為zip文件。
命令中斜體加粗的內(nèi)容需替換為實(shí)際的值,其中test.jks為簽名密鑰的簽名文件,test為簽名文件的別名,output.zip為輸出的zip文件名。
java-jar pepk.jar--keystore test.jks--alias test--output=output.zip--encryptionkey=034200041E224EE22B45D19B23DB91BA9F52DE0A06513E03A5821409B34976FDE
ED6E0A47DBA48CC249DD93734A6C5D9A0F43461F9E140F278A5D2860846C2CF5D2C3C02--include-cert
4.點(diǎn)擊“瀏覽”選擇zip文件。
說明:
以下步驟5~7為可選步驟,為了更高的安全性,您如果需要使用不同于簽名密鑰的上傳密鑰,可以手動(dòng)上傳您新生成的上傳密鑰。
5.生成不同于簽名密鑰的上傳密鑰。
6.使用如下命令,為新生成的上傳密鑰導(dǎo)出密鑰證書(PEM格式)。
命令中斜體加粗的內(nèi)容需替換為實(shí)際的值,其中upload-keystore.jks為上傳密鑰所在的簽名文件,upload為簽名文件的別名,upload_certificate.pem為導(dǎo)出的上傳密鑰的密鑰證書。
$keytool-export-rfc-keystore upload-keystore.jks-alias upload-file upload_certificate.pem
7.點(diǎn)擊“展開”,再點(diǎn)擊“瀏覽”選擇上傳密鑰的密鑰證書。
8.點(diǎn)擊右上角的“提交”將相關(guān)文件提交至AGC。
AGC會(huì)按如下順序?qū)ι蟼鞯暮灻荑€進(jìn)行校驗(yàn),校驗(yàn)通過才可成功提交。
校驗(yàn)AGC是否支持簽名密鑰的加密算法和密鑰長(zhǎng)度。如果不支持,則提示“上傳的應(yīng)用簽名密鑰系統(tǒng)暫不支持,請(qǐng)重新上傳。”
AGC支持的加密算法和密鑰長(zhǎng)度詳見使用限制。
校驗(yàn)簽名密鑰是否為配對(duì)的公私鑰。如果公私鑰不匹配,則提示“上傳的應(yīng)用簽名密鑰驗(yàn)證錯(cuò)誤,請(qǐng)重新上傳”。
9.使用上傳密鑰對(duì)應(yīng)用軟件包簽名,并上傳軟件包到AGC。如果沒有上傳新的上傳密鑰,則使用簽名密鑰對(duì)軟件包簽名。
上傳軟件包后AGC會(huì)執(zhí)行重簽名,需要消耗幾分鐘時(shí)間,請(qǐng)耐心等待。
10.配置重簽名后的證書指紋。
重簽名生成的證書指紋可能不同于您開發(fā)應(yīng)用時(shí)本地生成的簽名證書指紋。如您的應(yīng)用當(dāng)前集成的華為相關(guān)服務(wù)需依賴SHA256證書指紋,您還需為應(yīng)用添加重簽名后的SHA256證書指紋,具體請(qǐng)參見配置重新生成的證書指紋。
11.將應(yīng)用發(fā)布信息補(bǔ)充完整,發(fā)布應(yīng)用。