在Play商店中发布后,Google身份验证无效

时间:2018-06-03 08:44:10

标签: android firebase firebase-authentication

将应用上传到Google Play后,Google手机身份验证无效。以下是我在logcat中遇到的错误。

  

此应用无权使用Firebase身份验证。请验证Firebase控制台中是否配置了正确的程序包名称和SHA-1。

我在堆栈溢出时读到的大多数答案都说明" SHA1键对于签名的apk是不同的。所以你有两个SHA1,每个用于调试和发布版本。发行版的SHA1可以从密钥库文件中获取。"

这些答案并没有解决我的问题。这是我到目前为止所做的。

我在google firebase控制台中添加了调试和释放SHA1密钥。

下载新的google-services.json文件,并将旧文件夹替换为预设文件夹。

从android studio生成签名的apk。

如果我在手机中手动安装apk,那么调试和发布版本的apk都可以正常工作。

但是如果我将发布的版本上传到谷歌播放进行beta测试,它会让我 应用验证失败 错误。

我还确认SHA1在" App sign"中是相同的。在Google Play控制台和Firebase控制台中。

请帮助。

这是build.gradle

plugins {
    id 'com.onesignal.androidsdk.onesignal-gradle-plugin' version '0.8.1'
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion '27.0.3'
    defaultConfig {
        applicationId "-----"
        minSdkVersion 15
        targetSdkVersion 27
        useLibrary 'org.apache.http.legacy'
        versionCode 7
        versionName "1.0"
        multiDexEnabled true
        manifestPlaceholders = [onesignal_app_id               : "---",
                                // Project number pulled from dashboard, local value is ignored.
                                onesignal_google_project_number: "REMOTE"]
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    repositories {
        maven {
            url 'http://dl.bintray.com/amulyakhare/maven'
            maven { url 'https://dl.bintray.com/alexeydanilov/maven' }
        }
        maven {
            url 'https://raw.githubusercontent.com/felixb/mvn-repo/master/'
        }
        jcenter()
        maven {
            url "https://maven.google.com"
        }
        mavenCentral()
    }

}

dependencies {
    compile "com.splitwise:tokenautocomplete:2.0.8@aar"
    compile 'com.googlecode.libphonenumber:libphonenumber:8.4.2'
    compile 'com.viewpagerindicator:viewpagerindicator:2.4.3'
    compile 'com.anjlab.android.iab.v3:library:1.0.44'
    compile 'com.onesignal:OneSignal:[3.9.1, 3.99.99)'
    compile 'com.google.firebase:firebase-auth:15.0.0'
    compile 'com.google.android.gms:play-services-safetynet:15.0.0'
    compile 'com.android.support:design:27.1.1'
    compile 'com.android.support:appcompat-v7:27.1.1'
    compile 'com.github.amlcurran.showcaseview:library:5.4.3'
    compile 'com.android.support:multidex:1.0.3'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
apply plugin: 'com.google.gms.google-services'

2 个答案:

答案 0 :(得分:2)

我们最近在与Firebase身份验证集成的应用程序中遇到了此问题。

APK运行正常,并且电话号码的OTP正常显示。 但是,当从Google Play下载该APK时,该APK无法正常工作,因为电话号码的OTP即将到来。

如上所述,此问题的原因是:我们已使用Google Play签署了我们的应用,该应用已使用新的SHA-1指纹进行了签名。

现在,您可以将此SHA-1添加到您的Google Play中,而不必使用Google Play生成的新SHA-1重建APK。 Firebase项目概述> 添加指纹。 这使我们的Google Play应用程序开始工作。

答案 1 :(得分:-1)

如果您已经添加了 sha 1,那么请检查 Android 设备 api 是否处于活动状态,请激活它 https://console.cloud.google.com/apis/library/androidcheck.googleapis.com