項目中的簽名是jks格式,可是由于某個坑貨渠道后臺只能上傳keystore格式的簽名文件,所以要在不能更改簽名的前提下將jks格式轉(zhuǎn)換為keystore格式。
假設(shè)我們最初的簽名文件是original.jks,我們需要更改為original.keystore。首先我們需要一個模板簽名文件,然后先將jks轉(zhuǎn)為p12,再將p12導(dǎo)入到這個模板文件中即可。詳細過程如下:
1. 創(chuàng)建模板簽名
可以通過AS或者terminal來創(chuàng)建。下面是命令創(chuàng)建template.keystore
keytool -genkey -v -keystore template.keystore -alias myAlias -keyalg RSA -validity 10000 -keystore /Users/logan/template.keystore
為了便于對比更改前后的簽名文件信息,我們先查看原始簽名的證書指紋(MD5,SHA1,SHA256)
keytool -v -list -keystore /Users/logan/Documents/certificate/original.keystore
2. jks轉(zhuǎn)pkcs12
keytool -importkeystore -srckeystore /Users/logan/Documents/certificate/mygamez_fingersoft_hcr2_china_unicom.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore client.p12
3. pkcs12轉(zhuǎn)keystore
pkcs12是不能直接轉(zhuǎn)keystore的,網(wǎng)上很多說法都是錯誤的,我們需要將pkcs12導(dǎo)入到一個現(xiàn)有的keystore當中,
keytool -v -importkeystore -srckeystore /Users/logan/client.p12 -srcstoretype PKCS12 -destkeystore template.keystore -deststoretype JKS
這個命令會直接在現(xiàn)有的template.keystore上更改并自動覆蓋掉原來的問題件,所以新生成的簽名文件仍然叫template.keystore。
現(xiàn)在template.keystore的簽名應(yīng)該與original.jks的簽名信息是一樣的了。
可以通過以下命令來驗證
keytool -v -list -keystore /Users/logan/Documents/certificate/template.keystore
Done!