안녕하세요, 카카오 디벨로퍼스 SDK를 사용하여 Flutter 웹 앱을 개발 중입니다. 공식 문서의 [카카오 로그인 - Flutter] 가이드를 참조하여 구현했으나, 웹 환경에서 카카오 로그인 호출 시 SDK 내부에서 지원하지 않는 플랫폼이라는 에러가 발생하여 문의드립니다.
[개발 환경]
OS: macOS (개발 및 빌드)
Flutter Version: 3.41.2
SDK Version: kakao_flutter_sdk: ^2.0.0+1
배포 환경: Firebase Hosting
앱 ID: 1407304
[현상 및 에러 로그] 웹 브라우저(Chrome)에서 로그인 시도 시, SDK 초기화는 정상적으로 완료되나 로그인 함수 호출 직후 아래 에러가 발생합니다.
LateInitializationError: Field 'platformInfo' has not been initialized.
KakaoClientException notSupported: loginWithKakaoAccount() is not supported on web platforms.
[구현 시도 내용]
kIsWeb 조건문을 사용하여 웹과 모바일 로직을 분리하였습니다.
웹 환경에서는 AuthCodeClient.instance.authorize 방식을 사용하려고 시도했으나, 지속적으로 SDK 내부에서 플랫폼 지원 예외가 발생합니다.
카카오 디벨로퍼스 설정에서 웹 Redirect URI(https://round-up.kr/redirect.html)를 정상적으로 등록하였습니다.
웹 브라우저에서 loginWithKakaoAccount()를 호출하지 않도록 분기 처리를 했음에도 불구하고, SDK 내부적으로 웹 플랫폼 정보가 로드되지 않거나 지원되지 않는 메서드로 간주하는 이유가 궁금합니다. 웹 환경에서 카카오 로그인 팝업을 띄우기 위한 올바른 구현 방식이나, SDK 버전 호환성 문제인지 확인 부탁드립니다.
문의드린 에러(LateInitializationError: Field 'platformInfo' has not been initialized) 발생 시점의 초기화 및 호출 코드는 다음과 같습니다.
1. SDK 초기화 로직 (main.dart)
Dart
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
if (kIsWeb) {
// 웹 환경 초기화
KakaoSdk.init(javaScriptAppKey: '54a3d79492157b78c49a1e0e6abb31d7');
} else {
// 모바일 환경 초기화
KakaoSdk.init(nativeAppKey: '694b881739e82ef06b264c9bfe5a29fb');
}
runApp(const RoundUpApp());
}
2. 로그인 호출 로직 (signup_page.dart)
Dart
Future<void> _signUpWithKakao() async {
try {
if (kIsWeb) {
// 웹 타겟: authorize 호출 시 SDK 내부에서 platformInfo 관련 에러 발생
await AuthCodeClient.instance.authorize(
redirectUri: 'https://round-up.kr/redirect.html',
);
} else {
// 모바일 타겟: 정상 작동
bool isInstalled = await isKakaoTalkInstalled();
isInstalled
? await UserApi.instance.loginWithKakaoTalk()
: await UserApi.instance.loginWithKakaoAccount();
}
} catch (e) {
debugPrint("로그인 에러: $e");
}
}
3. 추가 확인 요청 사항 웹 환경에서 KakaoSdk.init을 통해 자바스크립트 키로 초기화를 마쳤음에도 AuthCodeClient.instance.authorize 호출 시점에 SDK 내부에서 platformInfo를 찾지 못하는 문제가 발생합니다. 혹시 Flutter Web 빌드 시, KakaoSdk 초기화와 JS 라이브러리 로딩 사이의 비동기 타이밍 문제나, 특정 웹 렌더러(CanvasKit 등)와의 호환성 문제인지 확인 부탁드립니다.