사이드 메뉴
커뮤니케이션
API 제공
어드민 API
시작하기
이 문서는 Partner iOS SDK(Kakao Partner SDK for iOS) 추가 사용 방법을 안내합니다. 공통 설명은 오픈 문서를 참고합니다.
iOS의 경우, API 요청의 유효성 검증과 올바른 쿼터 적용을 위해 정해진 규칙에 따라 실제 서비스 앱과 테스트 앱의 번들 ID(Bundle ID)를 구분해 사용해야 합니다. 서비스 앱과 테스트 앱의 번들 ID 사용 규칙은 아래와 같습니다.
- 번들 ID가 3단어 이상을 조합해 구성돼 있을 것
- 용도별 번들 ID 규칙에 부합할 것:
- 서비스 앱: 카카오디벨로퍼스에 등록된 번들 ID 사용
- 테스트 앱: 카카오디벨로퍼스에 등록된 번들 ID에 온점(.)을 구분자로 페이즈나 용도 식별을 위한 단어 추가해 사용,
${BUNDLE_ID}.${POSTFIX}형식
- 테스트 앱의 번들 ID는 카카오디벨로퍼스에 등록 불필요
카카오디벨로퍼스에 등록된 앱의 번들 ID와 정확히 일치하지 않는 빌드는 테스트용으로 간주되어 월 30만 건의 쿼터가 적용됩니다. iOS 위젯(Widget) 사용 시, 리얼 페이즈 위젯의 번들 ID가 테스트 앱과 같은 ${BUNDLE_ID}.${POSTFIX} 형식일 경우에는 [서비스] API플랫폼 아지트로 쿼터 적용 예외 신청을 해야 합니다.
아래 예시를 참고합니다.
예시: 서비스 앱과 테스트 앱 번들 ID
| 앱 | 번들 ID | 개별 앱 생성 필요 여부 |
|---|---|---|
| 서비스 앱 | com.kakao.real | 필요 |
| 테스트 앱 1 | com.kakao.real.alpha | 불필요 |
| 테스트 앱 2 | com.kakao.real.alpha.a | 불필요 |
| 테스트 앱 3 | com.kakao.real.alpha.a.b | 불필요 |
예시: 위젯 번들 ID
| 앱 | 번들 ID | 참고 |
|---|---|---|
| 카카오톡 서비스 앱 | com.iwilab.KakaoTalk | - |
| 카카오톡 서비스 투데이 위젯 | com.iwilab.KakaoTalk.Today | 실제 서비스 위젯의 번들 ID가 ${BUNDLE_ID}.${POSTFIX} 형식이므로 쿼터 적용 예외 신청 필요 |
개발 환경을 위한 페이즈 설정을 사용할 경우, 페이즈별로 앱 실행 허용 목록을 설정해야 합니다. Queried URL Schemes(또는 LSApplicationQueriesSchemes)에 추가해야 할 값은 아래를 참고합니다.
| 페이즈 | 카카오톡 | 카카오톡 공유 |
|---|---|---|
| .Dev | alphakompassauth | alphalink |
| .Sandbox | alphakompassauth | alphalink |
| .Cbt | kakaokompassauth | kakaolink |
| .Production | kakaokompassauth | kakaolink |

SPM(Swift Package Manager)로 Partner iOS SDK를 설치할 수 있습니다.
Partner iOS SDK 2.23.0 버전부터 Cocoapods으로 설치를 지원하지 않습니다.
Xcode의 [Project Target] > [Package Dependencies] > [Packages] 메뉴에서 아래의 리포지토리(Repository) URL로 검색해 Partner iOS SDK를 설치할 수 있습니다. 필요한 모듈만 선택해 설치할 수 있습니다. 자세한 안내는 설치를 참고합니다.
| SDK | 리포지토리 이름 | 리포지토리 URL |
|---|---|---|
| Partner iOS SDK | kakao-partner-ios-sdk | https://github.com/kakao/kakao-partner-ios-sdk |
| ReactiveX Partner iOS SDK | kakao-partner-ios-sdk-rx | https://github.com/kakao/kakao-partner-ios-sdk-rx |

iOS 앱의 각 파일에서 Partner iOS SDK를 사용하려면 필요한 모듈의 파일을 임포트(import)해야 합니다. 제품별로 임포트해야 하는 모듈은 아래와 같습니다.
// Partner iOS SDKimport KakaoSDKCommonimport KakaoPartnerSDKCommon// ReactiveX Partner iOS SDKimport KakaoSDKCommonimport RxKakaoSDKCommonimport KakaoPartnerSDKCommon
iOS 앱에서 iOS SDK를 사용하려면, iOS SDK를 임포트(import) 후 네이티브 앱 키를 사용해 initSDK() 메서드로 iOS SDK를 초기화해야 합니다. AppDelegate.swift에 Kakao SDK를 초기화하는 코드를 추가합니다.
SwiftUI App Life Cycle 사용 시에는 프로젝트와 함께 생성되는 ${PROJECT_NAME}App 클래스가 AppDelegate.swift를 대신하므로, 해당 클래스 내부에 Kakao SDK 초기화 코드를 추가합니다.
Partner iOS SDK는 개발 환경을 지원하기 위해 페이즈 설정 기능을 제공합니다. 초기화 시 페이즈 설정이 가능하며, 각 페이즈에 맞는 카카오디벨로퍼스 앱의 네이티브 앱 키를 사용해야 하는 점에 주의합니다.
아래는 샌드박스 페이즈로 설정하는 Partner iOS SDK 초기화 예시입니다.
import KakaoSDKCommonimport KakaoPartnerSDKCommonfunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {...// Sandbox 설정으로 SDK 초기화// sdkIdentifier 파라미터로 특정 서비스 SDK를 식별할 수 있는 키, 값 전달 가능KakaoSDK.initSDK(appKey: "${SANDBOX_NATIVE_APP_KEY}",loggingEnable: true,hosts: Hosts(phase: .Sandbox),sdkIdentifier: SdkIdentifier(infos:["${CUSTOM_IDENTIFIER_KEY}":"${CUSTOM_IDENTIFIER_VALUE}"]))...}
초기화 시 사용할 수 있는 파라미터는 아래와 같습니다.
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| appKey | String | 네이티브 앱 키 특정 페이즈로 초기화하려는 경우, 초기화하려는 페이즈의 앱 키 사용 | O |
| loggingEnabled | Boolean | SDK의 내부 로그 기능 활성화 여부 | X |
| hosts | Hosts | 특정 페이즈로 초기화하려는 경우, 사용할 페이즈 지정Phase에 미리 정의된 값 사용 | X |
| approvalType | ApprovalType | 다음 서비스 전용, 프로젝트 앱에서만 사용 초기화 시 approvalType 파라미터에 ApprovalType.project()를 전달해 프로젝트 타입으로 설정 | X |
| sdkIdentifier | SdkIdentifier | KA 헤더 정보에 포함할 서비스 SDK 식별자 여러 개의 서비스 SDK 정보 전달 가능 카카오게임 SDK 등 서비스 SDK에서 Partner iOS SDK를 사용할 경우, 요청 로그에서 특정 서비스 SDK의 버전이나 종류를 식별하기 위해 사용 (예: sdkIdentifier: SdkIdentifier(infos:["game_sdk":"3.0.0"])) | X |
Partner iOS SDK 2.8.3 버전부터 SDK 초기화에 사용하는 클래스의 이름이 변경되었습니다.
-
KakaoSDKCommon → KakaoSDK
-
RxKakaoSDKCommon → RxKakaoSDK
Partner iOS SDK의 페이즈는 아래와 같이 4가지로 정의되어 있습니다.
| 페이즈 | 설명 |
|---|---|
| .Dev | 개발 중 테스트용 앱, 카카오디벨로퍼스 알파(Alpha) 페이즈(http://alpha-developers.kakao.com)에 등록된 앱 키 사용 |
| .Sandbox | 샌드박스 테스트용 앱, 카카오디벨로퍼스 샌드박스(Sandbox) 페이즈(http://sandbox-developers.kakao.com)에 등록된 앱 키 사용 |
| .Cbt | CBT용 앱, 카카오디벨로퍼스 프로덕션(Production) 페이즈(http://developers.kakao.com)에 등록된 앱 키 사용 |
| .Production | 프로덕션 앱, 카카오디벨로퍼스 프로덕션 페이즈(http://developers.kakao.com)에 등록된 앱 키 사용 |
Partner iOS SDK가 제공하는 카카오 및 공동체 전용 모듈 정보는 아래와 같습니다. 일부 특화 기능은 권한이 있어야 사용할 수 있습니다. 오픈 API 사용 서비스를 위한 공개 SDK의 모듈 정보는 모듈 정보에서 확인할 수 있습니다.
| 모듈 | 클라이언트 | 설명 |
|---|---|---|
KakaoPartnerSDKCommon | - | 필수 요소를 담은 공통 모듈 특화 기능: 페이즈 지정 초기화 |
KakaoPartnerSDKAuth | AuthApi | 카카오 로그인 인증 및 토큰 관리 모듈 특화 기능: 그룹 앱 토큰 발급 API |
KakaoPartnerSDKUser | UserApi | 카카오 로그인, 사용자 정보 API 모듈 특화 기능: 카카오 및 공동체 전용 사용자 정보, 연령인증 API, 배송지 API |
KakaoPartnerSDKShare | ShareApi | 카카오톡 공유 API 모듈 특화 기능: 말풍선 출처 앱 변경 |
KakaoPartnerSDKTalk | TalkApi | 카카오톡 채널, 카카오톡 소셜, 카카오톡 메시지 API 모듈¹⁾ 특화 기능: 앱에 연결되지 않은 친구(초대 친구), 채팅방, 채팅방 멤버 정보 조회 API |
KakaoPartnerSDKFriend | PickerApi | 피커 API 모듈¹⁾ 특화 기능: 앱에 연결되지 않은 친구(초대 친구), 채팅방, 채팅방 멤버 피커 |
KakaoPartnerSDKUser 모듈과 함께 사용해야 함Partner iOS SDK의 일부 모듈은 다른 모듈에 의존성이 있으며, 각 모듈은 설치 시 의존하는 모듈을 자동으로 함께 설치합니다. 모듈간 의존성 구조는 아래 이미지를 참고합니다.

KakaoPartnerSDKAuthㄴ KakaoPartnerSDKCommon (Dependency)ㄴ KakaoSDKAuth (Dependency)KakaoPartnerSDKUserㄴ KakaoPartnerSDKAuth (Dependency)ㄴ KakaoSDKUser (Dependency)KakaoPartnerSDKShareㄴ KakaoPartnerSDKCommon (Dependency)ㄴ KakaoSDKShare (Dependency)KakaoPartnerSDKTalkㄴ KakaoPartnerSDKUser (Dependency)ㄴ KakaoSDKTalk (Dependency)KakaoPartnerSDKFriendㄴ KakaoPartnerSDKCommon (Dependency)ㄴ KakaoSDKFriend (Dependency)