두 앱이 동일한 네이티브 앱키를 사용하는 상황에서 같은 디바이스에 함께 설치될 경우 Redirect 충돌

ID 1259022


Q1. Custom scheme 에 suffix 를 붙여도 카카오에서 Redirect URI 로 인정할 수 있는지?(멀티앱의-com.leafstone.locichat” 같은 suffix이 안되는거 같음)

**Q2. 앱 B에서만 정상 로그인을 위해서는 반드시 별도의 네이티브 앱키를 새로 생성하여 사용해야 하는지가 궁금합니다. 기존 앱키를 공유하며 두 앱을 동시에 사용하는 다른 해결책이 있는지 안내 부탁드립니다.(아니면 현재 멀티앱이 아닌 별도의 앱을 만들어서 새롭게 신청해야하는지) **

—-
:check_mark: 상황 요약

  • 앱 A

    • applicationId: com.leafstone

    • 카카오 로그인 정상 동작

    • 이미 스토어 배포 완료

  • 앱 B

    • applicationId: com.leafstone.locichat

    • 신규 개발 중

    • 자체 debug.keystore 사용

    • 카카오 로그인 적용 완료

    • 단독 설치 시 정상 동작

:check_mark: 공통점

  • 두 앱 모두 동일한 카카오 네이티브 앱키를 사용 중

  • 동일 디바이스에 두 앱 설치 시 로그인 Redirect 충돌 발생


:check_mark: 문제 현상

두 앱(A,B)이 모두 설치된 상태에서 B 앱에서 로그인하면:

  • 카카오 인증 이후

  • 정상적으로 앱 B로 Redirect 되지 않고

  • “앱을 선택하세요” 팝업이 뜬 뒤 로그인 과정이 멈춥니다.

→ 두 앱이 동시에 있을 때만 Redirect 오작동합니다.


:check_mark: 현재 설정

AndroidManifest.xml

      <activity
        android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
        android:launchMode="singleTask"
        android:exported="true"> <!--  kakao login -->
        <intent-filter>
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="android.intent.category.BROWSABLE" />
          <data
            android:host="oauth"
            android:scheme="kakao835c4badb44dda6263312cb37a0318b6-com.leafstone.locichat" />
        </intent-filter>
      </activity> <!--  kakao login -->

Key Hash

앱 B의 debug.keystore에서 추출:

Xo8WBi6jzSxKDVR4drqm84yr9iU=

카카오 개발자센터 Android 플랫폼에 등록 완료했습니다.


:check_mark: 에러/로그 (Logcat)

아래는 앱 B 로그인 시도 시 나타나는 실제 로그입니다:

카카오 Redirect 시도 시 다음 로그가 출력됩니다:

START u0 {act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE]
dat=kakao835c4badb44dda6263312cb37a0318b6://oauth/...
cmp=com.leafstone/com.kakao.sdk.auth.AuthCodeHandlerActivity


여기서 cmp 값이:

cmp=com.leafstone

즉, 앱 B가 아닌 앱 A로 리다이렉트되고 있습니다.

의도한 값은:

cmp=com.leafstone.locichat

Android SDK에서 AndroidManifest.xml 에 설정하는 Redirect scheme은

SDK 초기화 / AndroidManifest.xml 설정 만 동일하게 하면되고

사용되는 커스텀 스킴은 디벨로퍼스앱에서 복사해 적용하시면됩니다.


멀티앱 권한을 받으셨으므로 동일한 앱키 사용하는게 맞고

A앱은 kakao835c4badb44d************* 스킴 사용하면되고
B앱은 kakao835c4badb44d*************-com.leafstone.locichat 스킴 사용하면됩니다.

Redirect scheme이 충돌하는 것은 설정을 잘못하셨기 때문이므로 위 내용과 가이드 참고하셔서 A, B앱 구분 설정 해보시겠어요?

B앱에서 로그인 호출 시 SDK가 A앱 스킴으로 redirect_uri를 생성합니다.

B앱에서 발생한 실제 redirect 로그:


... redirect_uri=kakao835c4badb44dda6263312cb37a0318b6://oauth ...

→ B앱에서 사용해야 하는 스킴은 아래입니다.

kakao835c4badb44dda6263312cb37a0318b6-com.leafstone.locichat://oauth

그러나 SDK가 B앱 스킴을 생성하지 않고, A앱 기본 스킴으로 redirect_uri를 강제로 생성합니다.

■ 실제 발생 로그

(문제가 발생한 핵심 구간만 첨부)

11-14 14:44:42.886  ...  capturedLink=https://kauth.kakao.com/oauth/authorize?client_id=835c4badb44dda6263312cb37a0318b6
&redirect_uri=kakao835c4badb44dda6263312cb37a0318b6%3A%2F%2Foauth
&response_type=code
&ka=sdk/2.20.1 ...
&android_pkg/com.leafstone.locichat
...

AuthCodeHandlerActivity 동작 로그:

11-14 14:44:42.903 I ActivityTaskManager: Displayed com.leafstone.locichat/com.kakao.sdk.auth.AuthCodeHandlerActivity ...
11-14 14:44:43.047 V WindowManagerShell: component=com.leafstone.locichat/com.kakao.sdk.auth.AuthCodeHandlerActivity

→ 스킴 매칭으로 Activity는 실행되지만
→ code 수신 실패 후 Chrome CustomTab으로 다시 되돌아가며 로그인 루프가 발생합니다.

■ 요청사항

멀티앱 사용 중인데 B앱의 redirect scheme이 아닌
A앱 기본 스킴(kakao앱키://oauth)를 SDK가 자동으로 사용하게 되는 원인을 확인 부탁드립니다.

또한,
앱별 등록된 스킴이 정상 등록된 상태에서도
SDK가 특정 스킴을 강제로 선택하는 동작이 정상인지 확인을 요청드립니다.

각각의 앱 SDK 초기화 / AndroidManifest.xml 설정 어떻게 하셨는지 공유 부탁드려요.