kakao SDK 2.3.1 을 사용하고 있습니다.
loginWithKakaoAccount()을 활용하여 로그인 시 문제없이 진행이 되나 loginWithKakaoTalk()을 활용하여 로그인 시도 시 뒤따라 오는 콜백 함수 부분이 통째로 무시됩니다.
카카오톡 앱도 실행이 되며 권한을 요구하는 페이지 또한 노출은 됩니다.
iOS 14.4 기준으로 swiftUI로 넘어오면서 부터 AppDelegate과 SceneDelegate이 사용되지 않아 @UIApplicationDelegateAdaptor 을 이용하여 AppDelegate을 추가하였습니다.
@main
struct myApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// 카카오SDK 초기화
KakaoSDKCommon.initSDK(appKey: "bd9555a2884692eb57f012f883622ec6")
return false
}
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
if (AuthApi.isKakaoTalkLoginUrl(url)) {
return AuthController.handleOpenUrl(url: url)
}
return false
}
}
- iOS 13에 들어옴에 따라 appDelegate의 기능 중 일부가 sceneDelegate으로 넘어가서 발생한 이슈로 보입니다.
- swiftUI에서 sceneDelegate의 scene(_ scene: UIScene, openURLContexts URLContexts: Set) 메소드, 혹은 이와 동일한 시점에 불리는 함수가 무엇인지 알아야 합니다.