iOS, Android, JavaScript 개발 환경에서는 카카오디벨로퍼스(Kakao Developers, 이하 개발자 웹사이트) 애플리케이션(이하 앱)에 Kakao SDK(Software Development Kit)를 연동해 카카오 API를 사용할 수 있습니다.
이 문서는 Legacy Kakao SDK for iOS(이하 Legacy iOS SDK) 사용법을 설명합니다.
다음 과정을 진행하려면 개발자 웹사이트 앱 설정에 iOS 플랫폼을 추가하고 번들 아이디(bundle ID)를 등록해야 합니다. 앱 설정에 번들 아이디가 등록되어 있지 않은 앱에서 API 호출 시 에러가 발생합니다. 또한 플랫폼 등록 시 발급되는 네이티브 앱 키가 프로젝트 설정에 필요합니다.
플랫폼 추가 방법은 애플리케이션 등록을 참고합니다.
SDK 다운로드에서 최신 버전 파일을 내려 받을 수 있습니다. iOS 앱 개발 도구인 Xcode에서 Legacy iOS SDK를 사용할 수 있도록 설정해야 합니다. Xcode에 대한 정보는 여기를 참고합니다. Legacy iOS SDK는 ARMv7, ARMv7s, ARM64를 지원하며 iOS 9.0 버전 이상이 필요합니다.
새로운 프로젝트에 Legacy iOS SDK를 사용하는 설정 방법은 다음과 같습니다.
[Build Phase] 메뉴의 [Link Binary With Libraries]에도 Kakao SDK 프레임워크가 올바르게 추가되어 있는지 확인합니다.
프레임워크(Framework)가 잘 추가되었다면 프로젝트의 [Build Settings] > [Linking] > [Other Linker Flags]에 -all_load
옵션을 추가합니다. 옵션 추가 후 다른 라이브러리와의 충돌로 빌드가 실패한다면 -force_load \$(SRCROOT)/KakaoOpenSDK.framework/KakaoOpenSDK
를 사용해 강제 로드합니다.
iOS SDK를 통해 카카오 API를 호출할 수 있도록 Info.plist 파일 또는 [Info] 메뉴의 Linking
설정에 KAKAO_APP_KEY
라는 이름으로 개발자 웹사이트 네이티브 앱 키(Native App Key) 값을 등록해야 합니다. 해당 키의 자료형(Type)은 String
으로, 값(Value)은 kakao${YOUR_NATIVE_APP_KEY}
형식으로 입력합니다.
다음은 앱 키가 123456789
인 경우의 설정 예시 스크린샷입니다.
카카오계정을 통한 인증과 카카오톡 메시지를 통한 앱 실행을 위해 [URL Schemes] 설정을 합니다. [Info] > [URL Type] > [URL Schemes] 항목에 네이티브 앱 키(Native App Key)를 kakao${YOUR_NATIVE_APP_KEY}
형식으로 등록합니다.
예를 들어 네이티브 앱 키가 "123456789"라면 [URL Schemes]에 "kakao123456789"라고 입력합니다.
이 설정은 kakao${NATIVE_APP_KEY}://kakaolink
와 같은 앱 실행 커스텀 URL 스킴을 생성하는 데 사용됩니다. 따라서 이 설정을 누락한다면 카카오톡 메시지를 통해 앱을 실행하는 것이 불가능해집니다.
위와 같이 설정한 후, iOS 앱에서 카카오 API를 호출하려면 Legacy iOS SDK 파일을 아래와 같이 임포트(import)해야 합니다.
#import <KakaoOpenSDK/KakaoOpenSDK.h>
iOS 9.0 이상에서는 plist 파일의 "LSApplicationQueriesSchemes" 키에 Legacy iOS SDK가 사용하는 카카오 앱들의 커스텀 URL 스킴(Custom URL Scheme)을 허용하는 앱 실행 허용 목록(Allow List)를 추가해야 합니다.
plist 설정의 스크린샷 또는 다음 예시를 참고해 "LSApplicationQueriesSchemes" 설정을 완료합니다. 이 설정은 사용자 정보 보호를 위한 OS 정책에 따라 필요한 것으로, 자세한 내용은 Privacy and Your App을 참고합니다.
<key>LSApplicationQueriesSchemes</key>
<array>
<!-- 공통 -->
<string>kakao0123456789</string>
<!-- 간편로그인 -->
<string>kakaokompassauth</string>
<string>storykompassauth</string>
<!-- 카카오톡링크 -->
<string>kakaolink</string>
<string>kakaotalk-5.9.7</string>
<!-- 카카오스토리링크 -->
<string>storylink</string>
</array>