본문으로 건너뛰기

Android 설정

Android 설정​

정보

Expo를 사용한다면 이 문서에서 콘솔 설정 부분만 확인하면 됩니다.

설정에 관한 자세한 내용은 Kakao SDK 문서에서 확인할 수 있습니다.

아래 순서로 Android를 설정합니다.

카카오 콘솔에서 애플리케이션 생성 및 플랫폼 등록​

feat1

위 사진을 참고해 카카오 개발자 콘솔에서 애플리케이션을 추가합니다.

플랫폼 탭에서 Android 앱을 추가하고 패키지명, 키 해시 등을 등록합니다.

feat2

키 해시 추출 및 등록​

키 해시 공식 문서

키 해시(Key Hash)는 인증서(Certificate)의 지문 값(Certificate fingerprints)을 해시한 값으로, 악성 앱인지 판별하는 데 사용됩니다. 카카오 API를 호출할 때 카카오 API 서버는 요청 헤더의 키 해시값이 카카오 플랫폼에 등록한 값과 일치하는지 확인합니다.

키 해시는 디버그 키 해시(Debug key hash) 와 릴리스 키 해시(Release key hash) 두 가지가 있습니다.

  • 디버그 키 해시: 프로젝트를 처음 생성하거나 디버그할 때 안드로이드 스튜디오가 개발 환경에 맞게 자동 생성한 디버그 인증서를 해시한 값
  • 릴리스 키 해시: 앱 스토어에 앱을 배포하기 위해 생성한 릴리스 인증서를 해시한 값
정보

Google Play Console에서 발급하는 키 해시도 있습니다.

Google Play Console은 앱을 릴리스할 때마다 App signing을 통해 관리하는 Signing Key를 사용해 보안을 강화합니다.

해당 Signing Key의 키 해시는 이 문서를 참고해 얻을 수 있습니다.

이 키 해시를 등록하지 않으면 플레이 스토어에 출시한 앱에서 Kakao SDK가 동작하지 않습니다.

키 해시는 core 패키지의 getKeyHashAndroid() 함수로 얻을 수 있습니다.

디버그, 릴리스, 플레이 스토어 환경에서 각각 이 함수를 호출해 결과값을 콘솔이나 텍스트에 출력한 뒤 그대로 사용하면 됩니다.

키 해시를 직접 생성하려면 공식 문서를 참고하세요.

프로젝트 권한​

Android의 AndroidManifest.xml에 인터넷 사용 권한을 추가합니다.

AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sample">

<!-- 인터넷 사용 권한 설정-->
<uses-permission android:name="android.permission.INTERNET" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
...

R8 코드 축소 규칙​

@react-native-kakao/core의 Android 라이브러리를 앱에 연결하면 Kakao SDK 2.25.1과 Retrofit에 필요한 소비자 규칙이 앱 빌드에 자동으로 포함됩니다. React Native의 autolinking을 사용하는 앱은 릴리스 빌드에서 R8 코드 축소(minifyEnabled true)를 켜도 앱의 proguard-rules.pro에 Kakao 전용 규칙을 추가할 필요가 없습니다. @react-native-kakao/user를 사용하는 앱도 core 라이브러리를 함께 연결하면 같은 규칙을 받습니다.

autolinking을 사용하지 않고 Android 라이브러리를 직접 연결한다면 core 라이브러리를 Gradle 의존성에 추가하세요. core 라이브러리를 포함할 수 없는 방식으로 통합한다면 설치한 패키지의 node_modules/@react-native-kakao/core/android/consumer-rules.pro 내용을 앱의 proguard-rules.pro에 복사해야 합니다.

Gradle 의존성 저장소 추가​

Kakao SDK의 의존성을 내려받을 수 있도록 Gradle 저장소를 추가해야 합니다.

android/build.gradle
allprojects {
repositories {
maven {
url "https://devrepo.kakao.com/nexus/content/groups/public/"
}
}
}
팁

Android 프로젝트가 settings.gradle에서 의존성 저장소를 선언한다면 공식 문서에 따라 설정하시면 됩니다.