카카오 로그인 시 다시 앱으로 돌아올 때 앱 화면이 유지되지 않고 앱이 새로 실행되는 듯한 현상이 있습니다

  • SDK 버전: 1.9.0 (kakao_flutter_sdk)
  • Platform: Flutter(iOS / Android)
  • Flutter Version: 3.16.8
  • Dart Version: 3.2.5
  • 앱 ID: 894853

플러터로 개발한 앱에서 iOS에서 카카오 로그인 시 다시 앱으로 돌아올 때 앱 화면이 유지되지 않고 앱이 새로 실행되는 듯한 현상이 있습니다.
카카톡이 설치되어 있고, 연결된 계정이 있는 경우 토큰과 유저정보까지는 잘 받습니다. 그런데 이 후 로그인 화면에서 별도의 페이지로 이동하는 로직이 없음에도 로그인 화면으로 돌아오지 않고 새로 앱이 실행되어 메인화면으로 시작되는 것 같습니다.

안드로이드에서는 문제가 발생하지 않고 iOS에서만 문제가 있습니다. 아래는 카카오 로그인 시 생기는 에러입니다

-Snapshot request 0x2810a9c20 complete with error: <NSError: 0x2810ccc30; domain: FBSSceneSnapshotErrorDomain; code: 2; reason: “the request was denied”>
-Snapshot request 0x281023330 complete with error: <NSError: 0x2810df1b0; domain: BSActionErrorDomain; code: 6 (anulled)>

안녕하세요.

os에서 카카오 로그인을 위해 필요한 필수 구현 내영이 일부 누락된 것으로 보이는데요
아래 가이드 참고 부탁드립니다.

시작하기 | Kakao Developers 시작하기

가이드에 제시된 내용들은 다 구현을 한 것 같긴합니다.
특히 확인해보아야될 부분이 있을까요?

AppDelegate 구현 하신 내용 공유 부탁드립니다.

주석처리한 부분으로 실행해보아도 증상은 같았습니다

해당 증상은 네이버 로그인 모듈과 같이 사용할 때 주로 발생하는데요
주석처리한 부분만 사용하여 다시 시도 부탁드리며 재발시 AppDelegate 전체 코드 부탁드립니다.

주석처리한 부분 사용하여도 되지 않아 요청하신대로 AppDelegate 전체 코드 올립니다

번거로우시겠지만, Info.plist도 같이 부탁드립니다.

<?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></key>
	<string></string>
	<key>CADisableMinimumFrameDurationOnPhone</key>
	<true/>
	<key>CFBundleDevelopmentRegion</key>
	<string>$(DEVELOPMENT_LANGUAGE)</string>
	<key>CFBundleDisplayName</key>
	<string>더하나바이블</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>더하나바이블</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>$(FLUTTER_BUILD_NAME)</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleURLTypes</key>
	<array>
		<dict>
			<key>CFBundleTypeRole</key>
			<string>Editor</string>
			<key>CFBundleURLName</key>
			<string>com.eduwind.app</string>
			<key>CFBundleURLSchemes</key>
			<array>
				<string>kakao93******</string>
				<string>eduwind</string>
				<string>eduwindnaverlogin</string>
				<string>com.googleusercontent.apps.******</string>
				<string>kakaokompassauth</string>
				<string>storykompassauth</string>
				<string>kakaolink</string>
				<string>kakaotalk-5.9.7</string>
			</array>
		</dict>
	</array>
	<key>CFBundleVersion</key>
	<string>$(FLUTTER_BUILD_NUMBER)</string>
	<key>FlutterDeepLinkingEnabled</key>
	<true/>
	<key>KAKAO_APP_KEY</key>
	<string></string>
	<key>LSApplicationCategoryType</key>
	<string></string>
	<key>LSApplicationQueriesSchemes</key>
	<array>
		<string>kakao93******</string>
		<string>kakaokompassauth</string>
		<string>storykompassauth</string>
		<string>kakaolink</string>
		<string>kakaotalk-5.9.7</string>
		<string>naversearchapp</string>
		<string>naversearchthirdlogin</string>
		<string>kakaotalk</string>
		<string>shinhan-sr-ansimclick</string>
		<string>smshinhanansimclick</string>
		<string>hdcardappcardansimclick</string>
		<string>smhyundaiansimclick</string>
		<string>pocket.online.ansimclick</string>
		<string>scardcertiapp</string>
		<string>cloudpay</string>
		<string>hanawalletmembers</string>
		<string>hanaskcardmobileportal</string>
		<string>nhallonepayansimclick</string>
		<string>nonghyupcardansimclick</string>
		<string>kb-acp</string>
		<string>Liivbank</string>
		<string>newliiv</string>
		<string>kbbank</string>
		<string>NewSmartPib</string>
		<string>com.wooricard.wcard</string>
		<string>wooripay</string>
		<string>citimobileapp</string>
		<string>lotteappcard</string>
		<string>lottesmartpay</string>
		<string>ispmobile</string>
		<string>kpay</string>
		<string>payco</string>
		<string>lpayapp</string>
		<string>lmslpay</string>
		<string>shinsegaeeasypayment</string>
		<string>supertoss</string>
		<string>tmoneypay</string>
		<string>chai</string>
		<string>tswansimclick</string>
		<string>uppay</string>
		<string>kftc-bankpay</string>
		<string>bankwallet</string>
		<string>ukbanksmartbanknonloginpay</string>
		<string>kdb-bankpay</string>
		<string>ibk-bankpay</string>
		<string>kb-bankpay</string>
		<string>keb-bankpay</string>
		<string>sh-bankpay</string>
		<string>nhb-bankpay</string>
		<string>nh-bankpay</string>
		<string>wr-bankpay</string>
		<string>sc-bankpay</string>
		<string>s-bankpay</string>
		<string>ct-bankpay</string>
		<string>dg-bankpay</string>
		<string>bnk-bankpay</string>
		<string>kj-bankpay</string>
		<string>jj-bankpay</string>
		<string>jb-bankpay</string>
		<string>kn-bankpay</string>
		<string>kp-bankpay</string>
		<string>cu-bankpay</string>
		<string>mg-bankpay</string>
		<string>kbn-bankpay</string>
		<string>kkb-bankpay</string>
	</array>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
		<key>NSAllowsArbitraryLoadsInWebContent</key>
		<true/>
		<key>NSExceptionDomains</key>
		<dict>
			<key>naver.com</key>
			<dict>
				<key>NSExceptionRequiresForwardSecrecy</key>
				<false/>
				<key>NSIncludesSubdomains</key>
				<true/>
			</dict>
			<key>naver.net</key>
			<dict>
				<key>NSExceptionRequiresForwardSecrecy</key>
				<false/>
				<key>NSIncludesSubdomains</key>
				<true/>
			</dict>
		</dict>
	</dict>
	<key>NSMicrophoneUsageDescription</key>
	<string>... explain why the app uses the microphone here ...</string>
	<key>NSPhotoLibraryUsageDescription</key>
	<string>사용자의 프로필을 생성하는데 권한을 요청합니다</string>
	<key>NSPrivacyAccessedAPITypes</key>
	<array>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>CA92.1</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>E174.1</string>
			</array>
		</dict>
	</array>
	<key>UIApplicationSupportsIndirectInputEvents</key>
	<true/>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIMainStoryboardFile</key>
	<string>Main</string>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UISupportedInterfaceOrientations~ipad</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UIViewControllerBasedStatusBarAppearance</key>
	<false/>
	<key>io.flutter.embedded_views_preview</key>
	<true/>
	<key>naverConsumerKey</key>
	<string>******</string>
	<key>naverConsumerSecret</key>
	<string>******</string>
	<key>naverServiceAppName</key>
	<string>******</string>
	<key>naverServiceAppUrlScheme</key>
	<string>******</string>
</dict>
</plist>

CFBundleURLSchemes 에서 아래 항목 제거 후 확인 부탁드립니다.

<string>kakaokompassauth</string>
<string>storykompassauth</string>
<string>kakaolink</string>
<string>kakaotalk-5.9.7</string>

다른이야기지만, LSApplicationQueriesSchemes의 경우 iOS에서 최대 50개까지만 지원됩니다.
불필요한 값은 제거하시는 것을 권장 드립니다.

LSApplicationQueriesSchemes와 관련해서 알려주셔 감사합니다~!

CFBundleURLSchemes에서 해당 부분 제거 후에도 에러 내용이 같습니다 ㅜㅜ
혹시나 싶어 LSApplicationQueriesSchemes도 줄여서 실행해봤는데 마찬가지입니다.

LSApplicationQueriesSchemes 에서 아래 내용도 제거 부탁드립니다.

<string>kakao93******</string>

해당 부분도 제거했는데 여전히 문제가 있습니다

클린 빌드 해 보신 뒤 오류 내용을 다시 한번 첨부 부탁드립니다.

[SceneConfiguration] Info.plist contained no UIScene configuration dictionary (looking for configuration named “(no name)”)
[Snapshotting] Snapshotting a view (0x1238bde00, UIKeyboardImpl) that is not in a visible window requires afterScreenUpdates:YES.
[Common] Snapshot request 0x281f80750 complete with error: <NSError: 0x281feeb50; domain: FBSSceneSnapshotErrorDomain; code: 3; reason: “the request was canceled”>
[Common] Snapshot request 0x281f98510 complete with error: <NSError: 0x281fde370; domain: BSActionErrorDomain; code: 6 (anulled)>

빌드 클린 후 에러코드입니다

안녕하세요

첨부해주신 코드 상으로는 특별히 문제되는 부분이 보이지 않고, 상황이 잘 이해되지 않네요.

혹시 이슈 재현되는 영상 첨부가 가능할까요?

첨부해주신 영상과 로그인 코드 확인해봤습니다.
확인한 영상과 비슷하게 샘플 프로젝트를 만들어서 이슈를 재현해보려했는데 이슈가 재현되지 않아서 몇 가지 추가 문의 드립니다.
확인해보시고 답변주시면 감사하겠습니다

  1. 카카오계정으로 로그인(UserApi.instance.loginWithKakaoAccount())로 로그인 시도했을 때는 정상적으로 동작하나요?
  2. pubspec.yaml 파일 첨부가 가능한가요? (어떤 패키지들을 사용하는지 확인하는 목적입니다)
  3. 간단한 샘플 프로젝트를 만들어서 카카오 로그인을 추가했을 때는 정상적으로 동작하나요?

다른 패키지의 영향일 가능성이 높아보이는데요, 구현된 코드 로직 등을 정확히 알지 못하다보니 이슈를 파악하는데 어려운 상황입니다…

번거로우시겠지만 샘플프로젝트 만들어서 정상 동작하는지 확인 부탁드리겠습니다.

저도 같은 현상이 일어나는데 혹시 해결하셨는지 궁금합니다!