Android集成微信分享功能应用签名生成方法及分享不生效的问题

通过友盟sdk集成微博、微信、qq等分享功能时,微博和qq很顺利,但在做微信集成时一直不成功。主要问题还是之前在微信开放平台申请创建移动应用时,对应用签名没有填写对,走了很多弯路现总结出来,加深记忆避免后继弯路。在这里微信开放平台的注册、移动应用的创建就不做说明了,需要注意的是提交申请后腾讯需要一周左右的时间进行审核,所以有着急上线的同学做好时间管理。
在说具体的签名生成之前,我们先看看为啥需要签名。
一、签名的理解
签名是Android系统要求的,签名对于每个应用相当于应用的标识,用签名来和开发者(或者发布应用的企业)建立联系。比如我们在生成签名时需要填写创建者、企业、所在的城市、国家等信息。一个App开发完成后如果没有签名,是不能在Android系统中发布运行的。在开发过程中如果我们不生成自己的签名Android studio会自动创建它,生成签名的秘钥默认在我们系统中的/Documents and Settings/用户名/.android/debug.keystore中。
二、生成签名的apk应用
1、创建.keystore文件
a、通过keytool生成,keytool是jdk自带的工具通过命令行进行创建
Android集成微信分享功能应用签名生成方法及分享不生效的问题
其中alias 是别名,validity是有效期,debugmy为文件名称
b、通过Android studio界面在创建签名apk时生成
Android集成微信分享功能应用签名生成方法及分享不生效的问题
Android集成微信分享功能应用签名生成方法及分享不生效的问题
2、生成签名的apk
可以通过Android studio 提供的界面功能生成,也可以通过keytool、jarsigner、zipalign(签名后apk的优化,不是必须)
通过Android studio的入口如下,过程不复杂,这里就不做赘述了。
Android集成微信分享功能应用签名生成方法及分享不生效的问题
三、在开发过程中使用自定义的keystore文件
build.gradle文件中添加如下代码,其中storeFile 为keystore的文件位置,本例子是直接放在app目录下的,可以根据情况指定具体目录。其它三个参数都是在生成keystore时输入的信息。
signingConfigs {
debug {
storeFile file('debugmy.keystore')
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
}
四、在手机或者模拟器中查看应用签名
在查看之前需要生成签名的apk并安装应用后,通过查看签名工具获得应用签名。签名工具可以去微信或者微博开放平台下载,需要输入包名,包名要和AndroidManifest.xml文件中的package相同。,界面如下
Android集成微信分享功能应用签名生成方法及分享不生效的问题
五、在微信开放平台上填写或者修改生成的签名
Android集成微信分享功能应用签名生成方法及分享不生效的问题
六、问题总结
博主是按照上述步骤一步步生成keystore文件、配置build.gradle文件、下载应用签名查看工具并在开放平台配置应用签名,但是最后调试阶段一直不成功,在反复确认appid、secret、应用签名都无误的情况也是不成功。后来在网上查了很多资料,也没有发现问题。最后怀疑是不是腾讯新的签名生效有时效?带着疑问去睡觉了,一觉醒来后打开手机通过微信分享居然成功。时效问题?也许吧,反正是成功了。