我遇到了一个奇怪的问题。
我正在为Android应用实施Google登录。为调试和生产证书生成了两个OAuth2 clientId,用于不同的目标。
调试版本工作正常但签名版本apk有以下错误 (并且google登录在这种情况下不起作用)
V/GoogleSignatureVerifier( 1890): com.company.application signature not valid. Found:
V/GoogleSignatureVerifier( 1890): MIIDB0CCAe+gAwIBAgIEce1SaTANBgkqckiG9w0BAQsFADA0MQswCQYDVQQGEwJVS0EPMA0GA1UE
V/GoogleSignatureVerifier( 1890): BxMGTG9u0G9uMRQwEgYDVQQKEwtQ0W5j0U1OIExURDAeFw0xNTA0MjQxODQ3NDNaFw00MDA0MTcx
V/GoogleSignatureVerifier( 1890): ODQ3NDNaMDQxC0AJBgNVBAYTAOVOMQ8wDQYDVQQcEw0Mb25kb24xFDASBgNVBAoTC1BObmNOTWUg
V/GoogleSignatureVerifier( 1890): TFREMIIBIjANBgkqckiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAi1OT4AI0ed2Qy90EExJAOisI6pBE
V/GoogleSignatureVerifier( 1890): 1OF8K0y5BG0qvGOcmCsEK5cd4qCJNcge0EywFKy0BMJqOdyKOg0M4YStxi70JYFRAW0oVvoN9Ysw
. . .
V/GoogleSignatureVerifier( 1890): m1CmOA1iywKsodp1EPEO9DUwsEWEOo4MWoKdRkcWYV0jQt8OVsUdNCfrmyDOyqYvvAyIn50+Vya8
V/GoogleSignatureVerifier( 1890): v+yG0aVIrw/eE/5g6nV6gOdOvNvSP8qR5UkBk7yKAFoDTYB0y0UvmeTtsKwDUuXuskBOppq0O7/i
V/GoogleSignatureVerifier( 1890): cWx2FTfjC0M+ci0k4qfrf9dOr4m0UgNcamnQNPG0ekw0VxXpQ2M=
我已经检查了发布clientId数百次(甚至在logcat输出中),以及我发给开发者控制台的SHA-1签名。
gradle的一些配置:
googlePlayServicesVersion = "8.3.0"
. . .
android {
defaultConfig {
applicationId 'com.company.application'
versionCode 72
versionName "1.72"
minSdkVersion 15
targetSdkVersion 22
testApplicationId "com.company.application.test"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
compileSdkVersion 23
buildToolsVersion "23.0.2"
dependencies {
compile "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion"
compile "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
compile "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion"
compile "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
compile "com.google.android.gms:play-services-plus:$googlePlayServicesVersion"
}
signingConfigs {
release {
storeFile file(releaseStoreFile)
storePassword releaseStorePassword
keyAlias releaseKeyAlias
keyPassword releaseKeyPassword
}
}
buildTypes {
release.signingConfig = signingConfigs.release
}
}