loginWithKakaoTalk 내에서 AuthCodeClient.instance.authorizeWithTalk 호출시 크래시

문의 시 사용하시는 SDK 버전 정보와 플랫폼(Android / iOS) 및 디벨로퍼스 앱ID를 알려주세요.


kakao_flutter_sdk: 1.9.6
App ID: 1033371
카카오 버전: 11.1.3
Device: iPhone 15 pro
iOS: 18.0

위 환경에서 특정 계정으로 로그인 시도했을때 “authorizeWithTalk will call” 이후 authorizeWithTalk 호출 도중 크래시가 발생하여 다음 코드와 같이 로그를 확인하려 했지만 catch되지않고 크래시가 발생했습니다.


다른 디바이스 및 계정에서는 문제없이 로그인이 되고 있습니다.

Future<OAuthToken> loginWithKakaoTalk({
    List<String>? channelPublicIds,
    List<String>? serviceTerms,
    String? nonce,
    void Function(String)? callback,
  }) async {
    print('loginWithKakaoTalk called');
    callback?.call('loginWithKakaoTalk called');
    var codeVerifier = AuthCodeClient.codeVerifier();
    print('codeVerifier: $codeVerifier');
    callback?.call('codeVerifier: $codeVerifier');

    String? stateToken;
    String? redirectUrl;
    if (kIsWeb) {
      stateToken = generateRandomString(20);
      redirectUrl = await AuthCodeClient.instance.platformRedirectUri();
    }

    callback?.call('authorizeWithTalk will call');
    String authCode = '';
    try {
      authCode = await AuthCodeClient.instance.authorizeWithTalk(
        redirectUri: redirectUrl ?? KakaoSdk.redirectUri,
        channelPublicId: channelPublicIds,
        serviceTerms: serviceTerms,
        codeVerifier: codeVerifier,
        nonce: nonce,
        stateToken: stateToken,
        webPopupLogin: true,
      );
    } catch (e) {
      print('e: $e');
      callback?.call('e: $e');
    }
    print('authCode: $authCode');
    callback?.call('authCode: $authCode');

    final token = await AuthApi.instance.issueAccessToken(
        redirectUri: redirectUrl,
        authCode: authCode,
        codeVerifier: codeVerifier);
    print('token: $token');
    callback?.call('token: $token');

    await TokenManagerProvider.instance.manager.setToken(token);
    print('setToken called: $token');
    callback?.call('setToken called: $token');

    return token;
  }

안녕하세요.

크래시 발생 시, 로그 공유 가능하실까요?

보시다시피 해당 메서드를 try로 감쌌지만 catch가 되지도 않고 아무런 로그도없이 크레시가 되어버립니다.

재현 방법에 대해 좀 더 자세히 설명 부탁드립니다.
ㄴ 웹, 네이티브 앱, 하이브리드 여부
ㄴ 특정 계정에 해당하는 회원번호

Flutter로 개발하여 빌드한 iOS앱 환경입니다.
앱내 일부분에서만 InAppWebView를 사용하고있습니다.

1033371 앱은 테스트앱이 아니며 문제 계정이 팀에 추가되있지 않습니다.
해당 계정을 팀으로 추가해서 번호는 확인이 가능할것 같습니다.
번호가 개인정보에 해당한다면 따로 전달드릴 방법도 알려주시면 감사드리겠습니다.

추가로, sentry_flutter 이용하여 앱 전체를 감싸고 있음에도 아무런 로그가 찍히지 않습니다.

회원님 디벨로퍼스앱에 이미 연결된 사용자라면, 회원번호(사용자 정보조회 시 반환되는 id값)가 있을 것이기에
이 정보로 회원님 서비스로 로그인 시도한 사용자를 특정하여 인가코드 요청이 완성되었는지 확인하고자 하였는데요

“authorizeWithTalk will call” 로그까지 찍으셨다고 하니 정황상 authorizeWithTalk 가 실행되고 비동기 응답을 받지 못한 채 다른 이유로 앱이 종료 되는 것으로 보입니다. 이 경우 카카오측 SDK 문제라기 보다는 구현하신 앱 내 스킴 처리하는 다른 모듈에서 카카오톡에서 회원님 서비스로의 스킴 요청을 가로채고 있지는 않은지 확인이 필요합니다.

위 계정을 다른 디바이스에서 sign in with kakao account 시도했을때 정상동작 하고있기에 계정 자체의 문제는 아닌것으로 보입니다.

혹시 sign in with kakaotalk 과 sign in with kakao account가 서로 다른 스킴을 사용하는 건가요? 그렇다면 어떤 키워드로 검색을 해야할까요?

그리고 앱내 모듈의 문제일경우 다른 iPhone과 계정에서 sign in with kakaotalk이 성공할수 있는건가요?

sign in kakao account는 sdk가 웹뷰를 열어 카카오 계정 로그인을 시도합니다. 이 경우 계정 페이지에서 돌아올때 스킴이 쓰이지 않습니다.

말씀처럼 계정의 문제는 아니며 카카오톡에서 회원님 앱의 스킴을 호출하지만 이를 받지 못하는 것으로 디벨로퍼스 가이드의 스킴 설정이 올바른지 확인 부탁드리며 추가로 다른 소셜로그인이나 스킴 설정등에서 로그인 콜백에 필요한 스킴을 스틸하지 않는지 확인 부탁드립니다.

시작하기 | Kakao Developers 시작하기

제가 가용할수 있는 모든 환경에서는 다음과 같은 설정으로 정상동작 하고있습니다.
해당 디바이스가 다른 개발자의 개인폰이라 저도 디버깅에 제한이 있는 상황인데요. 혹시 설치된 다른 앱에서 스틸이 발생하는지 확인해볼 필요가 있을까요?

추가로 언급해주신 문서의 이미지에 "item 3"이 있지만 이에대한 텍스트가 없는데 설명을 부탁드려도 될까요?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>CFBundleURLTypes</key>
		<array>
			<dict>
				<key>CFBundleTypeRole</key>
				<string>Editor</string>
				<key>CFBundleURLSchemes</key>
				<array>
					<string>$(KAKAO_KEY)</string>
				</array>
			</dict>
			<dict>
				<key>CFBundleTypeRole</key>
				<string>Editor</string>
				<key>CFBundleURLSchemes</key>
				<array>
					<string>kakao$(KAKAO_KEY)</string>
				</array>
			</dict>
		</array>
		<key>LSApplicationQueriesSchemes</key>
		<array>
			<string>https</string>
			<string>kakaokompassauth</string>
		</array>

...
		
	</dict>
</plist>

해당 디바이스에 설치된 다른 앱에서 스킴 스틸이 발생하고 있었습니다.
단서를 제공해 주셔서 감사합니다!