본문 바로가기
카카오 REST API & SDK/카카오 로그인

iOS(Swift)에서 카카오 로그인 사용하기

by kakao-TAM 2021. 1. 27.

developers.kakao.com/docs/latest/en/getting-started/sdk-ios

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

1. Store에서 개발도구 Xcode를 설치합니다.

apps.apple.com/kr/app/xcode/id497799835?mt=12

 

‎Xcode

‎Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, Apple TV, and Apple Watch. Xcode provides developers a unified workflow for user interface design, coding, testing, and debugging. The Xcode IDE combined with

apps.apple.com

2. Xcode로 프로젝트를 생성합니다. 

Create a new Xcode Project 선택
iOS에서 App 선택
interface 를 Storyboard 로 해보겠습니다.

3. cacaoPods를 설치합니다.

$ sudo gem install cocoapods

4. KakaoSDK를 설치합니다.

 

. 생성한 프로젝트 Root로 이동

$ pod init

.Podfile 에 'pod KakaoSDK' 추가

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'kakaoTestApp' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

pod 'KakaoSDK'

  # Pods for kakaoTestApp

  target 'kakaoTestAppTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'kakaoTestAppUITests' do
    # Pods for testing
  end

end

. 프로젝트 Root에서 install

pod install

5. LSApplicationQueriesSchemes 키 추가

. 목록에서 마우스 오른쪽 클릭 > Add Raw > LSApplicationQueriesSchemes 생성 : 타입 Array

. + 버튼 클릭하여 Item 0,1 추가 kakaokompassauth, kakaolink 각각 등록

 

6. URL Types 추가

. URL Schemes에 "kakao{네이티브앱 키}" 추가

ex) kakao23kjflkslkflwkej2380

 

7. AppDelegate.swift

import KakaoSDKCommon

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

  ...
  KakaoSDKCommon.initSDK(appKey: "NATIVE_APP_KEY")
  ...

}

"import KakaoSDKCommon"에 No such module 'KakaoSDKCommon' 에러가 발생한다면?

-> 프로젝트를 연 상태에서 Command + Shift + K로 현재 빌드 제거 후, 다시 Play

 

8. 로그인 적용해보기

developers.kakao.com/docs/latest/en/kakaologin/ios

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

.AppDelegate.swift에 import

import KakaoSDKAuth
import KakaoSDKUser

.AppDelegate.swift에 func 추가

class AppDelegate: UIResponder, UIApplicationDelegate {
    ...
    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        if (AuthApi.isKakaoTalkLoginUrl(url)) {
            return AuthController.handleOpenUrl(url: url)
        }

        return false
    }
    ...
}

.ViewController.swift에 func 추가

    @IBAction func login(){
       AuthApi.shared.loginWithKakaoAccount {(oauthToken, error) in
          if let error = error {
              print(error)
          }
          else {
              print("loginWithKakaoAccount() success.")            

              //do something
               _ = oauthToken            
          }
      }
    }

.Button과 login()함수 연결 그리고 실행

댓글