이 문서는 Kakao SDK for iOS(이하 iOS SDK) v1(2.0.0 미만 버전)에서 v2(2.0.0 이상 버전)로 업그레이드하는 사용자를 위한 참고 정보를 제공합니다.
iOS SDK v1 사용 시, 프로젝트 설정 및 임포트(import) 후 API를 필요한 시점에 호출할 수 있습니다. 이와 달리 iOS SDK v2는 명시적인 초기화를 필요로 합니다. 앱 실행 후 초기화 이후에 각 API를 호출하도록 구현해야 합니다.
iOS SDK v1 사용 시, 카카오 로그인을 통해 발급 받은 액세스 토큰을 전달해야 하는 API를 KOSessionTask
를 통해 호출해야 합니다. iOS SDK v1의 세션은 사용자의 카카오 로그인 상태에 따라 변경되며, 세션이 열려 있는 상태에서만 호출할 수 있는 API들이 있습니다.
iOS SDK v2의 API는 모듈 단위로 분리되어 있고, 필요한 모듈을 선택하여 효율적으로 사용할 수 있습니다. 카카오 로그인을 통해 발급 받은 액세스 토큰을 전달해야 하는 API를 사용하려면 카카오 로그인 모듈을 함께 설치하고 기능을 구현해야 합니다.
이러한 구조적 차이로 인해 iOS SDK v2 사용 시에는 사용하려는 모듈의 카카오 로그인에 대한 의존도를 먼저 파악해야 합니다. 카카오 로그인 모듈 및 기능 구현이 필요한 API의 경우, 개발 문서마다 설치해야 하는 모듈과 카카오 로그인 구현이 필요한지 안내합니다.
KakaoSDKCommon
을 통해 초기화 API 호출이름 | iOS SDK v1 | iOS SDK v2 |
---|---|---|
Kakao SDK 초기화 | - | initSDK() |
KOSession
을 통해 호출KOSessionTask
를 통해 호출KakaoSDKUser
모듈의 UserApi
를 통해 호출KakaoSDKAuth
모듈의 AuthApi
를 통해 호출이름 | iOS SDK v1 | iOS SDK v2 |
---|---|---|
카카오 로그인 | openWithCompletionHandler | - |
카카오톡으로 로그인 | - | loginWithKakaoTalk() |
카카오계정으로 로그인 | - | loginWithKakaoAccount() |
로그아웃 | logoutAndCloseWithCompletionHandler | logout() |
연결 끊기 | unlinkTaskWithCompletionHandler | unlink() |
사용자 정보 가져오기 | userMeTaskWithCompletion | me() |
사용자 정보 저장하기 | profileUpdateTaskWithProperties:properties: | updateProfile(properties:) |
추가 항목 동의 받기 | updateScopes:needsAgreementScopes: | loginWithKakaoTalk(scopes:) loginWithKakaoAccount(scopes:) |
카카오톡 실행 가능 여부 확인하기 | - | isKakaoTalkLoginAvailable() |
토큰 정보 보기 | accessTokenInfoTaskWithCompletionHandler | accessTokenInfo() |
토큰 존재 여부 확인하기 | isOpen | hasToken() |
배송지 가져오기 | shippingAddressTask | shippingAddresses() |
서비스 약관 동의 내역 확인하기 | serviceTermsTask | serviceTerms() |
서비스 약관 선택해 동의 받기 | open | loginWithKakaoTalk(serviceTerms:) loginWithKakaoAccount(serviceTerms:) |
KOSessionTask
를 통해 API 호출KakaoSDKTalk
모듈의 TalkApi
를 통해 API 호출이름 | iOS SDK v1 | iOS SDK v2 |
---|---|---|
카카오톡 프로필 가져오기 | talkProfileTaskWithCompletionHandler | profile() |
카카오톡 친구 목록 가져오기 | appFriendsWithContext:context: | friends() |
KLKTalkLinkCenter
를 통해 호출KLKImageStorage
를 통해 호출KakaoSDKShare
모듈의 ShareApi
를 통해 API 호출이름 | iOS SDK v1 | iOS SDK v2 |
---|---|---|
카카오톡 앱을 통한 공유 가능 여부 확인하기 | - | isKakaoTalkSharingAvailable() |
기본 메시지 보내기 | sendDefaultWithTemplate:template: | shareDefault(templatable:) |
사용자 정의 메시지 보내기 | sendCustomWithTemplateId:templateId:templateArgs: | shareCustom(templateId:templateArgs:) |
스크랩 메시지 보내기 | sendScrapWithURL: url:templateId: | shareScrap(requestUrl:templateId:) |
이미지 업로드하기 | uploadWithImage:sourceImage: | imageUpload(image:) |
이미지 스크랩하기 | scrapWithImageURL:imageURL: | imageScrap(imageUrl:) |
이미지 삭제하기 | deleteWithImageURL:imageURL: | - |
KOSessionTask
를 통해 API 호출KakaoSDKTalk
모듈의 TalkApi
를 통해 API 호출이름 | iOS SDK v1 | iOS SDK v2 |
---|---|---|
나에게 기본 메시지 보내기 | talkMemoSendTaskWithTemplate:template: | sendDefaultMemo(templatable:) |
나에게 스크랩 메시지 보내기 | talkMemoSendTaskWithURL:url:templateId: | sendScrapMemo(requestUrl:templateId:) |
나에게 사용자 정의 메시지 보내기 | talkMemoSendTaskWithTemplateId:templateId: | sendCustomMemo(templateId:) |
친구에게 기본 메시지 보내기 | sendMessageToFriendsWithTemplate:template: | sendDefaultMessage(templatable:receiverUuids:) |
친구에게 스크랩 메시지 보내기 | sendMessageToFriendsTaskWithURL:url:templateId: | sendScrapMessage(requestUrl:templateId:receiverUuids:) |
친구에게 사용자 정의 메시지 보내기 | sendMessageToFriendsTaskWithTemplateId:templateId: | sendCustomMessage(templateId:receiverUuids:) |
KPFPlusFriend
를 통해 호출KOSessionTask
를 통해 호출KakaoSDKTalk
모듈의 TalkApi
를 통해 API 호출이름 | iOS SDK v1 | iOS SDK v2 |
---|---|---|
카카오톡 채널 추가하기 | addFriend:plusFriendId: | makeUrlForAddChannel(channelPublicId:) |
카카오톡 채널 채팅 | chat:plusFriendId: | makeUrlForChannelChat(channelPublicId:) |
채널 관계 확인하기 | talkPlusFriendsTask | channels() |
KNVNaviLauncher
를 통해 API 호출KakaoSDKNavi
모듈의 NaviApi
통해 API 호출이름 | iOS SDK v1 | iOS SDK v2 |
---|---|---|
길 안내 | navigateWithParams:params: | navigateUrl(destination:) |
목적지 공유하기 | shareDestinationWithParams:params: | shareUrl(destination:) |
길 안내 조건 설정하기 | locationWithName | NaviOption() |
목적지 정보 설정하기 | paramsWithDestination | NaviLocation() |
* webNavigateUrl(destination:): Deprecated, 웹 길 안내 서비스 종료, 공지 참고
KOSessionTask
를 통해 API 호출이름 | iOS SDK v1 | iOS SDK v2 |
---|---|---|
푸시 토큰 등록하기 | pushRegisterDeviceWithToken:deviceToken: | - |
푸시 토큰 보기 | pushGetTokensTaskWithCompletionHandler | - |
푸시 토큰 삭제하기 | pushDeregisterDeviceWithToken:deviceToken: | - |