페이지 이동경로
  • 문서>
  • iOS>
  • v1에서 v2로 마이그레이션

iOS

v1에서 v2로 마이그레이션

이 문서는 Kakao SDK for iOS(이하 iOS SDK) v1(2.0.0 미만 버전)에서 v2(2.0.0 이상 버전)로 업그레이드하는 사용자를 위한 참고 정보를 제공합니다.

초기화

iOS SDK v1 사용 시, 프로젝트 설정 및 임포트(import) 후 API를 필요한 시점에 호출할 수 있습니다. 이와 달리 iOS SDK v2는 명시적인 초기화를 필요로 합니다. 앱 실행 후 초기화 이후에 각 API를 호출하도록 구현해야 합니다.

카카오 로그인이 필요한 API 사용 시 주의 사항

iOS SDK v1 사용 시, 카카오 로그인을 통해 발급 받은 액세스 토큰을 전달해야 하는 API를 KOSessionTask를 통해 호출해야 합니다. iOS SDK v1의 세션은 사용자의 카카오 로그인 상태에 따라 변경되며, 세션이 열려 있는 상태에서만 호출할 수 있는 API들이 있습니다.

iOS SDK v2의 API는 모듈 단위로 분리되어 있고, 필요한 모듈을 선택하여 효율적으로 사용할 수 있습니다. 카카오 로그인을 통해 발급 받은 액세스 토큰을 전달해야 하는 API를 사용하려면 카카오 로그인 모듈을 함께 설치하고 기능을 구현해야 합니다.

이러한 구조적 차이로 인해 iOS SDK v2 사용 시에는 사용하려는 모듈의 카카오 로그인에 대한 의존도를 먼저 파악해야 합니다. 카카오 로그인 모듈 및 기능 구현이 필요한 API의 경우, 개발 문서마다 설치해야 하는 모듈과 카카오 로그인 구현이 필요한지 안내합니다.

버전별 API 비교

공통

  • 최신 버전: KakaoSDKCommon을 통해 초기화 API 호출
이름 iOS SDK v1 iOS SDK v2
Kakao SDK 초기화 - initSDK()

카카오 로그인

  • iOS SDK v1
    • 카카오 로그인 API는 KOSession을 통해 호출
    • 카카오 로그인 이후 호출하는 API는 KOSessionTask를 통해 호출
  • 최신 버전
    • 카카오 로그인 API는 KakaoSDKUser 모듈의 UserApi를 통해 호출
    • 토큰 존재 여부 확인하기 API는 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:)

카카오톡 소셜

  • iOS SDK v1: KOSessionTask를 통해 API 호출
  • 최신 버전: KakaoSDKTalk 모듈의 TalkApi를 통해 API 호출
이름 iOS SDK v1 iOS SDK v2
카카오톡 프로필 가져오기 talkProfileTaskWithCompletionHandler profile()
카카오톡 친구 목록 가져오기 appFriendsWithContext:context: friends()

메시지: 카카오톡 공유

  • iOS SDK v1
    • 메시지 보내기 API는 KLKTalkLinkCenter를 통해 호출
    • 이미지 API는 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: -

메시지: 카카오톡

  • iOS SDK v1: 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:)

카카오톡 채널

  • iOS SDK v1
    • 카카오톡 채널 추가하기와 카카오톡 채널 채팅은 KPFPlusFriend를 통해 호출
    • 채널 관계 확인하기 API는 KOSessionTask를 통해 호출
  • 최신 버전
    • KakaoSDKTalk 모듈의 TalkApi를 통해 API 호출
    • 카카오톡 채널 관계 확인하기 API는 카카오 로그인 구현 필요
이름 iOS SDK v1 iOS SDK v2
카카오톡 채널 추가하기 addFriend:plusFriendId: makeUrlForAddChannel(channelPublicId:)
카카오톡 채널 채팅 chat:plusFriendId: makeUrlForChannelChat(channelPublicId:)
채널 관계 확인하기 talkPlusFriendsTask channels()

카카오내비

  • iOS SDK v1
    • KNVNaviLauncher를 통해 API 호출
    • 파라미터 설정은 각 클래스 빌더(Builder) 사용
  • 최신 버전
    • KakaoSDKNavi 모듈의 NaviApi 통해 API 호출
    • 파라미터 설정은 각 클래스 생성자 사용
이름 iOS SDK v1 iOS SDK v2
길 안내 navigateWithParams:params: navigateUrl(destination:)
목적지 공유하기 shareDestinationWithParams:params: shareUrl(destination:)
길 안내 조건 설정하기 locationWithName NaviOption()
목적지 정보 설정하기 paramsWithDestination NaviLocation()

* webNavigateUrl(destination:): Deprecated, 웹 길 안내 서비스 종료, 공지 참고

푸시 알림

  • iOS SDK v1: KOSessionTask를 통해 API 호출
  • 최신 버전: 푸시 알림 API 미지원, REST API 사용 가능
이름 iOS SDK v1 iOS SDK v2
푸시 토큰 등록하기 pushRegisterDeviceWithToken:deviceToken: -
푸시 토큰 보기 pushGetTokensTaskWithCompletionHandler -
푸시 토큰 삭제하기 pushDeregisterDeviceWithToken:deviceToken: -