轉載地址:http://blog.yanzhenjie.com
Android調試大法之自定義IDE默認簽名文件,你是否為調試第三方SDK時debug簽名和release簽名發生沖突而煩惱?你是否在debug時第三方功能測試通過,而release時無法使用?
如果你沒有遇到我說的問題,那么我舉幾個例子。
- 微信支付、微信登錄、微信分享,debug時調試通過,release時調不起微信?
- 如果你沒做過,你可以看這篇文章微信登錄、微信分享教程。
- 百度地圖、高德地圖,要不停的切換debug簽名、release簽名的hash值很麻煩?
- …
上面的這些問題歸根結底原因是我們開發的時候直接運行,使用的是默認的debug.keystore
這個簽名文件,而我們打包后正式環境用的是我們自定義的xxx.keystore
、xxx.jks
等簽名文件,兩個文件的hash值不同。
而一般第三方的SDK都是通過識別我們應用的包名和簽名的hash來判斷是否在他們平台注冊過,是否是官方正版應用等,如果驗證不通過,自然不能調起第三方的的app了。
今天的文章內容不多,只需要3分鍾就可以看完,同時保證可以解決上述因為簽名引起的問題。
解決問題的原理
原理就是把我們正式的簽名文件的keystore
密碼、alias
、alias
密碼都修改成與Android
默認簽名debug.keystore
的相同,並且在Eclipse
、AndroidStudio
中指定我們默認debug
簽名文件路徑,此時當我們直接運行項目時ide將直接用我們指定的這個簽名文件,此時我們debug
時的簽名和正式發布的簽名一致了,所以在調試的時候什么微信、第三方支付都不存在簽名錯誤等雲雲。(重點:簽名文件和密碼沒有關系!!! 需要去了解簽名的原理)
Android默認簽名文件debug.keystore
的keystore密碼、alias、alias密碼分別是:
- keystore密碼:
android
- alias:
androiddebugkey
- alias密碼:
android
所以接下來修改正式簽名的這個三個屬性。
修改keystore密碼 alias alias密碼
特別注意:修改簽名文件密碼、alias、alias密碼相當於破壞了這個文件,所以我們修改的時候一定要copy一個簽名文件出來,然后修改這個copy出來的文件的上述三個屬性。
准備:進入debug.keystore 當前目錄下(mac,Windows一樣):
1: 修改keystore
密碼: keytool -storepasswd -keystore debug.keystore
2: 修改keystore
的alias: keytool -changealias -keystore debug.keystore -alias demokey.keystore -destalias androiddebugkey
3: 修改alias
的密碼: keytool -keypasswd -keystore debug.keystore -alias androiddebugkey
完成!
備注相關信息都是我本地的。
個人開發者如果想體驗微信登錄功能,有一個變通的版本,就是用 ShareSDK 里面帶的appid 和key,來做你的測試 :)