Flutter Android 앱 배포 버전 카카오 앱으로 안넘어가지는 문제

flutter android 에서 디버그시에는 넘어가지는데 릴리즈, 배포용에서는 카카오앱으로 안넘어가지는 문제가 있습니다.

아래의 문서를 보고
https://developers.kakao.com/docs/latest/ko/android/getting-started
릴리즈키랑 Google Play Console 앱 서명으로 릴리즈 키까지 입력했는데도 안넘어가 집니다 !

아래는 카카오앱으로 넘어갈 때 사용하는 코드이고

  @override
  Future<void> androidKakaoChanel() async {
    try {
      await UserApi.instance.loginWithKakaoTalk();
      try {
        Channels relations = await TalkApi.instance.channels();
        if (relations.channels != null) {
          if (relations.channels![0].relation == 'ADDED') {
            TalkApi.instance.chatChannel("채널");
          } else {
            try {
              await TalkApi.instance.followChannel("채널").then((
                  value,) async {
                if (value.success) {
                  await TalkApi.instance.chatChannel("채널");
                } else {
                  ToastMessage(msg: '카카오 채널을 추가해주세요').showToastMessage();
                }
              });
            } catch (e) {
              print("KAKAO CHANNEL $error");
            }
          }
        }
      } catch (error) {
        print("KAKAO CHANNEL $error");
      }
    } catch (error) {
      print('KAKAO CHANNEL $error');
    }
  }

아래는 프로가드 입니다.

-keep class com.kakao.sdk.**.model.* { ; }

-if interface * { @retrofit2.http.* public *** *(…); }
-keep,allowoptimization,allowshrinking,allowobfuscation class <3>

-keep class com.google.android.play.** { ; }
-keep class com.google.android.play.core.splitinstall.
* { ; }
-keep class com.google.android.play.core.splitcompat.
* { ; }
-keep class com.google.android.play.core.tasks.
* { *; }

-keep class com.google.android.gms.common.annotation.** { *; }

-keep class io.flutter.embedding.engine.deferredcomponents.** { *; }

-dontwarn com.google.android.gms.common.annotation.**
-dontwarn com.google.android.play.core.**

kakao_flutter_sdk: ^1.9.7+3
앱 id는 1227168 입니다.

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


안녕하세요.

21일 오후 5시 이후 달리 오류 내용이 확인되지 않는데요
현재도 오류 발생하고 계실까요?

네 아직도 넘어가지지 않는 오류가 있습니다 ! 아래는 에러메세지입니다.

KAKAO CHANNEL {code: -3, msg: App disabled plusfriends(or privacy_data_for_pay) scopes for [TALK_PLUSFRIENDS] API on developers.kakao.com. Enable it first.}

전달된 오류 메시지와 같이
동의 항목 중 “카카오톡 채널 추가 상태 및 내역(plusfriends)” 설정한 바 없는 앱에서 카카오톡 채널 관계 확인하기 API 사용하여 발생된 오류입니다.

해당 API를 사용 하기 위해서는 카카오톡 채널 추가 상태 및 내역(plusfriends) 동의 항목을 활성화 하셔야 하며 사용자에게 동의 받으셔야 합니다.

감사합니다! 해결되었습니다!

1개의 좋아요

한가지 더 여쭤보겠습니다 ! ios 는

    try {
      await UserApi.instance.loginWithKakaoTalk();
      try {
        Channels relations = await TalkApi.instance.channels();
        if (relations.channels != null) {
          if (relations.channels![0].relation == 'ADDED') {
            TalkApi.instance.chatChannel("채널");
          } else {
            try {
              await TalkApi.instance.followChannel("채널").then((
                  value,) async {
                if (value.success) {
                  await TalkApi.instance.chatChannel("채널");
                } else {
                  ToastMessage(msg: '카카오 채널을 추가해주세요').showToastMessage();
                }
              });
            } catch (e) {
              print("KAKAO CHANNEL $error");
            }
          }
        }
      } catch (error) {
        print("KAKAO CHANNEL $error");
      }
    } catch (error) {
      print('KAKAO CHANNEL $error');
    }

이렇게 코드를 작성했을 때 ‘존재하지 않는 페이지입니다’ 라는 에러가 나서

   try {
      await TalkApi.instance.followChannel("채널").then((value,) async {
        await TalkApi.instance.chatChannel("채널");
      });
    } catch (error) {
      print('KAKAO CHANNEL $error');
    }

이 코드로 사용하고 있는데 이렇게 하면 아래처럼 웹으로 갔다가 채팅방으로 넘어가는데
혹시 안드로이드 처럼 한번에 카카오톡 앱이 켜지면서 채팅방에 들어가게 할 수 없나요?

아래는 info.plist 코드 입니다.

	<key>LSApplicationQueriesSchemes</key>
		<array>
			<string>kakaonavi-sdk</string>
			<string>tmap</string>
			<string>nmap</string>
            <string>kakaokompassauth</string>
            <string>kakaolink</string>
            <string>kakaotalk</string>
            <string>kakaoplus</string>
		</array>
       <key>CFBundleURLTypes</key>
            <array>
                <dict>
                    <key>CFBundleURLSchemes</key>
                    <array>
                        <string>kakao네이티브키</string>
                    </array>
                </dict>
            </array>

아쉽게도 followChannel 기능은 웹 기반 기능으로 사용자의 브라우저에 카카오 계정 세션이 존재하지 않는 경우 첨부 이미지와 같은 로그인 화면이 표시됩니다. (안드로이드 동일)

음 . 그럼 위의 코드와 같이 사용할 때 왜 존재하지 않는 페이지라고 나오는거죠??
ios 는 에러메세지도 안나오는것 같습니다.

존재하지 않는 페이지로 나올 때의 URL 부탁드립니다.

제가 잘못설정했던것같습니다 ! 답변 감사합니다!