Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

카카오톡이 설치된 IOS 기기에서 로그인 할 경우 카카오톡으로 넘어간 다음 아무런 응답이 오질 않습니다. #231

Open
halfelf11 opened this issue May 18, 2021 · 17 comments

Comments

@halfelf11
Copy link

Version of kakao-login libraries

3.3.2

Version of react-native

0.63.4

Platforms you faced the error (IOS or Android or both?)

IOS

Expected behavior

카카오톡이 설치된 IOS 기기에서 로그인

Actual behavior

카카오톡이 설치된 IOS 기기에서 로그인 할 경우 카카오톡으로 넘어간 다음 아무런 응답이 오질 않습니다.
설치되지 않은 기기에서는 정상적으로 웹페이지가 열리고 로그인하면 정상 로그인이됩니다.
안드로이드 기기에서도 정상적으로 로그인이 되고 있습니다.

info.plist 의 화이트 리스트도 정상적으로 들어가 있습니다. (한글로 적은 부분은 보안상 수정하여 적은 부부입니다.)
LSApplicationQueriesSchemes

storylink
kakaostory-2.9.0
kakaokompassauth
storykompassauth
naversearchapp
naversearchthirdlogin
kakaokompathauth
kakao인증키값
kakakolink
kakaotalk-4.5.0

xcode 디버깅에는 아래와 같이 로그가 찍히고 있습니다. (한글로 적은 부분은 보안상 수정하여 적은 부부입니다.)

2021-05-18 09:32:57655 [💬][AuthController.swift 323:21] -> code_verifier: j8bh3yjeTWcI+msEzNvDew1Ko0nZkfp3vtMFbJMLziNgchIguY4bECOLi7LhzgYvHD/pgIPsa7gbOY3GNjF96w
2021-05-18 09:32:57656 [💬][AuthController.swift 326:25] -> code_challenge: 2PfGEuJWhKRtHfQaYcrpyrvnzbrT4tQC1SX9stBEcNc
2021-05-18 09:32:57698 [💬][AuthController.swift 99:25] -> 카카오톡 실행: kakaokompassauth://authorize?redirect_uri=kakao인증키값://oauth&headers=%7B%22KA%22:%22sdk%5C/2.4.1%20sdk_type%5C/swift%20os%5C/ios-14.5.1%20lang%5C/ko-KR%20res%5C/390x844%20device%5C/iPhone%20origin%5C/번들아이디%20app_ver%5C/0.16.27%22%7D&client_id=클라이언트아이디&params=%7B%22code_challenge%22:%222PfGEuJWhKRtHfQaYcrpyrvnzbrT4tQC1SX9stBEcNc%22,%22code_challenge_method%22:%22S256%22%7D&response_type=code

앱에서는 아래와 같은 코드로 사용하고 있으며, 실행시 로그는 "kakaoSdkAuthTest ::::: service login start" 까지만 찍히고
에러로그도 찍히지 않습니다.

try{ console.log('kakaoSdkAuthTest ::::: service login start'); const token: KakaoOAuthToken = await login(); console.log('kakaoSdkAuthTest ::::: service login token',token); } catch(e) { console.log(e); }

Tested environment (Emulator? Real Device?)

System:
OS: macOS 11.2.1
CPU: (12) x64 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
Memory: 98.54 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.23.1 - ~/.nvm/versions/node/v10.23.1/bin/node
Yarn: 1.22.10 - /usr/local/bin/yarn
npm: 6.14.10 - ~/.nvm/versions/node/v10.23.1/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.10.1 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 14.5, DriverKit 20.4, macOS 11.3, tvOS 14.5, watchOS 7.4
Android SDK:
API Levels: 23, 27, 28, 29, 30
Build Tools: 28.0.3, 29.0.2, 29.0.3, 30.0.3
System Images: android-29 | Google Play Intel x86 Atom, android-30 | Google APIs Intel x86 Atom
Android NDK: Not Found
IDEs:
Android Studio: 4.1 AI-201.8743.12.41.7042882
Xcode: 12.5/12E262 - /usr/bin/xcodebuild
Languages:
Java: 1.8.0_282 - /usr/bin/javac
Python: 2.7.16 - /usr/bin/python
npmPackages:
@react-native-community/cli: Not Found
react: 16.13.1 => 16.13.1
react-native: 0.63.3 => 0.63.3
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found

@halfelf11
Copy link
Author

xcode 디버깅 내역 추가 된 부분이 있어서 남깁니다.
백그라운드 세션이 무효되면서 로그인 정보를 못 받는 것 같습니다.

2021-05-18 16:49:37.363787+0900 tokmomRN[3258:1365679] BackgroundSession connection to background transfer daemon interrupted
2021-05-18 16:49:37.369190+0900 tokmomRN[3258:1365152] BackgroundSession connection to background transfer daemon interrupted
2021-05-18 16:49:37.371524+0900 tokmomRN[3258:1365550] BackgroundSession <148CEAFA-08D4-49DF-9249-5F6DBCD1C196> connection to background transfer daemon interrupted
2021-05-18 16:49:37.384022+0900 tokmomRN[3258:1365051] BackgroundSession connection to background transfer daemon invalidated
2021-05-18 16:49:37.384108+0900 tokmomRN[3258:1365051] BackgroundSession <148CEAFA-08D4-49DF-9249-5F6DBCD1C196> connection to background transfer daemon invalidated
2021-05-18 16:49:37.384153+0900 tokmomRN[3258:1365051] BackgroundSession connection to background transfer daemon invalidated
2021-05-18 16:49:37.385779+0900 tokmomRN[3258:1365498] [connection] nw_read_request_report [C11] Receive failed with error "Software caused connection abort"
2021-05-18 16:49:39.391795+0900 tokmomRN[3258:1365052] dnssd_clientstub write_all(22) DEFUNCT
2021-05-18 16:49:39.391940+0900 tokmomRN[3258:1365052] dnssd_clientstub deliver_request ERROR: write_all(22, 50 bytes) failed
2021-05-18 16:49:39.392262+0900 tokmomRN[3258:1365052] dnssd_clientstub write_all(22) DEFUNCT

@halfelf11
Copy link
Author

아직 이 증상이 계속 되고 있습니다. 확인 가능하신분 없으신가요?

@HoJin9622
Copy link

Screen Shot 2021-05-24 at 2 24 40 PM

<string>kakao0123456789</string> 이 부분 추가하니 전 정상작동합니다!

@halfelf11
Copy link
Author

@HoJin9622 님 답변 감사합니다. 하지만 아직 동작하지 않습니다. kakao네이티브키 역시 LSApplicationQueriesSchemes에 추가한 상태입니다. 혹시 다른 해결방법은 없을까요.

@HoJin9622
Copy link

Screen Shot 2021-05-26 at 4 18 22 PM
이 부분 한번 확인해보시겠어요?
저도 IOS 부분 같은 상황이어서 수정했던 부분이 위에 첫 답변과 URL Schemes에 콤마 또는 스페이스가 들어가있어서 이렇게 두개 수정을하니 정상 작동이 되었습니다.

@halfelf11
Copy link
Author

@HoJin9622 님 거듭 감사드립니다. 해당부분도 다시 확인했는데 정상적으로 잘 들어가 있습니다. 혹시 naver-login과 같이 쓰는 것에서 발생할수도 있는 문제 일까요?

@HoJin9622
Copy link

Screen Shot 2021-05-31 at 9 56 35 AM
저도 현재 네이버 로그인과 함께 사용중이고 AppDelegate.m 부분은 이렇게 작상하였고 문제없이 작동중입니다.
위 부분이 다 맞다면 어디가 잘못되었는지 짐작가는부분이 없네요 ㅠㅠ

@halfelf11
Copy link
Author

@HoJin9622 항상 답변 감사드립니다. 아직 해결하지 못했지만 해결되면 저도 해결한 방법 올리도록하겠습니다.
감사합니다.

@HoJin9622
Copy link

IOS 카카오톡에서 앱이 시작할때 FaceID가 적용되어있으면 카카오톡으로 진입 후 아무 반응이 없고 다시 앱으로 돌아간 후 카카오톡 로그인 버튼을 누르면 정상 작동됩니다.(카카오톡이 이미 백그라운드로 켜진 상태에서 정상 작동하는 느낌)
그리고 FaceID로 보안 설정을 하지않은 카카오톡에서는 카카오톡이 이미 켜져있지 않더라도 바로 카카오 로그인 모달이 뜨는 것 같습니다.

@min0623
Copy link

min0623 commented Sep 10, 2021

@HoJin9622 안녕하세요. 저도 같은 현상을 겪고 있어 질문드립니다. 다만 저는 위에 올려주신 것과 같이 RNKakakoLogins를 쓰려고 하면 존재하지 않는 identifier라고 하면서 빌드가 안되는데 혹시 어떻게 import 하셨는지 알 수 있을까요? #193 에 있는 것처럼 #import <RNKakaoLogins.h> 를 했는데도 잘 안되네요.
스크린샷 2021-09-10 오후 3 15 31

@HoJin9622
Copy link

@min0623
Screen Shot 2021-09-10 at 3 19 37 PM

위 이미지처럼 #ifdef FB_SONARKIT_ENABLED 이 부분 위에 #import <RNKakaoLogins.h>를 선언해보시겠어요?

@min0623
Copy link

min0623 commented Sep 10, 2021

@HoJin9622 헛 이렇게 하니 너무 잘되네요!! 감사합니다😄

@taekeunn
Copy link

@halfelf11 혹시 이 문제 해결되셨나요? 저도 같은 문제를 겪고있어서요.. 혹시 해결되셨다면 공유좀 부탁드리겠습니다!

@sairion
Copy link

sairion commented Dec 4, 2021

Use of undeclared identifier 'RNKakaoLogins' 문제가 (이슈 색인을 위해 남깁니다.) 저도 발생하고 있었는데,
#ifdef 문 안에 별생각없이 추가했었군요. ㅠㅠ
@HoJin9622 님 감사합니다. ^^

@hoyoungmoon
Copy link

hoyoungmoon commented Feb 14, 2022

혹시 해당 이슈 해결하신분 있으실까요?
위와 똑같은 문제가 발생하고 저는 simulator에서는 정상작동하며 카카오톡이 설치된 디바이스에서 테스트시 문제가 발생하네요..

현재 저는 Info.plist의 LSApplicationQueriesSchemes 설정하는 부분에 kompassauth 2개를 주석처리 후 사용중입니다.
이렇게 하면 카카오톡으로 자동 로그인 되지 않고 링크를 타게 되네요

<key>LSApplicationQueriesSchemes</key> 
<array>
  <!-- <string>kakaokompassauth</string>
  <string>storykompassauth</string> -->
</array>

@jaquan-paik
Copy link

jaquan-paik commented Aug 16, 2022

같은 이슈가 있었고 지금은 해결했습니다.

제가 한 실수는 링크 여기서 제안한 해결책 대로 진행했었는데

  1. Implementation에서 AppDelegate에서
- (BOOL)application:(UIApplication *)app
     openURL:(NSURL *)url
     options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
 if([RNKakaoLogins isKakaoTalkLoginUrl:url]) {
    return [RNKakaoLogins handleOpenUrl: url];
 }

 return NO;
}

이부분 삽입을 #if RCT_NEW_ARCH_ENABLED ... #endif 안에 넣어서 생긴 문제 였습니다.

다른 #if 문 안에 들어간게 아닌지 확인해보세요.

@sean2929
Copy link

감사합니다~ 덕분에 해결했네요.

#if RCT_NEW_ARCH_ENABLED 구문이 여러군데 있었는데 저는 @implementation AppDelegate 구문 바로 다음줄에 코드를 넣으니 잘 작동하네요

@implementation AppDelegate

- (BOOL)application:(UIApplication *)app
   openURL:(NSURL *)url
   options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
   if ([RNKakaoLogins isKakaoTalkLoginUrl:url]) {
      return [RNKakaoLogins handleOpenUrl: url];
   }
   return NO;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants