37

前段时间,我Oauth2 client id在 Google API 控制台中为 android 应用程序创建了一个示例项目(我们称之为“示例项目”)。我还添加了SHA1 fingerprint包名(例如 com.package.name)。

我的错误是已经存在具有相同包名的应用程序。现在我需要在“有效项目”中使用包名和我之前添加的包名创建一个Oauth2 client idfor android 应用程序。显然,当我尝试添加此指纹时,我遇到了错误。com.package.nameSHA1 fingerprint

The signing fingerprint you specified is already used by another Android OAuth2 client.

之后我想起了“示例项目”并client id从该项目中删除。问题是我仍然无法为 package name 添加这个指纹com.package.nameClient id被删除但我仍然有与上面相同的错误。

那么我是否有可能在另一个项目中将此指纹用于相同的包名称?

4

9 回答 9

32

SIGNING CERTIFICATE FINGERPRINT (SHA1)当Google Developers 上存在与其他帐户相关联的现有帐户时,会发生此错误。

解决方案是删除在旧/不正确项目中使用该SHA1项目console.developers.google.com的项目。

SHA1 指纹一旦设置就无法更改。请记住,删除项目需要 7 天才能完全删除。

另一种选择是删除debug.keystore并生成一个新的:

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey
-storepass android -keypass android -keyalg RSA -validity 14000

请记住,您必须卸载该应用程序,否则您会收到[INSTALL_FAILED_UPDATE_INCOMPATIBLE]错误消息。

于 2015-03-26T13:00:39.177 回答
9

您指定的签名指纹已被另一个 Android OAuth2 客户端使用

我必须检查每个项目并尝试找到另一个配置了我尝试配置的 SHA1 指纹和包名称的客户端 ID,但未成功。

最后,解决方案是删除我尝试编辑的客户端 ID,然后使用 SHA1 指纹和包名称再次添加,它对我有用:

https://console.developers.google.com/apis/credentials

在此处输入图像描述

于 2019-04-10T17:25:42.080 回答
4

如果您像我一样为每个环境使用每个 Firebase 项目,那么以下方法可能会有所帮助。

在您的构建 gradle 中,为每个 env 创建新的应用程序 ID:

productFlavors {
        dev {
            applicationId "se.abc.dev"
        }
        stag {
            applicationId "se.abc.stag"
        }
        prod
    }

在每个 firebase 项目上,添加一个具有相同指纹的相应应用程序 ID 的新项目。由于应用程序 ID 已更改,请记住下载新的 google 服务 json 文件。软件包名称保持不变,因此在上传到 google play 时不会有问题。但可以肯定的是,我将 prod flavor 留空,因此 prod release 的包名称和应用程序 id 将是相同的,以避免麻烦。

于 2017-11-10T09:06:42.763 回答
4

来晚了,但值得。我犯了同样的错误。我在错误的帐户中向 firebase 添加了一个项目,然后我删除并尝试添加另一个 firebase 帐户,但我无法这样做,因为错误表明该项目已经注册。所以完全删除大约需要 5 到 7 天的时间。

这是我生成另一个 sha1 所遵循的步骤。

  1. 转到位于我的电脑中的 .android。C:\用户\shahz.android。
  2. 删除 debug.keystore。
  3. 重建安卓项目。
  4. 单击签名报告(右侧栏单击 gradle、app/task/android/siginingReport)

  5. 您将获得一个带有新 sha1 的新调试密钥。

  6. 注册您的应用程序。

于 2019-07-26T13:33:02.623 回答
2

由于出于多种原因,有人可能想通过两个或多个 firebase 项目使用相同的应用程序,因此出现此错误,我在这里确实解决了这种特定情况。在两个或多个不同的 firebase 项目(比如说生产和登台)上运行同一个应用程序的最简单方法是向您的模块级别build.gradle文件添加一个构建变体(比如说登台),如下所示:

apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-perf'

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"
    defaultConfig {
        applicationId "com.mydomain.myapp"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 18
        versionName "2.8"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        staging {
            initWith debug
            applicationIdSuffix ".staging"
            versionNameSuffix = "-staging"
        }
    }
}

dependencies {
    [...]
}

// Firebase
apply plugin: 'com.google.gms.google-services'

在构建变体staging中,最重要的是以下行:

applicationIdSuffix ".staging"

这将在构建时为您的应用程序 ID 注入“.staging”后缀,以便您自动拥有

applicationId "com.mydomain.myapp.staging"

您不需要将此应用程序 ( "com.mydomain.myapp.staging") 添加到您的 firebase 登台项目中,因此您将能够向此应用程序添加相同的"com.mydomain.myapp" SHA1,因为它具有不同的应用程序 ID。

于 2018-02-25T17:37:05.257 回答
2

我也遇到过同样的问题,解决方法很简单

转到 Console.developer,您可以看到使用此包创建的一些自动生成的密钥。删除该包并再次添加 sha 键。希望你会成功。点击此链接 https://console.developers.google.com/apis/credentials

于 2020-02-13T09:43:27.410 回答
1

我会注意到,如果您的应用程序在 Play 商店中列出,您可能不想更改包名称并且您可能不想替换生产密钥(因为您将被迫制作一个新的清单)。

如果您绝对确定当前没有使用当前包名称/指纹对的活动项目,那么最后一件事要尝试:制作一个全新的证书。您必须在应用程序中替换您的凭证文件。

我没想到这会有所帮助,但确实如此。也许谷歌以某种方式缓存了查找?“这个包名/指纹/客户端 ID 查找是重复的,所以不要再找它了。”

于 2018-08-17T18:49:43.600 回答
1

今天碰到这个问题。由于项目需要很长时间才能完全删除,最简单的方法是通过简单地删除本地debug.keystore来创建新的 SHA1 。当您删除它后运行任何应用程序时,它会自动生成。这在此处的 Android 文档中有记录。

于 2018-07-16T18:25:54.900 回答
0

有时会发生这种情况,因为您已将应用程序与Google Cloud Platform项目链接到Google Signin之类的API。所以firebase显示OAUTH2问题。有一次,您可以通过 firebase 或 gcp 使用 Auth 服务。

可能的解决方案:尝试删除Google Cloud Platform或在Android Studio中创建一个新的 Android 项目。

于 2020-09-30T11:25:31.337 回答