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

kakao developers

관련사이트
  • 문서
  • iOS
  • v1에서 v2로 마이그레이션

사이드 메뉴

카카오맵

검색

iOS

v1에서 v2로 마이그레이션

이 문서는 iOS SDK(Kakao SDK for iOS) 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 v1iOS SDK v2
Kakao SDK 초기화-initSDK()

카카오 로그인

  • iOS SDK v1
    • 카카오 로그인 API는 KOSession으로 호출
    • 카카오 로그인 이후 호출하는 API는 KOSessionTask로 호출
  • 최신 버전
    • 카카오 로그인 API는 KakaoSDKUser 모듈의 UserApi로 호출
    • 토큰 존재 여부 조회 API는 KakaoSDKAuth 모듈의 AuthApi로 호출
이름iOS SDK v1iOS SDK v2
카카오 로그인openWithCompletionHandler-
카카오톡으로 로그인-loginWithKakaoTalk()
카카오계정으로 로그인-loginWithKakaoAccount()
로그아웃logoutAndCloseWithCompletionHandlerlogout()
연결 해제unlinkTaskWithCompletionHandlerunlink()
사용자 정보 조회userMeTaskWithCompletionme()
사용자 프로퍼티 저장profileUpdateTaskWithProperties:properties:updateProfile(properties:)
동의항목 추가 동의 요청updateScopes:needsAgreementScopes:loginWithKakaoTalk(scopes:)
loginWithKakaoAccount(scopes:)
카카오톡 실행 가능 여부 조회-isKakaoTalkLoginAvailable()
액세스 토큰 정보 조회accessTokenInfoTaskWithCompletionHandleraccessTokenInfo()
토큰 존재 여부 조회isOpenhasToken()
배송지 조회shippingAddressTaskshippingAddresses()
서비스 약관 동의 내역 조회serviceTermsTaskserviceTerms()
서비스 약관 선택해 동의 요청openloginWithKakaoTalk(serviceTerms:)
loginWithKakaoAccount(serviceTerms:)

카카오톡 소셜

  • iOS SDK v1: KOSessionTask로 API 호출
  • 최신 버전: KakaoSDKTalk 모듈의 TalkApi로 API 호출
이름iOS SDK v1iOS SDK v2
카카오톡 프로필 조회talkProfileTaskWithCompletionHandlerprofile()
카카오톡 친구 목록 조회appFriendsWithContext:context:friends()

메시지: 카카오톡 공유

  • iOS SDK v1
    • 메시지 발송 API는 KLKTalkLinkCenter로 호출
    • 이미지 API는 KLKImageStorage로 호출
    • 카카오톡 미설치 시 내부적으로 웹뷰로 메시지 전달됨
  • 최신 버전
    • KakaoSDKShare 모듈의 ShareApi로 API 호출
    • 카카오톡 미설치 시 웹뷰 또는 기본 브라우저로 공유되도록 구현 필요
이름iOS SDK v1iOS 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 v1iOS 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 v1iOS SDK v2
카카오톡 채널 추가addFriend:plusFriendId:makeUrlForAddChannel(channelPublicId:)
카카오톡 채널 채팅chat:plusFriendId:makeUrlForChannelChat(channelPublicId:)
카카오톡 채널 관계 조회talkPlusFriendsTaskchannels()

카카오내비

  • iOS SDK v1
    • KNVNaviLauncher로 API 호출
    • 파라미터 설정은 각 클래스 빌더(Builder) 사용
  • 최신 버전
    • KakaoSDKNavi 모듈의 NaviApi로 API 호출
    • 파라미터 설정은 각 클래스 생성자 사용
이름iOS SDK v1iOS SDK v2
길 안내navigateWithParams:params:navigateUrl(destination:)
목적지 공유shareDestinationWithParams:params:shareUrl(destination:)
길 안내 조건 설정locationWithNameNaviOption()
목적지 정보 설정paramsWithDestinationNaviLocation()
* webNavigateUrl(destination:): Deprecated, 웹 길 안내 서비스 종료, 공지 참고

푸시 알림

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

도움이 되었나요?