본문 바로가기
언어, 환경별 예제 코드

iOS, swift UI 카카오 SDK 사용하기

by kakao-TAM 2025. 3. 25.

개발환경

- MacBook, macOS Sequoia 15.3.2

- Xcode, Version 16.2

 

Create New Project...
iOS > App
project options

프로젝트 저장할 폴더 선택 후, 시뮬레이터 실행으로 정상 작동 확인

Hello, world!

모듈 설치 - 가이드

➊ [Project Target] > ➋ [Package Dependencies] > ➌ [Packages] 의 [+]를 눌러 패키지 추가 화면을 엽니다.

 

kakao-ios-sdk Add Package
KakaoSDK Add to Target

 

Product > Clean Build Folder ... 

Product > Build

 

앱 실행 허용 설정 - 가이드 

[Info] > [Custom iOS Target Properties]에 Array 타입 키(Key)인 Queried URL Schemes을 추가

 

커스텀 URL 스킴 (카카오톡에서 앱으로 되돌아갈 주소 설정) - 가이드

[Info] > [URL Types] > [URL Schemes] 항목에 네이티브 앱 키(Native App Key)를 kakao${NATIVE_APP_KEY} 형식으로 등록

 

카카오톡으로 로그인을 위한 설정 - 가이드 

//kakaoSDKApp.swift
import SwiftUI
import KakaoSDKCommon
import KakaoSDKAuth

@main
struct kakaoSDKApp: App {
    init() {
            // Kakao SDK 초기화
            KakaoSDK.initSDK(appKey: "NATIVE_APP_KEY")
        }
    
    var body: some Scene {
        WindowGroup {
            ContentView().onOpenURL(perform: { url in
                if (AuthApi.isKakaoTalkLoginUrl(url)) {
                    AuthController.handleOpenUrl(url: url)
                }
            })
        }
    }
}

 

 

모듈 설정 - 가이드

//kakaoSDKApp.swift
import SwiftUI
import KakaoSDKCommon
import KakaoSDKAuth

@main
struct kakaoSDKApp: App {
    init() {
            // Kakao SDK 초기화
            KakaoSDK.initSDK(appKey: "NATIVE_APP_KEY")
        }
    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
//ContentView.swift
import SwiftUI
import KakaoSDKUser
import KakaoSDKCommon

struct ContentView: View {
    @State private var isLoggedIn = false
    
    var body: some View {
        VStack {
            Image(systemName: "globe")
                .imageScale(.large)
                .foregroundStyle(.tint)
            Text("Hello, world!")
            
            Button(action: {
                // 카카오 로그인 처리
                if (UserApi.isKakaoTalkLoginAvailable()) {
                    UserApi.shared.loginWithKakaoTalk { (oauthToken, error) in
                        if let error = error {
                            print(error)
                        } else {
                            print("카카오톡 로그인 성공")
                            isLoggedIn = true
                        }
                    }
                } else {
                    UserApi.shared.loginWithKakaoAccount { (oauthToken, error) in
                        if let error = error {
                            print(error)
                        } else {
                            print("카카오 계정 로그인 성공")
                            isLoggedIn = true
                        }
                    }
                }
            }) {
                Text("카카오 로그인")
                    .foregroundColor(.black)
                    .padding()
                    .background(Color.yellow)
                    .cornerRadius(10)
            }
        }
        .padding()
    }
}

#Preview {
    ContentView()
}

카카오 로그인 실행해보면, 번들ID가 디벨로퍼스 설정에 등록 안된 상태라

KOE009 "invalid android_key_hash or ios_bundle_id or web_site_url" 에러 발생함.

 

카카오디벨로퍼스 iOS 플랫폼 등록 - 가이드 , 내 애플리케이션>앱 설정>플랫폼 : iOS

 


구현 - 가이드 

 

https://github.com/kakao-tam/kakaoSDK-iOS-demo.git

 

GitHub - kakao-tam/kakaoSDK-iOS-demo: kakaoSDK-iOS Test

kakaoSDK-iOS Test. Contribute to kakao-tam/kakaoSDK-iOS-demo development by creating an account on GitHub.

github.com

 

 

 

댓글