Android에서 Google Login
이 플러그인의 설치 단계와 전체 마크다운 가이드가 포함된 설정 프롬프트를 복사하세요.
소개
“소개” 섹션이 가이드에서는 Android용 Capgo Social Login으로 Google Login을 설정하는 방법을 알아봅니다. 이미 다음 내용을 읽었다고 가정합니다. 일반 설정 가이드.
Android에서 Google 로그인 사용하기
“Android에서 Google login 사용” 섹션이 섹션에서는 Android에서 Google login을 설정하는 방법을 배웁니다.
-
Android 클라이언트 ID를 생성합니다.
-
검색창을 클릭하세요
-
검색:
credentials를 클릭하세요APIs and Services해당 항목(스크린샷의 2번)
-
다음을 클릭하세요:
create credentials
-
선택
OAuth client ID
-
다음을 선택하세요:
Android응용 프로그램 유형
-
Android Studio 열기
-
네비게이터 맨 아래에서 다음 항목을 찾으세요:
Gradle Scripts
-
다음 항목을 찾아
build.gradle모듈의app
-
다음을 복사하세요
android.defaultConfig.applicationId. 이것이package nameGoogle 콘솔에서
-
이제 터미널을 여세요. 다음 경로에 있는지 확인하세요:
android앱 폴더로 이동하고 다음을 실행하세요./gradlew signInReport
- 명령어 맨 위로 스크롤하세요. 아래 내용이 표시되어야 합니다. 다음을 복사하세요
SHA1.
- 이제 Google Console으로 돌아가 다음을 입력하세요
applicationId를Package Name으로 설정하고 인증서 필드에 SHA1을 입력한 뒤create
-
-
Web 클라이언트 생성 (Android에 필수)
-
다음으로 이동하세요:
Create credentialsGoogle Console의 페이지 -
애플리케이션 유형을
Web
-
클릭
Create
-
클라이언트 ID를 복사하세요. 이 값을
webClientIdJS/TS code에 사용합니다
-
-
다음을 포함하도록
MainActivity-
Android Studio에서 앱을 여세요. 다음을 실행할 수 있습니다
cap open android -
다음 항목을 찾아
MainActivity.java-
다음을 엽니다:
app폴더
-
다음 항목을 찾아
java
-
해당 항목을 찾으세요
MainActivity.java그리고 클릭하세요
-
-
수정
MainActivity.java. 다음 code을 추가하세요import ee.forgr.capacitor.social.login.GoogleProvider;import ee.forgr.capacitor.social.login.SocialLoginPlugin;import ee.forgr.capacitor.social.login.ModifiedMainActivityForSocialLoginPlugin;import com.getcapacitor.PluginHandle;import com.getcapacitor.Plugin;import android.content.Intent;import android.util.Log;import com.getcapacitor.BridgeActivity;// ModifiedMainActivityForSocialLoginPlugin is VERY VERY important !!!!!!public class MainActivity extends BridgeActivity implements ModifiedMainActivityForSocialLoginPlugin {@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode >= GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MIN && requestCode < GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MAX) {PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");if (pluginHandle == null) {Log.i("Google Activity Result", "SocialLogin login handle is null");return;}Plugin plugin = pluginHandle.getInstance();if (!(plugin instanceof SocialLoginPlugin)) {Log.i("Google Activity Result", "SocialLogin plugin instance is not SocialLoginPlugin");return;}((SocialLoginPlugin) plugin).handleGoogleLoginIntent(requestCode, data);}}// This function will never be called, leave it empty@Overridepublic void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}} -
파일을 저장하세요
-
-
애플리케이션에서 Google Login 사용
-
먼저 import합니다
SocialLoginimport { SocialLogin } from '@capgo/capacitor-social-login'; -
initialize를 호출하세요. 이 함수는 한 번만 호출해야 합니다.
// onMounted is Vue specific// webClientId is the client ID you got in the web client creation step not the android client ID.onMounted(() => {SocialLogin.initialize({google: {webClientId: '673324426943-avl4v9ubdas7a0u7igf7in03pdj1dkmg.apps.googleusercontent.com',}})}) -
호출하세요
SocialLogin.login. 버튼을 만들고 클릭 시 다음 code를 실행하세요.const res = await SocialLogin.login({provider: 'google',options: {}})// handle the responseconsole.log(JSON.stringify(res))
-
-
테스트용 에뮬레이터 설정
-
들어가서
Device manager그리고 + 버튼을 클릭하세요
-
가상 디바이스 생성
-
아이콘이 있는 기기를 아무거나 선택하세요
Play Store아이콘
보시다시피,
pixel 8는Play Store서비스를 지원합니다 -
클릭
next
-
OS 이미지가 다음 유형인지 확인하세요
Google Play. 반드시 해당 유형이어야 합니다Google Play
-
다음을 클릭하세요
-
기기를 확인하세요. 에뮬레이터 이름은 원하는 대로 설정할 수 있습니다
-
들어가서
Device Manager시뮬레이터를 부팅하세요
-
시뮬레이터가 부팅되면 설정(Settings)으로 들어갑니다
-
들어가서
Google Play
- 클릭
Update그리고 약 60초 기다립니다
-
-
애플리케이션 테스트
모두 제대로 진행했다면 Google 로그인 플로우가 정상적으로 작동하는 것을 확인할 수 있습니다:
문제 해결
“문제 해결” 섹션문제가 발생하면 먼저 앱 구성을 Google Cloud Console 값과 비교해 보세요. Android Google Sign-In 실패는 보통 패키지 이름, SHA-1 또는 클라이언트 ID 불일치로 인해 발생합니다.
Credential Manager, SHA-1 및 Firebase
“Credential Manager, SHA-1, and Firebase” 섹션Android에서 이 플러그인은 Google Credential Manager(androidx.credentials 및 Sign in with Google)를 사용하며, 레거시 GoogleSignInClient API를 사용하지 않습니다. Logcat 오류 중 GetCredentialCustomException: [28444] Developer console is not set up correctly 은 해당 스택에서 발생합니다.
Logcat을 GoogleProvider 또는 CapgoSocialLogin 로그인 실패 후 필터링하세요. 플러그인은 패키지 이름, 서명 SHA-1 및 마스킹된 webClientId 를 기록하므로 Google Cloud Console과 비교할 수 있습니다.
필수 Google Cloud 설정
“Google Cloud 필수 설정” 섹션같은 Google Cloud 프로젝트에 두 종류의 OAuth 2.0 Client ID가 필요합니다:
| Client 유형 | 용도 | 사용 위치 |
|---|---|---|
| 웹 애플리케이션 | 서버 / ID token audience | webClientId 에서 SocialLogin.initialize() |
| Android, 서명 키당 하나씩 | APK가 Google을 호출할 권한이 있음을 증명 | Google Cloud Console에서만 사용. 이 ID를 다음으로 전달하지 마세요: webClientId |
흔히 하는 실수 중 하나는 Android client ID를 사용하는 것입니다. webClientIdCredential Manager에는 Web client ID가 필요합니다. Android client에는 콘솔에 등록된 올바른 package name과 SHA-1만 있으면 됩니다.
테스트하는 빌드에 서명하는 인증서마다 Android OAuth client를 하나씩 생성하세요:
- Debug: 다음에서
./gradlew signingReportdebug variant용. - Release: 실제로 설치하는 APK 또는 AAB에서 가져옵니다.
- Play App Signing: Play Console > App integrity > App signing key certificate에서 가져옵니다. 업로드 키 SHA-1이 이미 등록되어 있더라도 Play Store 빌드에는 이 정보가 반드시 필요합니다.
이 applicationId 에서 android/app/build.gradle Android OAuth client의 package name과 정확히 일치해야 하며, 모든 .debug 접미어.
OAuth 동의 화면이 Testing 모드인 경우, 테스트에 사용하는 모든 Google 계정을 Audience > Test users에 추가하세요. 앱을 Production으로 게시할 필요는 없습니다. email 및 profile scopes. Digital Asset Links (assetlinks.json)는 Credential Manager를 통한 Google 로그인에 필요하지 않습니다.
Google Cloud 변경 사항이 반영되는 데 최대 몇 시간이 걸릴 수 있습니다.
Error 28444: 개발자 콘솔이 올바르게 설정되지 않음
“Error 28444: Developer console is not set up correctly” 섹션이는 거의 항상 Google이 설치된 APK 서명 인증서, 패키지 이름, 그리고 다음 항목의 조합을 거부했음을 의미합니다: webClientId. 다음 체크리스트를 확인하세요:
- 확인
webClientIdWeb application client ID가 맞는지, 그리고 다음으로 끝나는지 확인하세요:.apps.googleusercontent.com. - 앱을 실행하여 오류를 재현한 뒤, Logcat에서 다음 내용을 확인하세요:
GoogleProvider,signingSha1=, 그리고package=. - 다음에서 Google Cloud Console > Credentials, Android OAuth 클라이언트를 열고 정확한 패키지 이름과 SHA-1을 확인하세요.
- 릴리스 빌드를 테스트하는 경우, 디버그 키스토어만 아니라 해당 빌드의 SHA-1을 등록하세요.
- 앱이 Play Store를 통해 배포되는 경우, Play App Signing SHA-1도 등록하세요.
- Web 및 Android 클라이언트가 동일한 Google Cloud 프로젝트에 있는지 확인하세요.
- 동의 화면이 Testing 상태라면, Google 계정이 테스트 사용자인지 확인하세요.
- 콘솔 변경 후 잠시 기다렸다가 다시 시도하세요.
USER_CANCELLED 잘 설정되지 않은 디버그 빌드에서 계정을 선택한 후에도 SHA-1 또는 클라이언트 ID 불일치일 수 있습니다. 먼저 위의 콘솔 설정을 수정하세요.
설치하는 빌드에서 SHA-1 추출하기
설치한 빌드에서 SHA-1 추출디버그 또는 로컬 빌드:
cd android && ./gradlew signingReport서명된 릴리스 APK:
keytool -printcert -jarfile android/app/release/app-release.apk해당 SHA-1을 패키지 이름이 일치하는 Android OAuth 클라이언트에 추가하고, 동일한 서명된 APK를 다시 설치한 뒤 다시 테스트하세요:
adb install android/app/release/app-release.apk로그인 결과 확인하기
“로그인 결과 읽기” 섹션토큰은 다음 항목 아래에 중첩되어 있습니다: result:
const login = await SocialLogin.login({ provider: 'google' });const idToken = login.result?.idToken;Firebase Auth의 경우 해당 자격 증명을 생성하세요 idToken Web 클라이언트 ID를 사용하세요 webClientId 에서 initialize.
개발용 SHA-1 인증서를 가져올 수 없다면 커스텀 키스토어를 사용해 보세요. 이 이슈 코멘트에서 프로젝트에 키스토어를 추가하는 방법을 설명합니다.
Android Google Login에서 계속하기
“Android에서 Google 로그인 계속하기” 섹션사용 중이라면 Android에서 Google Login 인증 및 계정 흐름을 설계할 때, 이를 다음 항목과 연결하세요: @capgo/capacitor-social-login 사용하기 @capgo/capacitor-social-login 사용 시 네이티브 기능을 위해, @capgo/capacitor-social-login @capgo/capacitor-social-login의 구현 세부 사항은, @capgo/capacitor-passkey @capgo/capacitor-passkey의 구현 세부 사항은 @capgo/capacitor-native-biometric @capgo/capacitor-native-biometric의 구현 세부 사항은, 2단계 인증 2단계 인증의 구현 세부 사항에 대해서는