Flutter + 카카오 로그인 연동(supabase)

kakao_flutter_sdk: ^1.9.6
디벨로퍼스 앱 ID: 1205297 (오프렌다)


안녕하세요. supabase 연동해서 앱개발을 하고 있는데 로그인이 안되어 문의드립니다.

처음에는 supabase에서 웹 리다이렉트 방식으로 구현을 했다가, 애플 리젝 사유가 되어서 앱내 로그인이 가능하도록 하려고
kakao_flutter_sdk 를 추가했습니다.

  Future<AppUser?> signInWithKakao() async {
    try {
      OAuthToken token;
      if (await isKakaoTalkInstalled()) {
        try {
          token = await UserApi.instance.loginWithKakaoTalk();
        } catch (error) {
          token = await UserApi.instance.loginWithKakaoAccount();
        }
      } else {
        token = await UserApi.instance.loginWithKakaoAccount();
      }

      // 사용자 정보 요청
      final kakaoUser = await UserApi.instance.me();

이런식으로 가상 기기로 빌드할 때는 저 시스템 다이얼로그가 잘 뜨는데,
제 아이패드로 빌드하면 저 다이얼로그가 뜨자마자 사라집니다.
(예전에 만든 다른 앱은 둘다 잘 뜹니다)

xcode 에는 아래 메시지가 뜨는 것 같습니다.
Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<SFAuthenticationViewController: 0x106668000>)

도와주실 수 있을까요?

안녕하세요.

서버 로그 확인해보니 1.9.7+3 버전으로 업데이트하신 것으로 보이고, 현재는 정상동작하고 있는 것으로 보이는데요, 혹시 지금도 이슈가 발생하고 있나요?

현재도 이슈가 발생하고 있다면 빈 프로젝트에 kakao_flutter_sdk 의존성만 추가했을 때도 동일 현상이 발생하는지 확인 부탁드립니다.

새 프로젝트를 생성해서 main에 간단하게 넣어보면… 잘됩니다!
현재 앱으로요.(Info.plist에 별다른 걸 추가하지 않았는데도 다이얼로그 뜨는것부터 열리는 것까지 잘되는 것 같습니다)

        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
             TextButton(
               onPressed: () async {
                 try {
                   // 카카오 로그인 시도
                   final isInstalled = await isKakaoTalkInstalled();
                   OAuthToken token;

                   if (isInstalled) {
                     try {
                       token = await UserApi.instance.loginWithKakaoTalk();
                       print('카카오톡으로 로그인 성공');
                     } catch (error) {
                       print('카카오톡 로그인 실패: $error');
                       token = await UserApi.instance.loginWithKakaoAccount();

코드를 이전해야 하는 걸까요…?

프로젝트 설정이 어떻게 되어있는지는 알지 못해서 정확한 답변을 드리긴 어려운데요, 추측하기에 프로젝트 설정 혹은 패키지 의존성에 의해 이슈가 발생했을 것 같아요.

프로젝트 설정 혹은 패키지 의존성의 문제라면 코드를 이전해도 동일한 이슈가 발생할 가능성이 높기 때문에 두 프로젝트의 간의 설정 혹은 패키지 의존성 등에 의해서 이슈가 발생한건 아닌지 확인해보시는게 좋을 것 같습니다

1개의 좋아요

감사합니다