본문 바로가기메인 메뉴 바로가기사이드 메뉴 바로가기

kakao developers

관련사이트

사이드 메뉴

플랫폼 API

API 제공

전용 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개별 앱 생성 필요 여부
서비스 앱com.kakao.real필요
테스트 앱 1com.kakao.real.alpha불필요
테스트 앱 2com.kakao.real.alpha.a불필요
테스트 앱 3com.kakao.real.alpha.a.b불필요
번들 ID참고
카카오톡 서비스 앱com.iwilab.KakaoTalk-
카카오톡 서비스 투데이 위젯com.iwilab.KakaoTalk.Today실제 서비스 위젯의 번들 ID가 ${BUNDLE_ID}.${POSTFIX} 형식이므로 쿼터 적용 예외 신청 필요

개발 환경을 위한 페이즈 설정을 사용할 경우, 페이즈별로 앱 실행 허용 목록을 설정해야 합니다. Queried URL Schemes(또는 LSApplicationQueriesSchemes)에 추가해야 할 값은 아래를 참고합니다.

페이즈카카오톡카카오톡 공유
.Devalphakompassauthalphalink
.Sandboxalphakompassauthalphalink
.Cbtkakaokompassauthkakaolink
.Productionkakaokompassauthkakaolink

앱 실행 허용 목록 등록 화면

SPM(Swift Package Manager)로 Partner iOS SDK를 설치할 수 있습니다.

Cocoapods 설치 지원 종료

Partner iOS SDK 2.23.0 버전부터 Cocoapods으로 설치를 지원하지 않습니다.

Xcode의 [Project Target] > [Package Dependencies] > [Packages] 메뉴에서 아래의 리포지토리(Repository) URL로 검색해 Partner iOS SDK를 설치할 수 있습니다. 필요한 모듈만 선택해 설치할 수 있습니다. 자세한 안내는 설치를 참고합니다.

SDK리포지토리 이름리포지토리 URL
Partner iOS SDKkakao-partner-ios-sdkhttps://github.com/kakao/kakao-partner-ios-sdk
ReactiveX Partner iOS SDKkakao-partner-ios-sdk-rxhttps://github.com/kakao/kakao-partner-ios-sdk-rx

SPM 설정 화면

iOS 앱의 각 파일에서 Partner iOS SDK를 사용하려면 필요한 모듈의 파일을 임포트(import)해야 합니다. 제품별로 임포트해야 하는 모듈은 아래와 같습니다.

// Partner iOS SDK
import KakaoSDKCommon
import KakaoPartnerSDKCommon
// ReactiveX Partner iOS SDK
import KakaoSDKCommon
import RxKakaoSDKCommon
import 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 초기화 예시입니다.

AppDelegate.swift
import KakaoSDKCommon
import KakaoPartnerSDKCommon
func 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}"])
)
...
}

초기화 시 사용할 수 있는 파라미터는 아래와 같습니다.

이름타입설명필수
appKeyString네이티브 앱 키
특정 페이즈로 초기화하려는 경우, 초기화하려는 페이즈의 앱 키 사용
O
loggingEnabledBooleanSDK의 내부 로그 기능 활성화 여부X
hostsHosts특정 페이즈로 초기화하려는 경우, 사용할 페이즈 지정
Phase에 미리 정의된 값 사용
X
approvalTypeApprovalType다음 서비스 전용, 프로젝트 앱에서만 사용
초기화 시 approvalType 파라미터에 ApprovalType.project()를 전달해 프로젝트 타입으로 설정
X
sdkIdentifierSdkIdentifierKA 헤더 정보에 포함할 서비스 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)에 등록된 앱 키 사용
.CbtCBT용 앱, 카카오디벨로퍼스 프로덕션(Production) 페이즈(http://developers.kakao.com)에 등록된 앱 키 사용
.Production프로덕션 앱, 카카오디벨로퍼스 프로덕션 페이즈(http://developers.kakao.com)에 등록된 앱 키 사용

Partner iOS SDK가 제공하는 카카오 및 공동체 전용 모듈 정보는 아래와 같습니다. 일부 특화 기능은 권한이 있어야 사용할 수 있습니다. 오픈 API 사용 서비스를 위한 공개 SDK의 모듈 정보는 모듈 정보에서 확인할 수 있습니다.

모듈클라이언트설명
KakaoPartnerSDKCommon-필수 요소를 담은 공통 모듈

특화 기능: 페이즈 지정 초기화
KakaoPartnerSDKAuthAuthApi카카오 로그인 인증 및 토큰 관리 모듈

특화 기능: 그룹 앱 토큰 발급 API
KakaoPartnerSDKUserUserApi카카오 로그인, 사용자 정보 API 모듈

특화 기능: 카카오 및 공동체 전용 사용자 정보, 연령인증 API, 배송지 API
KakaoPartnerSDKShareShareApi카카오톡 공유 API 모듈

특화 기능: 말풍선 출처 앱 변경
KakaoPartnerSDKTalkTalkApi카카오톡 채널, 카카오톡 소셜, 카카오톡 메시지 API 모듈¹⁾

특화 기능: 앱에 연결되지 않은 친구(초대 친구), 채팅방, 채팅방 멤버 정보 조회 API
KakaoPartnerSDKFriendPickerApi피커 API 모듈¹⁾

특화 기능: 앱에 연결되지 않은 친구(초대 친구), 채팅방, 채팅방 멤버 피커
1) 로그인 기반 API를 제공하므로 KakaoPartnerSDKUser 모듈과 함께 사용해야 함

Partner iOS SDK의 일부 모듈은 다른 모듈에 의존성이 있으며, 각 모듈은 설치 시 의존하는 모듈을 자동으로 함께 설치합니다. 모듈간 의존성 구조는 아래 이미지를 참고합니다.

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)

도움이 되었나요?