iOS SDK 설치
- 1 1. 실행 환경
- 2 2. SDK 파일 구성
- 3 3. SDK 설치
- 3.1 3.1. 카카오게임 SDK 추가(cocoapods)
- 3.2 3.2. 카카오게임 SDK 추가(zip package)
- 3.3 3.3. Other Linker Flags 설정
- 3.4 3.4. 카카오게임 SDK 속성 설정
- 3.5 3.5. URLScheme 추가
- 3.6 3.6. LSApplicationQueriesSchemes 설정
- 3.7 3.7.1. 접근 권한 설정
- 3.8 3.7.2. 접근 권한 다국어 리소스 설정
- 3.9 3.8. 게임 내 지원 언어 리소스
- 3.10 3.9 (참고) 다중 Bundle ID 지원에 대한 안내
- 3.11 3.10. SceneDelegate 안내
1. 실행 환경
IDE : Xcode 15.0 이상.
iOS : iOS 13.0 이상.
2. SDK 파일 구성
KakaoGameFramework 폴더
카카오게임 SDK 프레임워크와 리소스 번들로 구성되어 있습니다.
IDPFramework 폴더
카카오 프레임워크가 포함되어 있습니다.
외부 라이브러리 버전
Kakao
KakaoSDK Version : 2.22.1
3. SDK 설치
이 장에서는 XCode프로젝트에 SDK를 설치하는 과정을 예제 중심으로 설명하고 있습니다.
3.1. 카카오게임 SDK 추가(cocoapods)
새 터미널 창을 열고 Xcode 프로젝트 위치로 이동합니다.
Podfile을 열고 아래에 기술된 내용을 참고해서 작성합니다. 아래는 추가해야 할 내용을 케이스별로 사용하시면 됩니다.
full package 설치
iOS cocoapods
# 모든 카카오게임 프레임워크 설치 pod 'KakaoGameSDK', '4.5.0'
Kakao 모듈만 사용할 경우
iOS cocoapods
# 카카오 모듈만 설치 pod 'KakaoGameSDK/KakaoGameKakao', '4.5.0'
터미널로 이동하여 다음의 명령어를 통해서 카카오게임 프레임워크를 설치합니다.
pod install
3.2. 카카오게임 SDK 추가(zip package)
다운받은 파일의 압축을 풀고, "KakaoGameFramework" 폴더와 "IDPFramework" 폴더를 Xcode프로젝트에 추가합니다.
프레임워크를 필요에 따라 복사될 수 있도록 "Copy items if needed"를 반드시 체크합니다.
Framework가 잘 추가되었는지 아래와 같이 확인합니다.
추가가 되지 않았다면 아래와 같이 수동으로 직접 추가합니다.
3.3. Other Linker Flags 설정
프로젝트의 "Build Settings" 탭의 "Other Linker Flags"에 "-ObjC", “-lc++”를 추가합니다.
3.4. 카카오게임 SDK 속성 설정
프로젝트의 "Info" 탭의 "Custom iOS Target Properties"에 카카오게임 SDK관련 속성을 추가해야 합니다.
키 | 자식 키 | 타입 | 필수 | 설명 | 예시 |
---|---|---|---|---|---|
SHOW_ADID_USAGE_POPUP |
| Bool | X | 광고식별자 팝업 허용 플래그. (1 또는 YES로 설정시 팝업 노출) | YES |
Signin With Apple 설정을 위해 capablities 항목도 추가 설정합니다.
3.5. URLScheme 추가
카카오 게임
"kakaogame"과 앱 아이디(KakaoGameConfiguration-AppId)를 합한 문자열을 추가합니다. ex)kakaogame103815
카카오
"kakao"와 카카오 디벨로퍼 사이트에서 가져온 네이티브 앱 키(앱 시크릿)를 합한 문자열을 추가합니다. ex)kakao951b75bf17fe0885ab5106ba2a9f9bc9
멀티앱 카카오 로그인을 지원함에 따라 멀티앱 로그인 스펙을 적용하고 싶은 게임의 경우 다음과 같이 지정합니다.(카카오 개발자 센터 설정 필요하므로 기술PM 문의)
적용하고 싶은 게임의 멀티앱의 번들아이디 com.kakaogame.appOne / com.kakaogame.appTwo 각각의 앱 프로젝트 Info.plist에서 설정 필요
URL Scheme 추가하는 부분에 Identifier에 "KakaoAppLogin"이라고 추가 후에 URL Scheme 항목은 kakao{appSecret}-{bundleId} 형태로 등록
kakao951b75bf17fe0885ab5106ba2a9f9bc9-com.kakaogame.appOne
kakao951b75bf17fe0885ab5106ba2a9f9bc9-com.kakaogame.appTwo
스크린샷 참고
위와 같이 추가후에 각 앱에서 빌드 하면 각각의 앱에서 카카오 로그인이 가능합니다.
3.6. LSApplicationQueriesSchemes 설정
Info.plist파일에 "LSApplicationQueriesSchemes" (Queried URL Schemes) 항목을 추가해야 합니다.
아래는 추가해야 할 내용입니다.
아래 그림과 같이 info.plist를 오른쪽 클릭하여, [Open As] - [Source Code]로 클릭합니다. 위 xml을 복사하여, 붙여 넣습니다.
3.7.1. 접근 권한 설정
Privacy - Description
iOS10부터 시스템앱에 접근을 할 때 안내문구를 반드시 입력해야합니다. 입력되지 않았을 경우는 스토어에 빌드 업로드시 거부 될 수 있습니다.
SHOW_ADID_USAGE_POPUP을 사용하는 경우는 접근 권한 문구 설정이 필요합니다.
접근 권한 | 안내 문구 |
---|---|
NSUserTrackingUsageDescription | 맞춤형 광고를 제공할 용도로 사용합니다. |
개발사에서 더 필요한 접근 권한이 있다면, 필요에 따라 추가 입력하시면 됩니다.
3.7.2. 접근 권한 다국어 리소스 설정
info.plist에 작성한 접근 권한 설정 문구는 기본적으로 다국어화가 적용되지 않습니다.
다국어 리소스를 설정하기 위해서는 추가적인 작업이 필요합니다.
프로젝트에 InfoPlist.strings 파일을 추가합니다.
설정할 다국어를 추가합니다.
키를 추가 후 다국어를 입력합니다.
InfoPlist.strings (en.lproj 영어 설정 파일 예시)
InfoPlist.strings (ja.lproj 일본어 설정 파일 예시)
InfoPlist.strings (ko.lproj 한국어 설정 파일 예시)
InfoPlist.strings (zh-hant.lproj 중국어(번체) 설정 파일 예시)
3.8. 게임 내 지원 언어 리소스
라이브러리에서 게임 내 지원 언어 외 추가적인 언어 팩이 있을 때, 해당 언어를 제거하고 싶다면 아래 위치의 폴더를 제거 해주시면 됩니다.
KakaoGameSDK에서 제공하는 언어를 사용자의 기기 언어 설정에 맞게끔 로드하기 위해서 info.plist 설정 필요.
키 | 타입 | 설명 | 예시 |
---|---|---|---|
Localized resources can be mixed | Boolean | KakaoGameSDK에서 제공하는 언어를 사용자의 기기 언어 설정에 맞게끔 로드하기 위해서 설정 필요. | YES |
KakaoGameFramwork폴더 > KakaoGameResources.bundle 파일을 찾아서 '패키지 내용보기' 를 클릭한다.
제거 하고 싶은 언어의 폴더를 삭제한다.
3.9 (참고) 다중 Bundle ID 지원에 대한 안내
한 앱(app id)에 대하여 bundle ID를 여러 개 사용할 수 있습니다.
테스트 빌드 등 복수의 번들 아이디가 필요한 경우를 지원 해드립니다.
단, 게임센터에 등록된 bundle ID는 라이브 버전 (마켓에 올라가는 빌드 버전)과 일치해야 합니다.
아래의 규칙에 해당하는 bundle ID는 카카오게임 API를 호출할 수 있습니다.
단, 일부 기능에 대해 다소 제약이 있을 수 있습니다.
3.10. SceneDelegate 안내
KakaoGameSDK는 현재 SceneDelegate를 지원하지 않습니다.
따라서 프로젝트가 SceneDelegate를 사용하도록 만들어졌을 경우 삭제가 필요합니다.
SceneDelegate.swift 파일을 삭제합니다
Info.plist에 있는 ‘Application Scene Manifest’를 삭제합니다
AppDelegate에 구현되어 있는 UISceneSession 관련 메서드를 삭제합니다.
AppDelegate에 UIWindow 프로퍼티를 추가합니다.