react-native로 카카오 로그인을 하려 합니다.
import React, { useEffect } from 'react';
import { View, Text, TouchableOpacity, Alert } from 'react-native';
import { initializeKakaoSDK } from '@react-native-kakao/core'; // Kakao SDK 초기화 모듈
import { login as kakaoLogin, me as kakaoGetProfile } from '@react-native-kakao/user'; // Kakao 로그인 모듈
const App = () => {
// 앱이 시작될 때 카카오 SDK 초기화
useEffect(() => {
const appKey = '실제 Kakao 앱 키 사용';
initializeKakaoSDK(appKey); // SDK 초기화
}, []); // 빈 배열을 두어 한 번만 실행되도록 설정
// 카카오톡 로그인 함수
const handleKakaoLogin = async () => {
try {
const result = await kakaoLogin(); // 카카오톡 로그인 시도
console.log('카카오 로그인 성공:', result);
try {
const profile = await kakaoGetProfile();
console.log('카카오 유저 정보:', profile);
Alert.alert('로그인 성공', `환영합니다, ${profile.nickname}!`); // 로그인 성공 메시지
} catch (error: any) {
console.error('kakaoGetProfile 호출 실패:', error.response || error);
}
} catch (error) {
console.error('카카오 로그인 실패:', error);
Alert.alert('로그인 실패', '다시 시도해 주세요.');
}
};
return (
<View>
{/* Kakao Login Button */}
<TouchableOpacity onPress={handleKakaoLogin}>
<Text>카카오 로그인</Text>
</TouchableOpacity>
</View>
);
};
export default App;
이렇게 하면 콘솔에는 '카카오 로그인 성공: {“accessToken”: “NyDDjk8ZQPb_lt7n_lrJav9XTV1GGLYJAAAAAQo8JJkAAAGT19S2J1IZRy9oVvUS”, “accessTokenExpiresAt”: 1734536061, “accessTokenExpiresIn”: 43198, “idToken”: null, “refreshToken”: “WS2BmaPcZGp7nXCdmnoVOcjFrnXWKdD6AAAAAgo8JJkAAAGT19S2IlIZRy9oVvUS”, “refreshTokenExpiresAt”: 1739676861, “refreshTokenExpiresIn”: 5183998, “scopes”: [“profile_image”, “profile_nickname”], “tokenType”: null}'와 같이 출력됩니다.
그러곤 앱이 강제종료됩니다.
프로필 추출과 관련된 소스코드를 빼면 강제종료되지 않네요.
무엇을 의심해야 할까요?
@react-native-kakao/core": “2.2.6
@react-native-kakao/user”: "2.2.6이고
build.gradle는
dependencies {
implementation “com.kakao.sdk:v2-user:2.20.6”
implementation “com.kakao.sdk:v2-common:2.20.6”
}으로 설정하였습니다.