/
Android SDK 설치

Android SDK 설치


1. 설치 환경

  • IDE: Android Studio

  • JDK: JDK 8이상

  • Android SDK: Android 14 (API 34)

  • OS : Android 6.0, API 23 이상 지원

  • Gradle Version 6.1.1 사용

2. SDK 환경 설정

2.1. build.gradle(project level)

buildscript {     repositories {         google()         mavenCentral()     }     dependencies {         classpath 'com.android.tools.build:gradle:4.0.1'         // 최소 3.1.2 버전 이상 필요         classpath 'com.google.gms:google-services:4.3.3'     } }    allprojects {     repositories {         google() mavenCentral()         maven {             url 'https://devrepo.kakao.com/nexus/content/groups/public/'             name 'kakao'         }         maven {             url 'https://s3.ap-northeast-2.amazonaws.com/kakao-sdk-release/release/'             name 'Kakaogames'         }     } }

2.2. gradle.properties

# Project-wide Gradle settings. org.gradle.jvmargs=-Xmx4608M KAKAO_GAME_SDK_VERSION=4.0.0    # 아래 2개 설정 추가 android.useAndroidX=true android.enableJetifier=true

2.3. build.gradle(app level)

적용한 application 의 build.gradle 파일에 아래와 같이 필요한 모듈을 선택적으로 설정합니다.

apply plugin: 'com.android.application'   android { ... // Java 8 언어 기능을 사용하기 위해 필요 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } ...    dependencies { // 게스트 인증을 사용하는 게임에서 필요. implementation "com.kakaogame.publishing:idp_device:$KAKAO_GAME_SDK_VERSION" // 카카오 인증을 사용하는 게임에서 필요. implementation "com.kakaogame.publishing:idp_kakao:$KAKAO_GAME_SDK_VERSION" // 애플 인증을 사용하는 게임에서 필요. implementation "com.kakaogame.publishing:idp_siwa:$KAKAO_GAME_SDK_VERSION" // 게임SDK의 주요 기능을 사용하기 위해서 필요. implementation "com.kakaogame.publishing:gamesdk:$KAKAO_GAME_SDK_VERSION" } apply plugin: 'com.google.gms.google-services' // Google Services plugin

2.4. 외부 라이브러리 dependencies

각 필요한 라이브러리들이 아래 버전으로 dependency 가 걸려있습니다. 카카오 게임SDK를 연결 시 자동으로 포함됩니다.

SDK version

Module

External Libraries

SDK version

Module

External Libraries

4.5.0

gamesdk

com.google.android.gms:play-services-ads-identifier:18.0.0
androidx.appcompat:appcompat:1.6.1
androidx.legacy:legacy-support-v4:1.0.0
androidx.core:core-ktx:1.10.0
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.0
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.0
androidx.databinding:viewbinding:7.0.4
com.google.android.play:review:2.0.0
com.google.android.play:review-ktx:2.0.0
com.google.android.play:app-update:2.0.0
com.google.android.play:app-update-ktx:2.0.0
com.android.installreferrer:installreferrer:2.2
com.github.bumptech.glide:glide:4.10.0
androidx.cardview:cardview:1.0.0

idp_kakao

com.kakao.sdk:{module}:2.18.0

 만약 게임에서 위 라이브러리와 dependencies가 겹치는 외부 라이브러리를 사용하는 경우 아래와 같이 해당 링크를 제거하여 버전이 높은 쪽으로 사용할 수 있습니다.

build.gradle(app level)

3. IDP 인증 정보 설정

3.1. 카카오 인증 정보 설정

src/main/res/values/kakao_game_kakao_auth.xml 에 아래 리소스 파일 추가 및 value 설정합니다.

"카카오앱키"값은 발급 받은 값으로 변경이 필요합니다.

res/values/kakao_game_kakao_auth.xml

3.2. SigninWithApple 인증 정보 설정

src/main/res/values/kakao_game_siwa_auth.xml 에 아래 리소스 파일 추가 및 value 설정합니다.

"SIWA클라이언트"값은 애플에서 발급 받은 값으로 변경 필요합니다.

res/values/kakao_game_siwa_auth.xml

4. AndroidManifest.xml 파일 설정

게임 앱의 AndroidManifest.xml 파일에 아래 사항들을 설정하여야 합니다.

4.1. 공통 설정

  • SDK 최소 지원 버전은 23 이상으로 설정합니다

    • android:minSdkVersion="23"

  • SDK 타겟 버전을 31 으로 설정합니다.

    • android:exported 명시적 선언 추가

  • SDK 에서는 아래 퍼미션들을 공통으로 사용합니다

    • android.permission.INTERNET

    • android.permission.ACCESS_NETWORK_STATE

  • 다중 화면 처리를 위한 설정을 추가합니다.

    • 안드로이드 폰의 화면 분할 및 폴더블 폰에 대응하기 위해서 application 설정에 아래와 같이 추가합니다.

      • android:resizeableActivity="true"

    • 각 추가되는 Activity 설정에 아래와 같이 추가합니다.

      • android:configChanges="orientation|screenSize|keyboard|screenLayout|screenSize|smallestScreenSize"

  • API 23 이상에서는 앱이 일반 텍스트 HTTP와 같은 일반 텍스트 네트워크 트래픽을 사용하는지 여부를 설정할 수 있습니다.

    • android:usesCleartextTraffic="true"

  • URLScheme 추가

    • 아래와 같이 게임의 메인 Activity 에 intent filter 설정을 해주어야 합니다.

      scheme은 "kakaogame" + 앱아이디 로 구성 됩니다.(예를들어 앱ID가 123456이면 scheme 값은 "kakaogame123456" 이 됩니다.)

AndroidManifest.xml (공통 설정)

4.2. 카카오 인증 설정

  • 메인 Activity에 아래 intent filter 선언이 추가 되어야 합니다.

  • AuthCodeHandlerActivity 선언과 intent filter 선언이 필요합니다.

  • Android 12 대응하여 exported가 명시적으로 선언되어야 합니다.

AndroidManifest.xml (카카오 인증 설정)

4.3. Http 사용 설정

targetSdkVersion을 28 버전 이상으로 설정하고 http 통신을 사용하는 게임은 아래와 같은 설정이 필요합니다.

카카오 게임 SDK 내부에서는 http를 사용하지 않습니다. 개발사에서 cdn등 이슈로 http 콜이 필요한 경우에만 설정합니다.

  • http 콜이 필요한 도메인 설정

    • res/xml/network_security_config.xml 파일 생성하여 http 통신이 필요한 domain을 추가

      network_security_config.xml

       

    • AndroidManifest.xml 내 Application에 위에서 생성한 파일을 networkSecurityConfig 로 설정

      AndroidManifest.xml

4.4. 게임 내 지원 언어 리소스

라이브러리에서 게임 내 지원 언어 외 추가적인 언어 팩이 있을 때, 해당 언어를 제거하고 싶다면 아래 위치의 폴더를 제거 해주시면 됩니다.

예를 들어, 일본어 언어 설정을 제거하고 싶을 때에는 KakaoGameSDK>res>values-ja 폴더를 제거합니다.

5. 키 해시 확인 및 등록 방법

  • 앱의 빌드를 위해서는 빌드 머신의 키 해시를 등록해야 하며 다음과 같은 방법으로 키 해시를 확인하실 수 있습니다.

  • 디버그 키 해시 및 릴리즈 키 해시를 아래 가이드대로 구해서 [게임센터 > 게임관리 > 게임 마켓 정보 > 키해시등록] 메뉴에 등록해주세요.

5.1. 디버그 키 해시 구하기

  • Android SDK를 설치하면 androiddebugkey의 alias로 debug.keystore 파일에 개발용 인증서가 저장되어 있습니다. 인증서를 확인하는 방법은 아래와 같습니다. (주의: 아래는 실제 키 해시를 구하는 방법은 아닙니다.)

  • keystore 등록해야할 키 해시는 아래와 같이 수행하여 구해야 합니다.

    • 해당 샘플을 빌드한 머신에서 수행해야 합니다.

    • openssl 버전은 1.0.2 버전 혹은 그 이상것을 사용 해주시기 바랍니다.

  • 위 방법은 리눅스에서는 정상 동작을 보증하나, 윈도우즈 환경에서는 제대로 값을 얻지 못할 수도 있습니다.

    • 키 해시 오류가 날 경우, 아래의 방법으로도 시도해보시기 바랍니다.

[debug_keystore_path]

  • OS X와 리눅스 : Eclipse "ADT > Preferences > Android > Build > Default debug keystore" 에서 확인 가능합니다. 
    (예 : ~/.android/debug.keystore)

  • Windows : Eclipse "Window > Preferences > Android > Build > Default debug keystore" 에서 확인 가능합니다.

  • Windows Vista와 Windows 7 (예: C:\Users\.android\debug.keystore)

  • Windows XP (예 : C:\Documents and Settings\.android\debug.keystore)

  • keytool : $JAVA_HOME/bin 아래에 존재합니다.

  • openssl : Windows의 경우는 다운 받아 설치합니다.

5.2. 릴리즈 키 해시 구하기

  • invalid android_key_hash 오류 확인

    • 키 해시를 구하여 게임센터에 등록한 후에도 지속적으로 <com.kakao.util.exception.KakaoException: AUTHORIZATION_FAILED : invalid android_key_hash or ios_bundle_id or web_site_url> 오류를 받는다면 아래와 같이 정상적인 키 해시를 사용하고 있는지 확인하실 수 있습니다. 
      게임에서 사용하는 MainActivity 클래스에서 onCreate()를 임시로 아래와 같이 변경합니다.

    • MainActivity

      위 코드를 실행시켜 Logcat 출력에 다음과 같이 표시된 메시지에서 키 해시를 확인합니다.

6. 빌드 확인

프로젝트가 정상적으로 빌드 되는지 확인합니다. 

Related content