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