Ios deeplink 복귀

사용중인 SDK 버전: Expo SDK: 54.0.25
디벨로퍼스 앱 ID: 1299260

안녕하세요. iOS(TestFlight) 환경에서 카카오/네이버/구글 소셜 로그인 후 딥링크가 앱으로 돌아오지 않는 문제가 있어 문의드립니다.

■ 상황 요약

  • React Native / Expo / EAS Build 사용

  • Custom URL Scheme: borini://

  • redirect URI 예:
    https://borini-0-5-api.onrender.com/api/auth/kakao/mobile?redirect=borini%3A%2F%2Foauth

  • 로그인 과정은 정상적으로 진행되지만
    카카오톡 → 제 앱으로 돌아오는 딥링크 호출이 TestFlight 환경에서만 동작하지 않습니다.

■ 현상

  • 카카오 로그인 완료 후 borini://oauth?... 로 redirect 되어야 함

  • TestFlight 빌드에서는 앱이 다시 포그라운드로 열리지 않음 (딥링크 무반응)

  • Expo Go / EAS Dev Build에서는 정상적으로 딥링크가 동작함

  • 네이버, 구글 로그인도 동일한 현상 발생 → 공통적으로 iOS TestFlight 딥링크에서만 문제 발생

■ 확인한 것

  • Info.plist 설정은 모두 포함됨

    • CFBundleURLTypes (카카오, 구글)

    • LSApplicationQueriesSchemes (kakaotalk, kakaokompassauth 등)

    • associatedDomains (universal link)

  • redirect 서버 로그는 모두 정상
    → 302 → borini://oauth?token=... 호출까지 확인됨

  • 카카오톡 앱에서 redirect 시점에서만 앱이 열리지 않음

■ 문의드리는 내용

  1. TestFlight 환경에서 카카오톡이 Custom URL Scheme 딥링크를 호출하지 못하는 경우가 있을까요?

  2. 카카오톡 iOS 앱이 TestFlight 빌드에 대해 딥링크를 차단하거나 무시하는 케이스가 있는지?

  3. Custom scheme (borini://oauth) 사용 시 추가적으로 필요한 설정이 있는지?

  4. 카카오/네이버/구글 모두 동일 증상을 보이기 때문에 iOS TestFlight 환경 특성과 관련이 있을까요?

필요시 redirect 로그, Info.plist, 앱 설정 정보 제공 가능합니다.

감사합니다.



안녕하세요.

로그를 보니 REST_API_KEY 방식 카카오 로그인에서 Redirect URI로 잘 이동하여 액세스 토큰 까지 잘 발급한 것으로 보이는데요.

Redirect URI 에서 Custom scheme 으로 리다이렉트 하도록 구현하신걸까요?

(1) 사용자 액션 없이 외부 앱 실행은 iOS에서 기본 차단되는 것으로 알고 있습니다.
ㄴ 리다이렉트 URI에서 버튼클릭으로 이동하여 정상작동 여부 확인해보시겠어요?

(2) SDK에서 리다이렉트 처리 까지 수행하는 NATIVE_APP_KEY 방식이 아니므로 LSApplicationQueriesSchemes는 필요 없는 상황으로 보이고
ㄴ 앱내 인앱브라우저에서 REST_API_KEY 방식 카카오 로그인 할테니 개발하신 앱으로 되돌아가는 처리도 필요 없어보이는데요.

어떤 방식으로 구현되었는지 알기 어려워서 재현 영상 첨부 해주시겠어요?

다른 게시물에서 말씀하신 "리젝션 사유"라 하심은 어떤 것인지 구체적으로 설명해주시겠어요?

안녕하세요, 답변 감사합니다.

저희는 REST_API_KEY 기반 브라우저 OAuth 방식으로 카카오 로그인을 사용하고 있고,
카카오 SDK(NATIVE_APP_KEY 방식)는 사용하고 있지 않습니다. (브라우저 OAuth방식은 이제리젝 사유가 된다 하여 카카오 SDK 로 새로 개발 중이긴 합니다)

  1. Redirect URI → Custom Scheme 이동 여부
    네, 현재 Redirect URI에서 Custom Scheme(borini://oauth) 으로 앱 복귀하도록 구현되어 있습니다.
  2. Redirect URI에서 버튼 클릭으로 이동 테스트
    버튼 클릭 방식으로도 테스트했으며,
    개발 환경에서는 정상 동작하지만 TestFlight에서는 여전히 앱 복귀가 차단되거나 불안정한 상태입니다.
  3. 인앱 브라우저에서 SDK 없이 REST API 방식 사용 시, 앱 복귀가 필요 없다는 부분
    말씀해주신 부분 이해했습니다.
    다만 저희 서비스 구조상, OAuth 인증 후 앱으로 돌아와 토큰을 처리해야 해서 Custom Scheme 복귀가 필요한 상황입니다.

추가로 위에 말했다 싶이 브라우저 OAuth방식은 이젠 리젝 사유가 될수 있다 하여 카카오 SDK 로 새로 개발 중인데 혹시 제가 알아본 정보가 맞는지 아시는지 알고 싶습니다.

앱에서 기본 브라우저 띄워 OAuth2 진행하시는 것으로 이해 했습니다.
해당 방식에 관해 데브톡으로 따로 접수된 부분은 없습니다.

SDK 방식으로 구현하시면 말씀하신 모든 문제가 해결될 것으로 보이는데, 먼저 해당 방식으로 구현 방식 변경해보시겠어요?

1개의 좋아요

안녕하세요, 답변 감사합니다.

현재 저희 앱은 Expo Managed Workflow 기반 iOS 애플리케이션입니다.
Expo Managed 환경에서는 카카오 iOS SDK를 적용하기 위해서는
**expo prebuild 후 네이티브 iOS 프로젝트를 직접 관리해야 하는 구조(AppDelegate 수정, Pod 설정, Swift bridging 등)**로 전환해야 합니다.

이 방식은 사실상 Expo의 네이티브 레벨로 넘어가야 하며,
현재 저희 프로젝트에서는 다른 기능(iOS 딥링크, 소셜 로그인 통합, 결제 리다이렉트 등) 관련 이슈들을
우선적으로 해결해야 하는 상황이라
지금 즉시 iOS 네이티브 SDK 방식으로 구조를 변경하기는 어려운 상황입니다.

그래서 당장은
OAuth2 + 기본 브라우저 기반의 REST 로그인 방식에서 iOS 딥링크 문제를 해결하는 방향으로 진행을 하는걸로 변경 되었습니다.

그러므로 이에 관련되어서 새로 제가 알아야할 사항이나 참고할 만한 도큐먼트나 내용이이 있을까요?

안녕하세요.

Android 인앱브라우저로 처리하는 하이브리드 앱 가이드는 제공하고 있는데요.

하이브리드 앱 가이드 | Kakao Developers 하이브리드 앱 가이드

엑스포환경에서 인앱브라우저 구동이 가능한가요?

안녕하세요, 답변 감사합니다.

안내해주신 Android 하이브리드 앱 가이드는 확인했습니다.
다만, 저희가 구현하려는 방식은 **iOS 환경에서의 OAuth2 기반 간편로그인(카카오톡 설치 시 앱 연동 포함)**이며,
현재 앱 구조가 Expo Managed Workflow 기반이라
카카오 iOS SDK 적용을 위한 prebuild(AppDelegate 수정, Pod 설정 등)는 당장 도입하기 어려운 상황입니다.

저희는 카카오 로그인 방식을
카카오 SDK → OAuth2 + 인앱브라우저(SFSafariViewController / ASWebAuthenticationSession) 기반 방식으로 전환하기로 결정했습니다.

이 방식에서도 카카오톡 앱이 설치되어 있을 경우,
인증 과정 중 카카오톡 앱으로 이동 후 다시 Redirect URI를 통해 앱으로 복귀하는 플로우를 사용하게 됩니다.

그래서 iOS 환경에서 아래 사항들에 대해 추가적으로 확인하고 싶습니다:

  1. iOS에서 OAuth2 인증을 인앱 브라우저(SFSafariViewController 또는 ASWebAuthenticationSession) 기반으로 진행할 때
    카카오 간편로그인을 구현하는 데 유의해야 할 카카오 측 권장사항이 있을까요?

  2. 카카오톡 앱 → iOS 앱으로 Redirect URI로 복귀할 때
    필수적으로 지켜야 하는 규약이나, 방지해야 하는 패턴(iOS 보안 정책 상 문제가 되는 방식 등)이 있을까요?

  3. OAuth2 Authorization Code Flow 방식(iOS In-App Browser + Custom URL Scheme Redirect)에 대해
    카카오가 제공하는 공식 문서가 있다면 안내 부탁드립니다.

현재 저희는 iOS에서
OAuth2 + 인앱브라우저 기반(ASWebAuthenticationSession 기반)으로 카카오 간편로그인을 구현하는 것이 최우선 방향이며,
이에 필요한 참고 자료나 주의사항이 있다면 큰 도움이 될 것 같습니다.

감사합니다.

(1) 앞서 문의는 인앱브라우저가 아니라 디폴트 브라우저를 띄우시고 원래 앱으로 돌아가지 못한다는 문의셨죠?

(2) 인앱브라우저라면 앱으로 돌아가는 로직은 필요없고, 톡으로 로그인 후, 앱으로 돌아가는 부분은 별도 조치가 필요 없습니다.
ㄴ iOS의 정책 상, 호출한 앱으로 자동으로 돌아갈 수 없습니다. 이용자가 직접 돌아가야합니다.
ㄴ webView 네비게이션에서 카카오톡 스킴만 잘 호출 하면 됩니다.


인앱브라우저상에서 로그인은 현재까지 매우 많은 앱에서 사용중이고 별다른 제재 리포트를 전달 받지 못했습니다.
다만, 엑스포환경에서 동작은 제가 확인하지 못하므로 직접 구현해보셔야할 것으로 보입니다.

검토 부탁드려요.

안녕하세요, 답변 감사합니다.

안내해주신 내용 잘 확인했습니다.
현재 저희는 iOS 환경에서 OAuth2 + 인앱브라우저(SFSafariViewController 기반) 방식으로 카카오 로그인을 구현하는 방향으로 진행하고 있습니다.

iOS 정책 상 인앱브라우저는 자동 복귀가 불가능한 점,
또 카카오톡 로그인 후에는 webView 네비게이션에서 카카오톡 스킴 호출만 정상적으로 이루어지면 문제없이 동작한다는 점 이해했습니다.

Expo 환경에서는 직접 검증이 필요하다고 하셔서,
말씀해주신 방식대로 인앱브라우저에서 카카오 스킴 호출이 정상 동작하는지 테스트해보겠습니다.

혹시 iOS 인앱브라우저 기반 OAuth2 로그인 구현 시
카카오 측에서 추가로 참고해야 할 문서나 주의사항이 있다면 공유 부탁드립니다.

감사합니다.

네, 공식 가이드에서는 아래 가이드를 제공하고 있습니다.
앱내 웹뷰에서 표시할 페이지 구현하시고 테스트 해보시면됩니다.

하이브리드앱 가이드 하이브리드 앱 가이드 | Kakao Developers 하이브리드 앱 가이드
REST-API 방식 로그인 가이드 REST API | Kakao Developers REST API

감사합니다.

1개의 좋아요