最近在開(kāi)發(fā)基于uniapp框架的app戳寸,到了打包發(fā)布的階段陈瘦,來(lái)嘗試打包為安卓安裝包胸梆。在用HBuild打包的時(shí)候需要提供安卓的數(shù)字證書(shū)(.keystore 文件), 用于表明開(kāi)發(fā)者的身份计维。需要在本地生成安卓證書(shū)后才能打包龄章。
我們需要本機(jī)有JRE(Java Runtime Environment)環(huán)境吃谣。我們需要安裝Java SE。下載對(duì)應(yīng)系統(tǒng)的文件做裙,我這里下載的是jdk-16.0.1_osx-x64_bin.dmg岗憋,然后開(kāi)始安裝。
安裝好后進(jìn)入目錄:
cd /Library/Java/JavaVirtualMachines/jdk-23.jdk/Contents/Home/bin
然后使用簽名工具keytool開(kāi)始生成證書(shū):
keytool -genkey -v -alias 證書(shū)別名 -keyalg RSA -keysize 2048 -validity 36500 -keystore /Users/zhuangyuan/Downloads/證書(shū)名字.keystore
注意zhuangyuan你要改成你MAC機(jī)子上的用戶(hù)賬戶(hù)名锚贱;證書(shū)別名 和 證書(shū)名字 替換成你的證書(shū)名字(用英文字母)
Enter keystore password: //輸入證書(shū)文件密碼仔戈,輸入完成回車(chē)
Re-enter new password: //再次輸入證書(shū)文件密碼,輸入完成回車(chē)
What is your first and last name?
[Unknown]: //輸入名字和姓氏惋鸥,輸入完成回車(chē)
What is the name of your organizational unit?
[Unknown]: //輸入組織單位名稱(chēng)杂穷,輸入完成回車(chē)
What is the name of your organization?
[Unknown]: //輸入組織名稱(chēng),輸入完成回車(chē)
What is the name of your City or Locality?
[Unknown]: //輸入城市或區(qū)域名稱(chēng)卦绣,輸入完成回車(chē)
What is the name of your State or Province?
[Unknown]: //輸入省/市/自治區(qū)名稱(chēng)耐量,輸入完成回車(chē)
What is the two-letter country code for this unit?
[Unknown]: //輸入國(guó)家/地區(qū)代號(hào)(兩個(gè)字母),中國(guó)為CN滤港,輸入完成回車(chē)
Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?
[no]: //確認(rèn)上面輸入的內(nèi)容是否正確廊蜒,輸入y,回車(chē)
然后在生成的過(guò)程中需要記得你設(shè)置證書(shū)的密鑰口令溅漾,然后其他的就是輸入個(gè)人信息即可山叮。生成后去對(duì)應(yīng)的位置可以找到證書(shū)文件:證書(shū)名字.keystore
然后在HBuild里面選擇發(fā)行 -> 原生app云打包,在出現(xiàn)的彈框中選擇我們前面生成的證書(shū)添履,填入證書(shū)別名和密鑰口令:
但出現(xiàn)紅色錯(cuò)誤提示:證書(shū)文件不是有效的keystore文件Fň蟆!暮胧!
百度后解決方法需要更改密鑰庫(kù)類(lèi)型為JKS:
keytool -importkeystore -srckeystore /Users/zhuangyuan/Downloads/證書(shū)名字.keystore -destkeystore /Users/zhuangyuan/Downloads/證書(shū)名字.keystore -deststoretype JKS
回車(chē)后需要輸入你最設(shè)置的密鑰口令锐借,再回車(chē)就成功了问麸。
用更改后的開(kāi)始安卓打包,順利可行钞翔。
使用 jdk 中自帶的 keytool 工具严卖,查看證書(shū)信息命令: keytool -list -v -keystore {路徑及名稱(chēng)}.keystore
輸入證書(shū)口令后,可以查看證書(shū)指紋:SHA1布轿、SHA256
華為應(yīng)用市場(chǎng)要求打包sing.zip文件哮笆,MAC機(jī)沒(méi)必要拷貝pepk.jar和證書(shū)文件到j(luò)ava下的bin目錄,用全路徑一樣汰扭。
java -jar /全路徑/pepk.jar --keystore /全路徑/****.keystore --alias ****** --output=/全路徑/sign.zip --encryptionkey=034200041E224EE22B45D19B23DB91BA9F52DE0A06513E03A5821409B34976FDEED6E0A47DBA48CC249DD93734A6C5D9A0F43461F9E140F278A5D2860846C2CF5D2C3C02 --include-cert