[Flutter 3.22.1] loginWithKakaoAccount 기능 고장

App ID: 1084591
Flutter: 3.22.1
kakao_flutter_sdk_user: 1.9.2

Flutter Flavor 적용 프로젝트이고 iOS는 정상동작 합니다.
Android native 환경에서 login kakao account 시도 중 “계속하기” 버튼을 누를 경우 다음 예외가 발생하고 같은 페이지에 머무르게 됩니다.

https://developers.kakao.com/docs/latest/ko/flutter/getting-started#project-scheme-android
위와같이 설정 해두었고, 혹시 몰라서 특정 앱키를 리터럴로 넣어뒀지만 여전히 동작하지 않습니다.

E/IllegalArgumentException(13010): java.lang.IllegalArgumentException: No uri was passed to CustomTabsActivity.

1개의 좋아요

안녕하세요.

확인을 위해 AndroidManifest.xml 파일 내용 공유 부탁드립니다.

키는 마스킹 했습니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <application
        android:label="@string/app_name"
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher">

        <activity
            android:name="com.kakao.sdk.flutter.AuthCodeCustomTabsActivity"
            android:exported="true">
            <intent-filter android:label="flutter_web_auth">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="kakao********" android:host="oauth" />
            </intent-filter>
        </activity>

        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:taskAffinity=""
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <meta-data
                android:name="io.flutter.embedding.android.NormalTheme"
                android:resource="@style/NormalTheme"
            />
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>

    <queries>
        <intent>
            <action android:name="android.intent.action.PROCESS_TEXT" />
            <data android:mimeType="text/plain" />
        </intent>
    </queries>
</manifest>

카카오톡에서 서비스 앱으로 돌아가지 못하는 것은 대부분 AuthCodeCustomTabsActivity가 정상동작하지 않기 때문인데요
보통 잘못된 AndroidManifest.xml 설정에 의해 발생합니다.

하지만, 제공해 주신 내용에서는 달리 이상한점을 확인하지 못하였는데요
scheme에 앱 키를 직접 할당하여 테스트 하셨을까요?

ex, android:scheme="kakao10e643..."

<data android:scheme="kakao@string/kakao_key" android:host="oauth" />

처음엔 위와 같은 형태로 시도했으나 잘 안되는듯 하여 다음과 같은 형태로 테스트 중이었습니다.

<data android:scheme="kakao10***de520d6" android:host="oauth" />

캐시를 지우고 다시 시도했을때, 되돌아갈 주소로 각 스킴별 타겟이 bottom sheet 형태로 표시되는걸 확인했습니다. 어딘가에서 추가로 redirect url 설정이 필요한것 아닐까요?


추가

<data android:scheme="@string/kakao_key" android:host="oauth" />

오타를 지우니 1084592, 1084594 앱에 대해서도 동일한 결과를 얻을수 있었습니다.

문제를 단순화 하고자 기존에 모든 기능이 작동하는 1073929 앱과 동일한 설정으로 1084977 앱을 생성한뒤 앱키 그리고 KakaoSdk.origin을 확인하여 해시키만 입력해 주었습니다. 그런데 여전히 같은 현상이 나타나고 있습니다.


추가
final authCode = await _channel.invokeMethod('accountLogin', {
          CommonConstants.url: url.toString(),
          CommonConstants.redirectUri: redirectUri,
        });

신규 프로젝트 생성후 카카오 가이드를 따랐을때 계속하기 버튼을 누르면 url 및 redirectUri 모두 정상값으로 위 함수를 호출하게 되지만, authCode가 오거나 예외가 발생하지 않고 있습니다.

Flutter 3.22.0
Dart 3.4.0
kakao_flutter_sdk_user: 1.9.2

위 환경에서 정상 동작이 확인 되었습니다.
@woody.ho

안녕하세요.

아마도 다른 원인이 있지 않았을까 싶은데요
해결되셨다니 다행입니다.ㅏ
문제가 재현되실 경우 다시 말씀 부탁드립니다.

지금 저도 이문제가 발생되고 있어요 앱키 확인도 여러번 했는데요… 해시키도 확인하고요.

진짜 원인을 찾았네요.

android:taskAffinity=""

AndroidManifest.xml 에서 이부분을 제거하니 버전 상관없이 동작합니다.


1개의 좋아요

이것 지우니깐 되는 것 같긴한데…
로그인 결과는 없네요… 그냥 창만 닫히고
카카오가 SHA256 안써서 그런거 아닌가요?