오류 : 상태 {statusCode = DEVELOPER_ERROR, 해결 방법 = null}


102

나는 gplus 로그인을 사용하고 있으며 onActivityResult에있을 때이 오류가 발생합니다 ....

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
    client.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 0) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        if (result.isSuccess()) {

            GoogleSignInAccount acct = result.getSignInAccount();
//                Log.d("Result","details"+ acct.getDisplayName() + acct.getEmail());

            mEmail = acct.getEmail();
            String mFullName = acct.getDisplayName();
            String mGoogleplusId = acct.getId();


            SocialUser user = new SocialUser();
            user.setType("googleplus");

            user.setEmail(mEmail);
            user.setFullname(mFullName);
            user.setId(mGoogleplusId + "");
            loginParams.put("email_id", mEmail);
            loginParams.put("googlePlusId", mGoogleplusId);
            loginParams.put("full_name", mFullName);
            loginParams.put("registrationType", "googleplus");
            SignUpService(user);


        } else {
            Toast.makeText(CustomerLogIn.this, "Unable to fetch data, Proceed manually", Toast.LENGTH_SHORT).show();
        }
    }
}

그리고 버튼 클릭시 gplus 로그인을 요청하고 있습니다. 클릭 버튼에서 다음 코드가 실행됩니다 ....

 GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();
    mGoogleApiClient = new GoogleApiClient.Builder(CustomerLogIn.this)

            .addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
            .build();


    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
    startActivityForResult(signInIntent, 0);

그리고 나는이 오류를 geetng입니다 ...

Status{statusCode=DEVELOPER_ERROR, resolution=null}

이 줄에 ....

GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);

해결책을 제안하십시오.


1
응용 프로그램이 잘못 구성되었습니다. Google API 구성을 확인하십시오.
1'hafs

6
네,하지만 무엇이 잘못되었는지 알 수 없습니다.
Gurvinder Singh 2016

나는 firebase를 사용하지 않습니다. 여기 내 솔루션을 참조하십시오 : stackoverflow.com/a/46828895/1160216
Mike Miller

답변:


213

Firebase 콘솔 구성에 SHA1 키를 추가해야합니다. 다음과 같이 할 수 있습니다.

Firebase 콘솔 ( https://console.firebase.google.com )-> 프로젝트-> 구성-> 스크롤하여

여기에 이미지 설명 입력

Android 스튜디오에서 'Signing report'를 실행하는 SHA1 키를 찾을 수 있습니다.

여기에 이미지 설명 입력

그런 다음 "실행 탭"을보고 버튼을 클릭하십시오.

여기에 이미지 설명 입력

더 쉬운 방법이라고 생각합니다. 이 도움을 바랍니다.


1
다음은 Google 개발자 콘솔에서 릴리스 SHA-1을 얻는 가장 쉬운 방법입니다. stackoverflow.com/a/50124038/4923891
eren130

Firebase 콘솔에서 SHA 키를 어디에 넣을 지 이해하는 데 문제가 있습니다. 드디어 찾았습니다. 프로젝트 설정 열기> 아래로 스크롤, 지문 추가, 거기에 SHA 키 넣기> 새 google-services.json을 다운로드하여 배치하고 android-app \ app
paakjis 2018 년

1
노트! Firebase 콘솔에 SHA-256 키 해시를위한 공간이 있어도 SHA-1 키를 입력해야합니다. SHA-256은 여전히 ​​오류를 제공합니다
f.khantsis

도움이되었습니다. 감사!
Pooja

30

아마도 프로덕션 토큰 의 SHA1을 사용하여 구성 파일을 만들었을 것입니다 . androiddebugkey별칭을 사용 하여 앱의 디버그 버전에 해당하는 SHA1을 수집하고 구성 파일을 'app'디렉터리에 복사합니다. 두 구성 파일 (하나는 디버그 목적 및 프로덕션 환경 용).

https://developers.google.com/identity/sign-in/android/start에 게시 된 연습을 기반으로합니다.


5
OAuth 2.0 클라이언트 ID에 대해 Android 클라이언트 대신 웹 클라이언트 자격 증명으로 전환했을 때 내 오류가 수정되었습니다. 나는 웹 서버에 이야기 안드로이드 응용 프로그램을 개발하고 같이 표현은 아직도 날 혼란 ...하지만 오류가 적어도 사라
부리 토

12

나는 같은 문제가 있었고 다음 단계를 수행하여 작동했습니다.

1. Firebase 프로젝트에 DEBUG_KEYSTORE SHA1 지문을 추가합니다. 다음 명령어 (MAC / LINUX) 사용

  keytool -exportcert -list -v \-alias androiddebugkey -keystore ~/.android/debug.keystore  

2. 이제 프로젝트의 서명 된 APK를 생성합니다. 이 프로세스에는 앱의 릴리스 버전에 대한 키 저장소 생성이 포함됩니다.

  Copy the path of the newly generated .jks file.

3. 이제 다음 명령을 사용하여 RELEASE_KEYSTORE SHA1 지문을 생성합니다.

  keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME

4. 출력에서 ​​새 SHA1을 복사하고 Firebase 애플리케이션 콘솔에서 다른 SHA1 지문으로 추가합니다.

이제 갈 수 있습니다! ---- 희망! 도움이됩니다.


릴리스 된 sha1은 다음과 같은 오류가 발생합니다. Google 로그인, 분석 및 gcm에 대한 google_services.xml 생성, 단일 파일
Harsha

sha1이 '디버그'버전이 아닌 앱의 '출시'버전인지 확인하십시오.
Udit Kapahi

Ha 예 서명 된 APK를 생성하고 앱 스토어에 게시했습니다. jks 및 키 스토어 비밀번호 만 사용하고 있습니다.
Harsha

내 공개 SSL은 openssl-0.9.8k_WIN32입니다. 개발 용 previos를 사용하고 있습니다.
Harsha

keytool 비밀번호 필요 : "android"
Guglie

11

여기에 이미지 설명 입력

내가 그것을 고치는 방법은 강조 표시된 텍스트에 해당하는 키를 선택하는 것이 었습니다. Firebase의 문서 페이지에서 '서버'라는 단어의 혼란스러운 사용으로 인해 Server key. 그것이 문제의 원인이었습니다.

여기 에서 키를 찾을 수 있습니다 .


감사! 제 경우에서 일했습니다. 나는 그것이 어떻게 든 (GoogleSignIn에서 "requestServerAuthCode"과 호출) 자신의 백엔드 서버를 사용하여 연결 생각
ITurchenko

5

나는 동일한 문제를 겪고 있었는데, 어떻게 해결했는지는 내 매니페스트 파일의 패키지 이름과 내 gradle 파일에 다른 applicationId가 있다는 것입니다. 그리고 json 파일을 만들기 위해 applicationId를 사용했습니다. 내 패키지 이름을 내 applicationId로 변경해야했고 그로 인해 수정되었습니다.


1
나는 항상 Manifest의 패키지가 gradle에 정의 된 ApplicationId에 의해 재정의되었다고 생각했습니다. 그렇지 않습니까?
Flo We

3

여기에 제공된 답변 대신 Android Studio의 Firebase Assistant를 사용하여 일부 버튼을 클릭하여 SHA-1을 프로젝트에 자동으로 추가 할 수 있습니다.

Android Studio에서로 이동하여 Tools > Firebase > Select 'Authentication'라고 표시된 링크를 클릭합니다 'Email and password authentication'.

이렇게하면 인증을 프로젝트에 통합하는 방법에 대한 약간의 자습서가 제공되지만 아마 모든 작업을 완료 했으므로 클릭하기 만하면 'Connect to Firebase'완료됩니다.


3

오래된 질문이지만 최근 Android 클라이언트 ID를 사용하고 있었기 때문에 Google 개발자 콘솔에서 만든 오류 10 (DEVELOPER_ERROR)이 발생했습니다.

저에게 해결책은 Google 개발자 콘솔에서 Android 자격 증명을 사용하여 APK의 SHA 키를 표시하고 Cordova 응용 프로그램의 Google 개발자 콘솔에서 웹 응용 프로그램 (!) 자격 증명의 클라이언트 ID를 사용하는 것입니다.

config.xml :

<plugin name="cordova-plugin-googleplus" spec="^5.3.0">
    <variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.[web-application-client-id]" />
    <variable name="WEB_APPLICATION_CLIENT_ID" value="[web-application-client-id].apps.googleusercontent.com" />
</plugin>

암호:

window.plugins.googleplus.login(
    {
       'webClientId': '[web-application-client-id].apps.googleusercontent.com'
    }, 
    ...

나는 firebase를 사용하지 않습니다.


감사합니다. 시간을 많이 절약했습니다. 실제로 자동 생성 된 웹을 사용 client id하면 DEVELOPER_ERROR 문제가 해결되었습니다. 나에게는 말이 안되고 다른 클라이언트 ID를 사용해야한다는 것이 분명하지 않지만.
Myroslav Kolodii

3

잘못된 SHA1 키를 생성하고 추가했을 수 있습니다. 다음 단계를 사용하여 Android 스튜디오에서 SHA1 키를 생성하십시오.

  1. Gradle을 클릭합니다 (오른쪽 패널에서 Gradle Bar가 표시됨).
  2. 새로 고침을 클릭하십시오 (Gradle Bar에서 새로 고침을 클릭하면 프로젝트의 Gradle 스크립트 목록이 표시됩니다)
  3. 프로젝트를 클릭합니다 (프로젝트 이름 양식 목록 (루트)).
  4. 작업을 클릭하십시오.
  5. Android를 클릭하십시오.
  6. signingReport를 두 번 클릭합니다 (Run Bar에 SHA1 및 MD5가 표시됩니다 (때로는 Gradle Console에 있음).)

이제이 SHA1 키를 firebase android 프로젝트에 추가합니다.



1

저에게는 처음 구현했을 때 작동했지만 며칠 개발 후 언급 된 오류 메시지와 함께 중지되었습니다.

다음 단계를 통해 문제를 해결했습니다.

  1. 이미 firebase 콘솔에있는 sha-1 지문 위에 sha-256 지문을 추가했습니다. (이 단계가 필요한지 확실하지 않음)
  2. google-services.json 파일을 다시 다운로드하고 이전 파일을 교체했습니다.
  3. 앱을 다시 설치했습니다.

그리고 그것은 일했다


0

내 firebase 앱에서이 오류가 발생했습니다. requestIdToken(activity.getString(R.string.default_web_client_id))아래 부분을 추가하면 수정되었습니다 .

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestEmail().requestIdToken(activity.getString(R.string.default_web_client_id))
        .build();

    apiClient = new GoogleApiClient.Builder(activity)
        .addConnectionCallbacks(this)
        .enableAutoManage(activity, this)
        .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
        .build();

    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(apiClient);
    activity.startActivityForResult(signInIntent, RC_GOOGLE_SIGN_IN);

default_web_client_id는 무엇입니까? 어디서 구할 수 있나요?
Ayman Al-Absi 2016

@ AymanAl-Absi Google 서비스에 맞게 프로젝트를 올바르게 설정 했습니까? 참조 : developers.google.com/android/guides/google-services-plugin
Dan Brough 2011

1
@ AymanAl-Absi 또한이 파일의 google-service.json 파일에서 "default_web_client_id"를 가져옵니다. 해당 태그에서 해당 텍스트 (client_ID) <[Client_ID] .app.etc> 만 복사 한 Client_ID 태그를 볼 수 있습니다.
왕자

0

새 Google 계정으로 json 구성 파일을 업데이트 할 때이 오류가 발생했습니다.

수동으로 응용 프로그램을 제거하고 응용 프로그램을 다시 설치하면 저에게 효과적이었습니다.


0

이 오류는 디버그 또는 릴리스 키의 SHA-1 체크섬이 firebase / google 콘솔에 포함되어 있지 않기 때문에 발생합니다.

먼저 다음 명령을 사용하여 키를 생성하십시오.

keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME

그런 다음 SHA-1 체크섬을 복사하고 다음으로 이동합니다.

Firebase 콘솔> 프로젝트> 앱 설정> 지문 추가



0

Firebase 콘솔의 인증에서 Google 로그인을 활성화했는지 확인합니다.


0

이 줄에서 올바른 server_client_id 를 사용하여 문제를 해결했습니다 .

String serverClientId = getString(R.string.server_client_id);

잘못된 코드를 사용했습니다.


0

Google 로그인과 같은 일부 서비스의 경우 Firebase 콘솔에 SHA1 지문을 추가해야합니다.

firebase 콘솔에 SHA 지문을 추가하지 못했습니다. FireBase Console> 프로젝트 설정> 지문 추가 옵션으로 이동하면됩니다.

매우 쉬운 방법으로 SHA1 지문을 생성 할 수 있습니다. https://www.youtube.com/watch?v=FczARQ244GE

그 후 한 번 더 실수를 했어요

방법 위의 SHA1 키를 생성 한 후. 만료 된 잘못된 SHA1 키를 복사했습니다. 따라서 위의 출력에서 ​​복사하는 SHA1 키가 유효한지 확인하십시오 (SHA1 키의 유효한 untill 값도 확인하십시오)

또한 firebase에 추가 한 패키지 이름 (xyz)이 Android 코드에 사용 된 것과 동일한 지 확인합니다.

또한 올바른 AppID를 사용해야합니다.


0

오랜 조사 끝에 나는 해결책을 찾았습니다. 실제로이 오류 Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}는 잘못된 SHA-1 또는 잘못된 패키지 이름 또는 다른 것을 가리 킵니다. 제 경우에는 debug패키지 이름 끝에 키워드를 추가 합니다 com.sample.app=>com.sample.app.debug


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.