crossplatformkorea / react-native-kakao-login

react-native native module for Kakao sign in.
MIT License
350 stars 133 forks source link

IOS에서 카카오톡으로 이동 후에 다시 앱으로 돌아오지만 아무 반응이 없습니다. #330

Closed jason5970 closed 1 year ago

jason5970 commented 1 year ago

Version of kakao-login libraries

5.1.1

Version of react-native

0.61.5

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

IOS (16)

Expected behavior

카카오 로그인

Actual behavior

로그인 버튼 클릭하고 카카오톡으로 이동 후에 다시 앱으로 돌아오지만 아무 반응이 없습니다.

Tested environment (Emulator? Real Device?)

카카오톡이 설치된 실제 기기이며, IOS 16 버전입니다. 에뮬레이터(IOS 15.2)에선 정상적으로 되는 것 확인했습니다. 카카오 앱키 등 설정도 모두 하였습니다.

info.plist

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>fbapi</string>
  <string>fb-messenger-share-api</string>
  <string>fbauth2</string>
  <string>fbshareextension</string>
  <string>kakao{app_key}</string>
  <string>kakaokompassauth</string>
  <string>storykompassauth</string>
  <string>kakaolink</string>
  <string>kakaotalk-5.9.7</string>
  <string>kakaotalk-4.5.0</string>
  <string>kakaostory-2.9.0</string>
  <string>storylink</string>
  <string>kakaokompathauth</string>
</array>

AppDelegate.m

/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

#import "AppDelegate.h"

#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
#import <React/RCTLinkingManager.h>

#import <CodePush/CodePush.h>

#import <Firebase.h>
#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>

#import "RNSplashScreen.h"

#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <RNKakaoLogins.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  [[FBSDKApplicationDelegate sharedInstance] application:application
                             didFinishLaunchingWithOptions:launchOptions];

  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"meinhimobile"
                                            initialProperties:nil];

  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];

  [FIRApp configure];
  [Fabric with:@[[Crashlytics class]]];

  [RNSplashScreen show];
  return YES;
}

- (BOOL)application:(UIApplication *)app
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
  if ([[FBSDKApplicationDelegate sharedInstance] application:app openURL:url options:options]) {
    return YES;
  }

  if ([RCTLinkingManager application:app openURL:url options:options]) {
    return YES;
  }

  if([RNKakaoLogins isKakaoTalkLoginUrl:url]) {
    return [RNKakaoLogins handleOpenUrl: url];
  }

  return NO;
}

- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
  return [CodePush bundleURL];
#endif
}

@end

login

console.log('::: kakao login start :::')

const tokenInfo:KakaoOAuthToken|KakaoOAuthWebToken|any = await login()

console.log('::: kakao login end :::')

아래의 end 로그는 찍히지 않습니다.. ㅠ

jason5970 commented 1 year ago

이 오류에 대해 동일한 현상을 겪고 계신 분이나 해결 방법이 없는건가요?