Skip to content

feat: iOS 네이티브 Google 로그인 추가#181

Merged
pkdee merged 1 commit into
developfrom
feat/google-native-signin-ios
Jul 3, 2026
Merged

feat: iOS 네이티브 Google 로그인 추가#181
pkdee merged 1 commit into
developfrom
feat/google-native-signin-ios

Conversation

@pkdee

@pkdee pkdee commented Jul 3, 2026

Copy link
Copy Markdown
Member

요약

iOS Google 로그인을 외부 Safari 이탈 없이 네이티브 시트로 띄운다. Apple 네이티브와 동일 패턴(순수 함수 shouldUseNativeGoogle + 얇은 어댑터 + 게이트웨이 분기). ADR-0028 에서 보류했던 후속 과제.

동작

  • iOS + Google + client ID 주입됨 → google_sign_in v7 네이티브 → signInWithIdToken(idToken만).
  • 연동(linkOAuth)도 동일 분기(linkIdentityWithIdToken).
  • 미설정 안전장치: GOOGLE_IOS_CLIENT_ID/GOOGLE_WEB_CLIENT_ID dart-define 없으면 웹 OAuth 폴백 → 기존 동작·배포 무영향.
  • Android·Kakao·다른 provider 무변경.

테스트

  • google_native_test.dart: shouldUseNativeGoogle 4케이스 + isConfigured 폴백. flutter analyze clean, 전체 test green(343).

남은 콘솔 작업(사용자, 코드 아님)

Google Cloud iOS OAuth 클라이언트 → CI secret + Info.plist reversed scheme + Supabase Authorized Client IDs. 상세: docs 가이드/ios/google-로그인.md.

docs

ADR-0031 신규 + 기술스택 + 가이드 동기화(별도 docs repo push 완료).

Closes #180

- google_native.dart: shouldUseNativeGoogle + GoogleNativeSignIn 어댑터
  (google_sign_in v7, idToken 만 교환 — accessToken·nonce 불필요)
- gateway signInWithOAuth/linkOAuth 에 iOS+Google 네이티브 분기 추가
  (signInWithIdToken/linkIdentityWithIdToken, 외부 Safari 이탈 제거)
- client ID 는 GOOGLE_IOS/WEB_CLIENT_ID dart-define, 미설정 시 웹 OAuth 폴백
- deploy-ios.yml + Fastfile 선택적 주입, Info.plist reversed scheme 자리
- google_native 단위 테스트, docs(ADR-0031·기술스택·가이드) 동기화

Closes #180
@pkdee pkdee added feat 새 기능 scope:client 클라이언트(Flutter) labels Jul 3, 2026
@pkdee pkdee self-assigned this Jul 3, 2026
@pkdee pkdee merged commit d83f705 into develop Jul 3, 2026
1 check passed
@pkdee pkdee deleted the feat/google-native-signin-ios branch July 3, 2026 06:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat 새 기능 scope:client 클라이언트(Flutter)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant