web-dev-qa-db-ja.com

指定した署名指紋は、別のAndroid OAuth2クライアントですでに使用されています

少し前に、Google APIコンソールでAndroidアプリケーション用の_Oauth2 client id_を使用してサンプルプロジェクト(「サンプルプロジェクト」と呼ぶことにします)を作成しました。 _SHA1 fingerprint_とパッケージ名(com.package.nameなど)も追加しました。

私の間違いは、同じパッケージ名のアプリケーションがすでに存在していたことでした。次に、パッケージ名_Oauth2 client id_および前に追加した_com.package.name_を使用して、「有効なプロジェクト」に_SHA1 fingerprint_ for Androidアプリケーションを作成する必要があります。明らかに、この指紋を追加しようとすると、エラーが発生しました。

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

その後、「サンプルプロジェクト」について思い出し、このプロジェクトから_client id_を削除しました。問題は、パッケージ名_com.package.name_にこのフィンガープリントを追加できないことです。 _Client id_は削除されましたが、それでも上記と同じエラーが発生します。

別のプロジェクトで同じパッケージ名にこのフィンガープリントを使用する可能性はありますか?

28
Elena

このエラーは、別のアカウントにリンクされているGoogle Developersに既存のSIGNING CERTIFICATE FINGERPRINT (SHA1)がある場合に発生します。

解決策は、古い/正しくないプロジェクトのSHA1console.developers.google.comを使用しているプロジェクトを削除することです。

SHA1フィンガープリントは、一度設定すると変更できません。プロジェクトを削除すると、完全に削除されるまで7日かかることに注意してください。

もう1つのオプションは、debug.keystoreを削除して、次のもので新しいものを生成することです。

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

アプリをアンインストールする必要があります。そうしないと、[INSTALL_FAILED_UPDATE_INCOMPATIBLE]エラーが発生します。

22
surfer190

私と同じように、各環境の各Firebaseプロジェクトを使用している場合は、以下の方法が役立つ場合があります。

ビルドグラドルで、環境ごとに新しいアプリケーションIDを作成します。

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

各firebaseプロジェクトで、同じフィンガープリントを使用して、対応するアプリケーションIDを持つ新しいプロジェクトを追加します。アプリケーションIDが変更されたので、新しいgoogle service jsonファイルをダウンロードしてください。パッケージ名は同じままなので、Google Playにアップロードするときに問題にはなりません。しかし、確かに、prodフレーバーは空のままにしているので、トラブルを回避するために、パッケージ名とアプリケーションIDはprodリリースと同じになります。

2
thanhbinh84

誰かが多くの理由で2つ以上のfirebaseプロジェクトで同じアプリケーションを使用する可能性があるため、このエラーが発生するので、この特定のシナリオに対処します。同じアプリケーションを2つ以上の異なる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"

これにより、ビルド時に「.staging」サフィックスがアプリケーションIDに挿入され、自動的に

applicationId "com.mydomain.myapp.staging"

このアプリケーション("com.mydomain.myapp.staging")をfirebaseステージングプロジェクトに追加する必要があるため、同じ"com.mydomain.myapp"SHA1をこのアプリケーションに追加できます。別のアプリケーションID。

1
shadowsheep

今日この問題に遭遇しました。プロジェクトが完全に削除されるまでには時間がかかるため、最も簡単な方法は、ローカルdebug.keystoreを削除するだけで新しいSHA1を作成することです。削除後にアプリを実行すると、自動生成されます。これは、Android docs here に記載されています。

1
Aditya

指定した署名指紋は、別のAndroid OAuth2クライアントですでに使用されています

すべてのプロジェクトをチェックし、SHA1フィンガープリントで構成された別のクライアントIDと、構成しようとしたパッケージ名を見つけようとしましたが、失敗しました。

最後に、解決策は、SHA1フィンガープリントとパッケージ名を使用して編集して再度追加しようとしたクライアントIDを削除することでしたが、私にとってはうまくいきました。

enter image description here

1
Jorgesys

遅いですが価値があります。私は同じ間違いをしました。間違ったアカウントでFirebaseにプロジェクトを追加してから、削除して別のFirebaseアカウントに追加しようとしましたが、エラーがプロジェクトがすでに登録されていることを示しているため、実行できませんでした。そのため、完全に削除するには約5〜7日かかるので時間がかかります。

次に、別のsha1を生成するために実行した手順を示します。

  1. 見つけた私のPCで.Androidに移動します。 C:\ Users\shahz.Android。
  2. debug.keystoreを削除します。
  3. 再構築Androidプロジェクト。
  4. 署名レポートをクリックします(右側のバーのクリックグラドル、app/task/Android/siginingReport)

  5. 新しいsha1で新しいデバッグキーを取得します。

  6. アプリを登録します。

0
Opriday

アプリがPlayストアに掲載されている場合、パッケージ名を変更したり、プロダクションキーを置き換えたりしたくない場合があります(新しいものを作成する必要があるため)リスト)。

現在アクティブなプロジェクトが現在のパッケージ名/フィンガープリントのペアを使用していないことが確実である場合は、最後に試すことの1つ:完全に新しい認証情報を作成します。アプリケーションの認証情報ファイルを置き換える必要があります。

これが役立つとは思っていませんでしたが、役に立ちました。たぶんグーグルはどういうわけかルックアップをキャッシュしていますか? 「このパッケージ名/フィンガープリント/クライアントIDルックアップは重複しているので、再度ルックアップする必要はありません。」

0
Brian

私は同じ問題に直面しました、その解決策は非常に簡単です

Console.developerに移動すると、このパッケージで作成された自動生成キーが表示されます。そのパッケージを削除し、再度shaキーを追加します。あなたが成功することを願っています。このリンクをたどってください https://console.developers.google.com/apis/credentials

0
Binesh Kumar