背景
在給項目生成密鑰文件的時候發現出現了一個錯誤。
使用 android studio 填寫好相關信息後,最後生成密鑰時會報一個 Error,如下圖示:
- 報錯信息如下:
Key was created with errors:
Warning:
JKS 密鑰庫使用專用格式。建議使用 “keytool -importkeystore -srckeystore E:\android_key_store\fragment_demo.jks -destkeystore E:\android_key_store\fragment_demo.jks -deststoretype pkcs12” 遷移到行業標準格式 PKCS12。
- 分析
看錯誤提示,可以看到:因爲JKS密鑰庫使用專用格式,它建議我們生成密鑰的時候使用 keytool 命令來生成標準的密鑰文件,遷移到行業標準格式 PKCS12
解決問題
那麼我們使用 keytool 命令在 cmd 命令行工具中生成密鑰文件,在 cmd 命令窗口中輸入如下命令:
keytool -genkey -alias imxiaoqi -keypass imxiaoqi -keyalg RSA -keysize 1024 -validity 36500 -keystore E:\android_key_store\fragment_demo.keystore -storepass imxiaoqi
如下圖示:
上面的命令應該不難理解,就是你給密鑰文件設置的生成位置,key alias
、key password
和key store password
,回車後,需要繼續按照提示輸入相關信息,依次填寫好信息後,輸入 Y
確認信息即可。
我們看看生成的密鑰文件如下:
- 查看密鑰詳細輸出信息
輸入如下命令:
keytool -list -v -keystore E:\android_key_store\fragment_demo.keystore
如下圖示:
上面時生成的是 keystore 後綴的密鑰文件,至於 jks 後綴密鑰和 keystore 後綴密鑰文件的區別,同學們可以看文章 jks與keystore區別 簡單瞭解一下即可。
- 下面我們來生成 jks 後綴的密鑰文件
根據生成 keystore 後綴的密鑰文件命令,簡單修改命令如下所示:
keytool -genkey -alias imxiaoqi -keypass imxiaoqi -keyalg RSA -keysize 1024 -validity 36500 -keystore E:\android_key_store\fragment_demo_jks.jks -storepass imxiaoqi
可以看到這裏只對密鑰文件名稱和後綴作了修改,其他都是一樣的,各個參數的意思也是一樣的,如下圖示:
- 我們繼續看一下密鑰輸出信息,如下圖示:
到這裏我們就知道了怎麼使用 keytool 命令來生成 jks 後綴或者是 keystore 後綴的密鑰文件。
-
接下來重新選擇密鑰文件
-
選擇 build variants 生成簽名 apk
好了,這裏錯誤我們也解決了,也學會了 keytool 命令。
技術永不眠,我們下期見!