前言
最近遇到一個項目的應用要上微信登錄,大家都知道微信登錄是需要開放平臺上申請的,在微信開發平臺創建移動應用后,需要填寫:

需要填寫的內容
問題
這里的應用簽名是keystore的證書的md5,但是微信的這個只有一個填寫輸入框,不像百度地圖、高德地圖那樣,有線上的SHA1和開發調試的SHA1兩種,那這就糾結了,在開發運行的時候AS IDE默認使用的簽名keystore是系統的 debug.keystore,系統的和自己項目線上的keystore的MD5、SHA1肯定是不一樣的,那么問題來了,要怎么統一用線上的,又不影響開發調試。
解決方案
既然不能同時使用線上和系統debug的keystore,那我們就使用同一個,只要確保MD5、SHA1一致就ok了,微信上我們繼續使用線上的MD5,百度地圖、高端地圖等第三方的一些服務把線上和開發調試的SHA1都使用線上keystore的:
命令行進入線上keystore的文件所在目錄,然后輸入如下命令,即可查看簽名。
keytool -list -v -keystore app-release.jks
復制一份線上的keystore文件在同一個文件夾下:

修改這個keystore文件的別名alias,改成androiddebugkey(系統的debug.keystore的別名就是這個,如果不是這個別名,調試運行的時候會編譯不通過,提示需要使用這樣的alias),使用如下命令來修改:
keytool -changealias -keystore ishopping-debug.jks -alias ishopping -destalias androiddebugkey
-alias后面是原來的別名, -destalias后面是新的別名,記住一定要用androiddebugkey作為別名。
修改調試用keystore的storepasswd和keypasswd的口令為“android”(也需要和系統的debug.keystore的一樣都使用這個口令),使用如下命令來修改:
// 修改密鑰口令keytool -keypasswd -keystore ishopping-debug.jks -alias androiddebugkey// 修改密鑰庫口令keytool -storepasswd -keystore ishopping-debug.jks
每一行命令,后都需要輸入原有的密鑰庫和密鑰口令,然后再輸入新的口令:

修改口令
然后使用開頭的查看簽名MD5和SHA1的命令來查看新的調試開發用的keystore文件,看看簽名是不是和線上的一樣。
最后在gradle里面配置:
signingConfigs { release { // 此處是相對路徑,可以在module app下新建一個key文件夾把keystore文件拷貝進去 storeFile file('key/ishopping.jks') } debug { storeFile file('key/ishopping-debug.jks') }}buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } debug { signingConfig signingConfigs.debug }}配置完后,重新同步gradle,然后重新構建工程,點擊Android Studio菜單欄Build -- Rebuild Project,新的證書才會生效。(只要是替換修改簽名證書,都需要重新構建工程)
總結
以上就是這篇文章的全部內容了,希望本文的內容對各位Android開發者們能有所幫幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答