programing

Floating 앱 출시 후 Google 로그인이 작동하지 않음

mailnote 2023. 6. 25. 20:25
반응형

Floating 앱 출시 후 Google 로그인이 작동하지 않음

Flutter로 앱을 개발하고 다음 명령을 사용하여 장치에서 테스트했습니다.

flutter run --release

그리고 모든 것이 잘 작동했습니다.또한 다음을 사용하여 앱을 구축해 보았습니다.

flutter build apk --release

수동으로 설치해도 문제가 없습니다.
저는 가게에 업로드를 했고, 이제 로그인이 안 됩니다.로그캣을 확인해 봤는데 로그인을 시도할 때 나타나는 오류는 다음과 같습니다.

I/flutter: exception: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 12500: , null)

저는 appCompat 종속성을 추가하려고 시도했고 SHA1 키를 확인했습니다. 모든 것이 올바른 위치에 있습니다. 상점에서 더 이상 작동하지 않으면 다운로드할 때 이유를 알 수 없습니다.

API 공급자(이 경우 Firebase)에 Play Store 앱 서명 키를 등록해야 할 수 있습니다.

  1. Google Play Console에서 Setup > App signing을 방문합니다.

  2. 알았다.SHA-1 certificate fingerprint

    Copy SHA-1 from Google Play App signing key certificate

  3. Firebase Console에서 Settings > Project settings를 방문합니다.

  4. Add fingerprint

    Add fingerprint in Firebase console

  5. 한 사한붙 SHA-1 certificate fingerprint안으로Certificate fingerprint 필드

  6. Save

    Paste SHA-1 certificate & save

앱에 토큰 API에 대한 올바른 Google 자격 증명이 없을 수 있습니다.

Google Play Console에 처음 등록했을 때 Google의 앱 서명 서비스를 선택했을 수 있습니다.이렇게 하면 키 저장소로 앱에 서명하고 재생 콘솔에 업로드한 후 Google은 실제로 생성된 키 저장소로 앱에 서명하고 해당 버전을 롤아웃합니다.릴리스 관리 -> 앱 서명 -> 앱 서명 인증서에서 콘솔에서 릴리스 버전이 서명된 키에 액세스할 수 있습니다.

인증서를 찾은 후 SHA1 키를 사용하여 새 Android Oauth 자격 증명을 생성한 다음 Google-services.json에 추가해야 합니다.Firebase를 사용하지 않는 경우 Oauth 자격 증명을 백엔드에 추가해야 합니다.

이 안드로이드 스레드에서 동일한 이슈에 대한 HarsitG의 답변을 보면 Play Console에서 인증서 정보를 얻을 수 있는 위치의 사진을 볼 수 있습니다.

Google signIn 릴리스 모드에서 작동하지 않음 apk Android

당신의 구글 플레이 콘솔로 이동하세요, 릴리스 관리에서 당신은 앱 서명을 찾을 수 있을 것이고, 두 개의 Sha 키가 있고, Sha 부분 없이 그것들을 firebas 프로젝트에 복사합니다. SHA 인증서 지문 apk는 그 이후에 작동할 것입니다.

이러한 문제가 있는 사람들은 자신의 파이어베이스 계정에 할당된 SHA 인증서 지문을 확인하는 것이 좋습니다. 릴리스 및 디버그 SHA 인증서 지문이 모두 필요합니다.이 작업을 수행하려면 다음을 수행합니다.

  1. 프로젝트의 Android 폴더로 이동합니다.
  2. 명령을 합니다../gradlew signingReport
  3. 릴리스 SHA 인증서 지문 찾기
  4. 디버그 SHA 인증서 지문 찾기
  5. 방화벽 계정 SHA 인증서 지문에 추가
  6. Google-services.json을 다시 다운로드합니다.
  7. 앱 레벨 폴더에 추가 완료!

명령을 무분별하게 실행하기 전에 몇 가지 개념을 바로 잡읍시다!!


릴리스 빌드를 만들려면 서명 인증서/키스토어(해당 .jks 파일)에 의해 앱에 서명해야 합니다.릴리스 빌드는 디버그 모드 또는 릴리스 모드로 생성됩니다(자세한 내용은 나중에 설명).

이러한 키 저장소 파일에는 세 가지 유형이 있습니다.

  1. 사용하여 생성된 디버그 키 저장소./gradlew signingReport할 때 할 수 있습니다

  2. 다음 지침에 따라 생성된 키 저장소 업로드("빌드 릴리스"를 만드는 데 유용합니다.디버그 키 대신 이 키를 사용합니다.

  3. 앱 번들을 처음 업로드할 때 Play Console에서 자동으로 생성되는 배포저장소/Play Signing 키 저장소(페이지는 에서 확인할 수 있습니다.)Setup > App integrity > App signing이 키 저장소는 Google에 유지됩니다.은 그것의 액스권없다에 할 수 ..jks파일입니다. 그래서 안전하고 길을 잃지 않습니다.


이제, 저는 당신이 플레이스토어에서 당신의 앱을 얻고 싶다면 디버그 키스토어를 생성하지 말라고 말하고 싶습니다.업로드 키 저장소만 생성하고 항상 사용합니다.

이것이 왜 중요합니까?

  • 디버그 저장소는 앱을 릴리스 모드가 아닌 디버그 모드에서 서명할 수 있습니다.

    하려고 해도.flutter build appbundle와 함께--release깃발, 당신은 받을 것입니다.app-release.aab디버그 모드에서 서명됩니다!Play Store에서는 디버그 모드로 서명된 앱을 게시할 수 없습니다.

  • 키스토어 업로드는 플레이스토어에 게시할 수 있는 릴리스 모드에서 앱에 서명할 수 있습니다.
  • 따라서 나중에 앱을 게시하려면 다음 지침에 따라 업로드 키 저장소를 생성하고 그에 따라 파일을 그라들링합니다.해당 디버그 키 저장소는 필요하지 않으므로 생성하지 마십시오.

이 설명을 통해 디버그 저장소를 가져올 것을 권장하는 일부 답변이 잘못된 이유를 이해할 수 있어야 합니다.


이제 위의 질문에 대한 적절한 대답입니다.

특정 Google Play 서비스(예: Google 로그인 및 App Invests)에서는 다음을 제공해야 합니다.SHA-1서명 인증서의

따라서 업로드저장소로 앱에 서명하는 경우,SHA-1업로드 키 저장소의 지문Firebase Console > Settings Icon > Project settings > Add fingerprintadd SHA-1 fingerprints

  • 다음 정보를 얻을 수 있습니다.SHA-1키 저장소 업로드의 경우keytool -v -list -keystore /path/to/upload-keystore.jks

  • 또한, 당신은 그것을 얻을 수 있습니다.SHA-1업로드 키 저장소배포 키 저장소에 대한 자세한 내용은 다음과 같습니다.Setup > App integrity > App signing


어떤.SHA-1추가할까요?두명입니다SHA-1재생할 수 있습니다.

둘 다 추가해야 합니다.SHA-1소방 기지에 지문을 채취했습니다

왜요?

  • 게시 리뷰의 경우 업로드저장소에 서명된 앱을 항상 제출해야 합니다.Play Console은 동일한 업로드 키 저장소로 서명된 앱 업데이트 제출만 수락합니다(따라서 업로드 키 저장소를 안전하게 유지).그렇기 때문에 Upload keystore signed App이 제대로 작동하려면 Upload keystoreSHA-1을 Firebase에 추가해야 합니다.
  • 게시 검토가 수락되면 Play Console에 의해 배포저장소를 사용하여 앱이 다시 서명되고(자동) Play Store에 게시됩니다.따라서 배포저장소에 서명된 앱이 제대로 작동하도록 하려면 Firebase에 배포 키 저장소SHA-1을 추가해야 합니다.

릴리스의 경우 디버그 지문과 별도로 두 의 SHA 인증서 지문이 파이어베이스에 추가되었는지 확인해야 합니다.하나는 키 도구(키 인증서 업로드)를 통해 검색할 수 있으며, 다른 하나(앱 서명 키 인증서)는 플레이 콘솔에서 복사할 수 있습니다(위 답변에 설명된 앱 무결성 섹션).

저는 그 문제를 겪었고 다음과 같이 해결했습니다.

gradle.properties 파일에 아래 명령을 추가합니다.

org.gradle.java.home=C:\Program Files\\Java\\jdk-18.0.1.1.

내 경우:

org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
org.gradle.java.home=C:\Program Files\\Java\\jdk-18.0.1.1

그런 다음 터미널에서 디렉터리를 안드로이드로 변경합니다.(창을 사용합니다)

cd android

마침내, 나는 썼습니다../gradlew signingreport터미널에서 SHA1과 SHA-256을 받았습니다.그런 다음 화기에 추가합니다.

다른 시스템이나 랩톱에서 APK 파일을 생성하는 경우 이 문제가 발생할 수 있습니다.

언급URL : https://stackoverflow.com/questions/53263246/google-sign-in-doesnt-work-after-release-of-flutter-app

반응형