SDK是要在wantu.taobao.com生成的。而生成這個SDK其實是要上傳一個apk,而這個上傳其實就是取他的簽名而已。驗證就是那張yw222那張圖片。重點是你上傳的apk的簽名是不是跟你的生成的SDK里面的yw222一致。。。
1.run--->出現驗證圖片不一致
2.再build文件夾里面的outputs/apk里面找到apk
3.用這個apk生成ONESDK
4.用這個one里面的安全圖片替換掉你當前的安全圖片。
問題解決
最近發現很多人對於安卓簽名驗證這回事還是理解得不是特別清楚。寫個文章避免多次回復。首先我們搞清楚幾個問題
Q:debug key 和release key的區別。
A:如果用Eclipse的話,debug key是我們直接run走的key.當然是可以改變的,一般不改變的話默認windows路徑在C:\Users\Administrator\.android下的debug.keystore.而release key就是我們自己使用export指定的keystore.
如果用android studio 或者idea intellij的話,我們指定build.gradle就可以了。給個sample :
signingConfigs {
debug {
storeFile file("keystore")
storePassword "123456"
keyAlias "123456"
keyPassword "123456"
}
release {
storeFile file("keystore")
storePassword "123456"
keyAlias "123456"
keyPassword "123456"
}
}
Q:不管是微信,還是最近的百川,還是其他各個平台的鑒權機制原理都是一樣的,都是對應簽名和appkey.今天我說下百川的鑒權
A:阿里百川是阿里巴巴自己做的一套自己的開發平台,里面接入了很多開放的能力,對於開發者來講只需要接入百川就可以接入大部分的能力,比如淘寶的商品,高德的地圖,還有IM,還有多媒體,包括短視頻拍攝SDK(最近集成的,很強大,而且免費)。
百川的機制是這樣的:百川平台將從上傳的包內提取簽名,包名等信息,並加密存儲到下載 SDK 中的安全圖片。SDK 啟動時會校驗當前 apk 和圖片中的簽名信息,以避免發布的安裝包被惡意篡改。另外,請注意如下事項:
1)因為只提取安裝包的簽名以及包名信息,所以上傳時對安裝包的內容沒有任何要求。
2)請確保后續開發中用於 apk 簽名的 keystore 和上傳 apk 所使用的保持一致
3)如開發過程中或最終發布應用時需要切換其他 keystore,請上傳使用新 keystore 簽名的 apk 重新生成 SDK,並拷貝下載 SDK 中新的安全圖片 ( res/drawable/yw_1222.jpg) 並替換掉當前開發工程中相同位置的同名文件。
所以非常理解清楚debug.key和release key非常重要,因為你export的apk生成對了圖片,然后也替換了。但是你還是直接run的。但是你走的還是debug key。這樣當然會出問題。
Q:使用release key作為debug key:
A:復制 your.keystore -> release.keystore
之后在cmd里面執行下面命令,密碼替換為你自己的密碼
keytool -changealias -storepass 密碼 -keystore release.keystore
-alias safecampus -destalias androiddebugkey
keytool -keypasswd -storepass 密碼 -keystore release.keystore
-keypass 密碼 -alias androiddebugkey -new android
keytool -storepasswd -storepass 密碼 -keystore release.keystore
-new android
eclipse選擇debug key:
Preferences -> Android -> Build -> Custom debug keystore