通過友盟sdk集成微博、微信、qq等分享功能時,微博和qq很順利,但在做微信集成時一直不成功。主要問題還是之前在微信開放平台申請創建移動應用時,對應用簽名沒有填寫對,走了很多彎路現總結出來,加深記憶避免后繼彎路。在這里微信開放平台的注冊、移動應用的創建就不做說明了,需要注意的是提交申請后騰訊需要一周左右的時間進行審核,所以有着急上線的同學做好時間管理。
在說具體的簽名生成之前,我們先看看為啥需要簽名。
一、簽名的理解
簽名是Android系統要求的,簽名對於每個應用相當於應用的標識,用簽名來和開發者(或者發布應用的企業)建立聯系。比如我們在生成簽名時需要填寫創建者、企業、所在的城市、國家等信息。一個App開發完成后如果沒有簽名,是不能在Android系統中發布運行的。在開發過程中如果我們不生成自己的簽名Android studio會自動創建它,生成簽名的秘鑰默認在我們系統中的/Documents and Settings/用戶名/.android/debug.keystore中。
二、生成簽名的apk應用
1、創建.keystore文件
a、通過keytool生成,keytool是jdk自帶的工具通過命令行進行創建

其中alias 是別名,validity是有效期,debugmy為文件名稱
b、通過Android studio界面在創建簽名apk時生成


2、生成簽名的apk
可以通過Android studio 提供的界面功能生成,也可以通過keytool、jarsigner、zipalign(簽名后apk的優化,不是必須)
通過Android studio的入口如下,過程不復雜,這里就不做贅述了。

三、在開發過程中使用自定義的keystore文件
在build.gradle文件中添加如下代碼,其中storeFile 為keystore的文件位置,本例子是直接放在app目錄下的,可以根據情況指定具體目錄。其它三個參數都是在生成keystore時輸入的信息。
signingConfigs {
debug {
storeFile file(
'debugmy.keystore')
storePassword
"android"
keyAlias
"androiddebugkey"
keyPassword
"android"
}
}
四、在手機或者模擬器中查看應用簽名
在查看之前需要生成簽名的apk並安裝應用后,通過查看簽名工具獲得應用簽名。簽名工具可以去微信或者微博開放平台下載,需要輸入包名,包名要和AndroidManifest.xml文件中的package相同。,界面如下

五、在微信開放平台上填寫或者修改生成的簽名

六、問題總結
博主是按照上述步驟一步步生成keystore文件、配置build.gradle文件、下載應用簽名查看工具並在開放平台配置應用簽名,但是最后調試階段一直不成功,在反復確認appid、secret、應用簽名都無誤的情況也是不成功。后來在網上查了很多資料,也沒有發現問題。最后懷疑是不是騰訊新的簽名生效有時效?帶着疑問去睡覺了,一覺醒來后打開手機通過微信分享居然成功。時效問題?也許吧,反正是成功了。