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

需要填寫的內容
問題
這裡的應用簽名是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開發者們能有所幫幫助,如果有疑問大家可以留言交流。
Android實現將應用崩潰信息發送給開發者並重啟應用的方法
本文實例講述了Android實現將應用崩潰信息發送給開發者並重啟應用的方法。分享給大家供大家參考,具體如下:在開發過程中,雖然經過測試,但在發布後,在廣大用戶各種各樣的運
Android 6.0 運行時權限管理最佳實踐
這是一篇遲來的博客,Android M已經發布一年多了(6.0的變化),在Android M中權限系統被重新設計,發生了顛覆性的變化,很多人把握不好這個變化,一是對這個權
Android架構分析之Handler分析(一)
本文介紹了一個使用Handler的Android應用程序,通過該程序,我們可以了解Handler的基本用法。該程序運行效果如下: 點擊But
Android監聽網絡變化
最近在做APP,需要監聽Android手機網絡的變化情況,同時對不同的情況做出不同的響應策略,這裡有兩種方法。判斷聯網工具類這裡我使用的是ConnectivityMan