카카오톡 간편 로그인 문제(iOS)

안녕하세요, 로그인 문제를 겪고있습니다.
수동으로 ID/PW를 입력해서 로그인하는 건 문제없이 잘 작동합니다.
하지만 카카오톡 연동 간편 로그인이 동작하지 않습니다.
로그인 버튼을 누르면 카카오톡이 실행되긴 합니다.
그런데 실행되고 개인정보제공 동의 화면이나 다른 어떤 화면이 뜨기도 전에 다시 꺼집니다.
다시 앱화면으로 돌아오고 아무것도 일어나지 않아요.
completionHandler로 진입조차 하지 못합니다.
포럼을 보니 비슷한 문제를 겪으셨던 분이 좀 있으시던데 하나같이 이렇다 할 만한 답을 찾지 못했습니다.
수동 로그인이 되는 것을 보면 completionHandler에는 문제가 없는듯 하고,
appDelegate에서 뭔가 잘못됐나 싶으면서도 일단은 레퍼런스대로 해놨습니다.
어떤 이유로 실행된 카카오톡이 아무 결과도 가져오지 못하고 바로 다시 꺼지는 걸까요?

참고로 카카오오픈SDK 버전 1.23.3
iOS Deployment Target 13.5
입니다.

해결했습니다.
iOS 13부터는 SceneDelegate에도 AppDelegate에 대응되는 메소드들을 호출해줘야 합니다.
결과적으로, SceneDelegate가 이렇게 됩니다.

class SceneDelegate: UIResponder, UIWindowSceneDelegate {

var window: UIWindow?

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
    if let url = URLContexts.first?.url {
        KOSession.handleOpen(url)
    }
}

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    guard let _ = (scene as? UIWindowScene) else { return }
}

func sceneDidDisconnect(_ scene: UIScene) {
}

func sceneDidBecomeActive(_ scene: UIScene) {
    KOSession.handleDidBecomeActive()
}

func sceneWillResignActive(_ scene: UIScene) {
}

func sceneWillEnterForeground(_ scene: UIScene) {
}

func sceneDidEnterBackground(_ scene: UIScene) {
    KOSession.handleDidEnterBackground()
}

}

카카오톡 개발자 문서 업데이트 정말 안하네요

1개의 좋아요

안녕하세요.
해결되었다니 다행입니다.
위 언급해주신 내용을 포함하여 네이티브 SDK 가이드를 전반적으로 업데이트하려고 준비 중입니다.
조만간 개선된 내용을 보실 수 있을 거에요. 이 밖에도 개선되었으면 하는 점이 있다면 데브톡으로 알려주세요.

1개의 좋아요

안녕하세요. 자답감사합니다.

ios 13이상에서 만든 프로젝트라면 info.plist에 UIApplicationSceneManifest가 추가되며 기본으로 UISceneDelegate를 사용하도록 설정됩니다. 그럴경우
AppDelegate 대신 SceneDelegate 에 handleOpenUrl(url)을 추가하셔야 합니다. 그래서 이 역시 선택사항입니다.

관련해서 첨언을 드리자면 sdk 내용이 변한것이라기보다 xcode가 ios에 맞게 업데이트 되면서 기본 앱 파일구조가 개편된것이라 신규개발앱 위주로 해당 이슈가 종종 올라옵니다.

코드를 보니 v1을 쓰시는것같은데 곧 sdk v2가 정식출시를 앞두고 있습니다. 현재 beta6이 출시된 상태이며 해당 내용역시 포함될 예정이니 앞으로 많은 관심 부탁드립니다.

2개의 좋아요