본문으로 건너뛰기

SDK 초기화

initializeKakaoSDK(appKey, options)로 카카오 SDK를 초기화합니다. 반환하는 Promise<void>가 완료되면 Android·iOS SDK 또는 웹 JavaScript SDK의 초기화가 끝난 상태입니다. 다른 카카오 API는 초기화를 기다린 뒤 호출합니다.

앱의 비동기 초기화 함수 안에서 네이티브 앱 키를 전달합니다.

import { initializeKakaoSDK } from '@react-native-kakao/core';

await initializeKakaoSDK('{{ native app key }}');

네이티브 옵션​

Android와 iOS에서 커스텀 URL 스킴과 SDK 내부 로깅을 설정할 수 있습니다. 웹에서는 이 두 옵션을 적용하지 않습니다.

옵션기본값의미
customSchemekakao{네이티브 앱 키}SDK의 인증·공유 콜백에 사용할 URL 스킴. ://를 제외한 스킴만 전달
loggingEnabledfalse카카오 네이티브 SDK 내부 로그 사용 여부
android.sdkIdentifier생략Android KA 요청 헤더 끝에 그대로 추가할 래퍼 SDK 식별자. iOS·웹에서는 사용하지 않음

iOS SDK 2.29.0의 Debug 빌드는 loggingEnabled와 별개로 콘솔 로그를 출력합니다. 토큰 갱신 요청의 로그와 응답 본문은 refreshToken의 ios.loggingEnabled로 숨길 수 있습니다.

커스텀 스킴은 카카오디벨로퍼스에 등록된 설정과 일치해야 합니다. 기존 멀티 앱 설정을 유지하는 경우에는 공식 멀티 앱 안내를 따릅니다. 값을 임의로 정하면 실제 로그인 콜백을 받을 수 없습니다.

await initializeKakaoSDK('{{ native app key }}', {
customScheme: '{{ registered custom scheme }}',
loggingEnabled: false,
});

Expo에서는 core 플러그인에도 같은 customScheme을 설정하고 prebuild를 다시 실행합니다. 플러그인은 활성화한 Android 인증·채널·배송지·인증서·공유 콜백과 iOS URL 타입에 이 스킴을 사용합니다.

[
"@react-native-kakao/core",
{
"nativeAppKey": "{{ native app key }}",
"customScheme": "{{ registered custom scheme }}",
"android": { "authCodeHandlerActivity": true },
"ios": { "handleKakaoOpenUrl": true }
}
]

Expo를 사용하지 않는다면 AndroidManifest.xml과 iOS Info.plist의 콜백 스킴을 직접 맞춥니다. SDK 초기화 옵션만 바꾸면 운영체제의 URL 등록은 변경되지 않습니다.

Android에서 래퍼 SDK의 참고용 식별자를 추가하려면 android.sdkIdentifier를 지정해요. 카카오 SDK는 이 문자열을 KA 헤더 끝에 그대로 붙여요. 기존 헤더 필드와 구분하려면 다음 예시처럼 앞에 공백을 포함해요. 이 옵션은 런타임 초기화에만 사용하므로 Expo 플러그인 설정은 필요하지 않아요.

await initializeKakaoSDK('{{ native app key }}', {
android: { sdkIdentifier: ' wrapper/my-sdk' },
});

웹 초기화​

웹에서는 JavaScript SDK 스크립트를 먼저 로드하고 web에 JavaScript 키와 REST API 키를 함께 전달합니다. 스크립트 설치 방법은 웹 설정을 참고합니다.

await initializeKakaoSDK('{{ native app key }}', {
web: {
javascriptKey: '{{ javascript key }}',
restApiKey: '{{ rest api key }}',
},
});

SDK 정보 조회​

getKakaoSDKInfo()로 실제 연결된 SDK 버전과 초기화 상태를 확인합니다. SDK 버전을 별도로 덮어썼다면 설치된 버전이 반환됩니다.

import { getKakaoSDKInfo } from '@react-native-kakao/core';

const { version, isInitialized } = await getKakaoSDKInfo();
필드지원 플랫폼의미
versionAndroid·iOS·웹현재 Kakao SDK 버전
isInitializedAndroid·iOS·웹SDK 초기화 여부
appKeyAndroid·iOS초기화에 사용한 네이티브 앱 키. 초기화 전에는 생략
kaHeaderAndroid·iOSSDK가 사용하는 KA 요청 헤더. 초기화 전에는 생략
redirectUriAndroid·iOS현재 스킴을 사용하는 {스킴}://oauth. 초기화 전에는 생략
loggingEnabledAndroid·iOSSDK 내부 로깅 사용 여부

웹 응답에는 version과 isInitialized만 포함됩니다.