본문으로 건너뛰기

Android 설정

Android 설정

정보

이 문서는 Expo를 사용하는 경우, 콘솔 설정 부분만 확인하면 됩니다.

Kakao SDK 문서를 참고하여 설정에 관한 더 자세한 정보를 확인할 수 있습니다.

안드로이드 부분을 구성하는 방법은 다음과 같습니다.

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

feat1

위 사진과 같이 카카오 개발자 콘솔에서 어플리케이션을 추가합니다.

이제 플랫폼 탭에 들어가 Android앱을 추가해주고 패키지명, 키 해시등을 등록해줍니다.

feat2

키 해시 추출 및 등록

키 해시 공식 문서

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

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

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

이것과 더불어 Google Play Console에서 발급해주는 키 해시가 하나 더 있습니다.

Google Play Console에선 앱을 릴리즈 할 때마다 App signing을 이용하여 보안을 개선하고 관리되는 Signing Key를 사용합니다.

이것에 대한 키 해시는 이 문서를 참고해 얻을 수 있습니다.

이것을 등록하지 않을 시 실제 플레이 스토어에 앱을 출시해 구동시킬 때 Kakao SDK가 동작하지 않습니다.

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

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

키 해시 직접 생성은 공식 문서에서 참고해주세요.

프로젝트 권한

안드로이드의 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"
...

Proguard 규칙 설정

만약 R8 컴파일러를 이용해 난독화를 수행한다면 다음과 같은 구문이 proguard-rules.pro에 들어가야합니다.

보통 React Native설정엔 android/app/build.gradleenableProguardInReleaseBuilds로 설정 할 수 있게 되어있습니다.

최신 규칙은 공식 문서를 참고하시는 것을 추천드립니다.

proguard-rules.pro
-keep class com.kakao.sdk.**.model.* { <fields>; }
-keep class * extends com.google.gson.TypeAdapter

# https://github.com/square/okhttp/pull/6792
-dontwarn org.bouncycastle.jsse.**
-dontwarn org.conscrypt.*
-dontwarn org.openjsse.**

#------------------RETROFIT---------------------
#R8 full mode strips generic signatures from return types if not kept.
-if interface * { @retrofit2.http.* public *** *(...); }
-keep,allowoptimization,allowshrinking,allowobfuscation class <3>
#-------------------END--------------------------

Gradle Dependency Repository 추가

Kakao SDK의 의존성들을 불러오기 위해 패키지를 탐색할 gradle repository를 추가해주어야 합니다.

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

자신의 Android project가 settings.gradle 에서 의존성 repository를 선언하는 방법을 쓴다면, 공식 문서대로 설정하시면 됩니다.