문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.
SDK: 2.19.0
디벨로퍼스 앱ID:1017632
React Native 앱에 안드로이드 카카오 로그인은 정상 작동, IOS만 리다이렉트 시 무한 로딩 현상이 발생하고 있습니다.
로그를 찍어보려고 해도 에러코드가 뜨지 않아서 여기에 질문드립니다…
IOS에서 세팅한 카카오 로그인 코드 첨부드립니다…
info.plist
<key>KAKAO_APP_KEY</key>
<string>$(KAKAO_APP_KEY)</string> // env에 있음. 네이티브 앱 키
<key>LSApplicationQueriesSchemes</key>
<array>
<string>kakaokompassauth</string>
<string>kakaolink</string>
<string>kakaoplus</string>
<string>naversearchapp</string>
<string>naversearchthirdlogin</string>
</array>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>$(KAKAO_SCHEME_KEY)</string> // env에 있음 앞에 kakao 붙은 네이티브 앱 키
</array>
</dict>
...
</array>
AppDelegate.mm
#import "AppDelegate.h"
#import "RNBootSplash.h"
#import "itall-Swift.h"
#import <CodePush/CodePush.h>
#import <AppCenterReactNative.h>
#import <AppCenterReactNativeAnalytics.h>
#import <AppCenterReactNativeCrashes.h>
#import <React/RCTBundleURLProvider.h>
#import <RNKakaoLogins.h>
#import <NaverThirdPartyLogin/NaverThirdPartyLoginConnection.h>
#import <GoogleSignIn/GoogleSignIn.h>
#import <Firebase.h>
#import <React/RCTLinkingManager.h>
...
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
if ([RCTLinkingManager application:application openURL:url options:options]) {
return YES;
}
...
// kakao
if([RNKakaoLogins isKakaoTalkLoginUrl:url]) {
return [RNKakaoLogins handleOpenUrl: url];
}
...
return NO;
}
화면 코드
import {
KakaoOAuthToken,
KakaoProfile,
getProfile,
login as kakaoLogin,
} from '@react-native-seoul/kakao-login';
...
export const kakaoLoginProcess = async () => {
try {
const token: KakaoOAuthToken = await kakaoLogin(); // kakao-login 라이브러리를 사용하고있습니다.
const email = await getKakaoProfile();
return {
token: token.accessToken,
email,
};
} catch (error: any) {
console.log('kakao error??', error);
throw new Error('카카오 연동에 실패했습니다. 다시 시도해주세요.');
}
};