Chrome Custom Tabs
이렇게 되면 실기기에서도 네이버 앱이 설치되어있지않으면 로그인이 안되는거 아닌가 ? 실제 다른 앱들로 네이버로 로그인할때 앱이 있어야 한다고 하나?
좋은 질문입니다. 정확히 짚어드리면 — 에뮬레이터에 네이버 앱을 까는 건 "원래 그래야 한다" 가 아니라 "이 에뮬레이터의 Custom Tabs 가 깨져 있으니 우회한다" 입니다. 두 개를 헷갈리지 않게 정리해드릴게요.
flutter_naver_login (네이버 SDK 5.x) 은 디바이스 환경에 따라 자동으로 경로를 고릅니다.
사용자가 "네이버로 로그인" 탭
│
▼
네이버 앱이 설치되어 있나?
├── YES → 앱-투-앱 (NAVER 앱이 인증 처리) ← "쉬운 길"
└── NO → Chrome Custom Tabs (브라우저로 nid.naver.com) ← "원래 길"
즉, 네이버 앱이 없어도 Custom Tabs 경로로 정상 동작 하도록 설계돼 있습니다.
이게 운영 환경의 디폴트입니다.
naver3rdpartylogin://... redirect 인텐트를 정확히 우리 앱으로 데이터까지 보존해서 전달하므로 SDK 가 토큰을 정상 회수합니다.am start 로 직접 쏜 인텐트는 잘 도달하지만, Chrome Custom Tabs 가 redirect 시 인텐트에 데이터를 실어 보내지 못하는 환경 한정 버그 입니다. 이건 다음 조합 중 하나에서 발생하는 알려진 케이스입니다:
실제 폰의 Chrome 에서는 이 문제가 발생하지 않습니다. 그래서:
| 환경 | Custom Tabs 경로 | 네이버 앱 경로 |
|---|---|---|
| 실기기 (네이버 앱 있음) | 작동 | 작동 ← 지금 사용 중 |
| 실기기 (네이버 앱 없음) | 작동 ← 운영 디폴트 | N/A |
| 우리 에뮬레이터 | 깨짐 (환경 한정) | (앱 설치하면) 작동 |
| 다른 에뮬레이터/AVD | 보통 작동 | 작동 |
다른 조합의 에뮬레이터에서 한 번만 더 돌려보면 확신이 굳어집니다. 가장 추천:
flutter run -d <new-emulator-id> → 네이버 로그인이 새 AVD 에서는 십중팔구 네이버 앱 없이도 Custom Tabs 경로로 정상 로그인 됩니다. 그러면 "현재 에뮬레이터만의 환경 문제" 라는 결론이 100% 확정됩니다.
지금 진행은 이렇게 권합니다:
Ngrok
Custom URL Scheme
Native SDK + Backend