通過友盟sdk集成微博、微信、qq等分享功能時,微博和qq很順利,但在做微信集成時一直不成功。主要問題還是之前在微信開放平臺申請創建移動應用時,對應用簽名沒有填寫對,走了很多彎路現總結出來,加深記憶避免後繼彎路。在這裡微信開放平臺的註冊、移動應用的創建就不做說明瞭,需要註意的是提交申請後騰訊需要一周 ...
通過友盟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、應用簽名都無誤的情況也是不成功。後來在網上查了很多資料,也沒有發現問題。最後懷疑是不是騰訊新的簽名生效有時效?帶著疑問去睡覺了,一覺醒來後打開手機通過微信分享居然成功。時效問題?也許吧,反正是成功了。