这个问题是我在配置QQ第三方登陆时遇到的,QQ第三方登陆如果上传正式发布包到腾讯应用宝,也就是正式版的签名,测试三方登陆时也只能用正式签名测试,对于开发者来说,实在太痛苦了,因为开发者做测试都是运行起来都是在debug模式下,签名也是debug模式下的签名。腾讯开放平台有一个应用调试者QQ号测试,不知道是不是填写了开发者的QQ号之后就可以用正式版的签名做第三方登陆测试了,每次我点击添加,结果就这样提醒我。
微信第三方登陆,平台还可以修改签名,就可以很好地解决这个问题。
这里,教大家一个方法,在debug模式下配置正式包签名。以后测试QQ等第三方登陆就没问题啦。
在build.gradle,注意是app的build.gradle里的android{ }里按下面配置代码。
signingConfigs里配置了2个签名,一个正式版的签名和一个debug模式的签名。
其中keyAlias是签名的别名,keyPassword是签名密码,storeFile file是签名文件所在文件夹位置,我这里是放在和app同级目录下。
在defaultConfig和buildTypes做如下配置就可以了,大功告成。
- signingConfigs {
- release {
- keyAlias '###'
- keyPassword '******'
- storeFile file('../###.jks')
- storePassword '******'
- }
- config {
- keyAlias 'androiddebugkey'
- keyPassword 'android'
- storeFile file('./debug.keystore')
- storePassword 'android'
- }
- }
-
- defaultConfig {
- applicationId "******" //包名
- minSdkVersion 14
- targetSdkVersion 23
- versionCode 9
- versionName "1.9"
- signingConfig signingConfigs.release
- }
-
-
- //配置debug模式下,使用正式版签名,此操作主要为了方便调试微信,新浪等第三方登录授权
- buildTypes {
- release {
- minifyEnabled true
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- debuggable true
- signingConfig signingConfigs.release
- }
- debug {
- signingConfig signingConfigs.release
- }
- }
有时候项目需要开源,build.gradle文件就公开了,正式签名的信息也就公开了,签名信息泄露是一件很不安全的事情。为了做好信息保密,我们还可以做如下配置,保证签名信息的安全。重新修改签名信息配置signingConfigs如下,其中的RELEASE_KEY_ALIAS,RELEASE_KEY_PASSWORD等签名信息存储在gradle.properties里面。
- RELEASE_KEY_PASSWORD=****** //签名密码
- RELEASE_KEY_ALIAS=****** //签名别名
- RELEASE_STORE_PASSWORD=****** //store密码
- RELEASE_STORE_FILE=***.jks //签名文件地址
- signingConfigs {
- release {
- keyAlias RELEASE_KEY_ALIAS
- keyPassword RELEASE_KEY_PASSWORD
- storeFile file(RELEASE_STORE_FILE)
- storePassword RELEASE_STORE_PASSWORD
- }
- config {
- keyAlias 'androiddebugkey'
- keyPassword 'android'
- storeFile file('./debug.keystore')
- storePassword 'android'
- }
- }