안드로이드 앱 -> 카카오채널 연동 문제

카카오 SDK는 v2.5.3을 사용 중입니다.

안드로이드 앱에 카카오톡 채널링크를 연동해놨는데, 제대로 작동을 안 하네요.
해당 버튼을 눌렀을 때 실행되는 링크는 아래와 같습니다.

https://pf.kakao.com/_xgxkbJxb/friend?app_key=c1d76e747f0e634712e6e2a511d31505&kakao_agent=sdk%2F2.5.3%20sdk_type%2Fkotlin%20os%2Fandroid-30%20lang%2Fko-KR%20origin%2FzywIoAOIth2ZssjZmqqnUc3wiyY%3D%20device%2FSM-F700N%20android_pkg%2Fkr.co.soogong.master%20app_ver%2F1.0.15&api_ver=1.0

예상으로는 android 11 에서만 안 되는 듯 합니다.
다른 폰에서는 작동하는 것 같아요.

안녕하세요~

가능하시면 이슈 발생 화면 캡쳐 부탁드리고, 이슈가 발생하는 디바이스 모델명, OS 정보, 이슈 재현 방법 등의 내용도 추가로 부탁드려요.

Screenshot_20210721-103933_Chrome

이슈 발생 화면은 첨부와 같습니다.

URL을 참고하니 정보는 아래와 같습니다.

  1. 디바이스명 : SM-F700N (삼성 갤럭시 z 플립)
  2. OS정보 : 안드로이드 11
  3. 이슈 재현방법 : 카카오채널 연동하기 클릭하면 아래 코드가 실행되고 캡쳐화면이 뜹니다.
  4. 코드
    val url = TalkApiClient.instance.addChannelUrl("_xgxkbJxb")
    KakaoCustomTabsClient.openWithDefault(requireContext(), url)

이게 끝입니다.

혹시 z 플립에서만 발생하는 이슈인가요?

추가로 앱 id가 어떻게 되시는지 알려주시면 감사하겠습니다.

앱 id는 475497 입니다.
테스트 기기가 많지 않아서 다양하게 확인은 못 했습니다.
안드로이드 11, z 플립에서 발생하고
방금 안드로이드 10, lg g7+ 테스트해봤는데 동일하게 발생합니다.

서버 로그를 확인해봤는데, 키 해시가 일치하지 않아서 발생한 것으로 보여요

서버 로그에 전송된 키 해시 값은 zywI****************로 id 475497 앱에는 등록되어있지 않은 키 해시 값입니다.

해당 해시 값을 등록해주시면 정상 동작할 것 같아요.

혹시 앱을 출시하신 후, 스토어에서 다운 받은 앱이 정상동작하지 않는 경우라면 해당 가이드 참고하셔서 키 해시 등록 부탁드려요

네 확인 감사합니다. 그런데 한 가지 의문이 있어서요.
지난번에도 이런 비슷한 문제가 있어서,
릴리즈 키 해시를 "내 어플리케이션"에 다시 등록한 적이 있습니다.
그 당시 값이… C3u6Njx****************** 였구요. 등록하고 어떤 기기에서는 정상 작동하는 것을 확인했습니다.

그런데 이번에 릴리즈 키 해시인 zywIoA*******************를 구글 스토어에서 가져와서 또 등록을 해야하니 뭔가 좀 헷갈립니다.

처음 등록한 릴리즈 키 해시(C3u6Njx…)와 지금 등록할 릴리즈 키 해시(zywloA)가 다른 건가요???

키 해시 값은 개발 환경에서 가지고 있는 인증서 바이너리에 대한 해시값으로 환경에 따라 달라지는 고유 값 입니다. 따라서 같은 코드를 빌드하더라도 어떤 환경에서 빌드했는지에 따라서 키 해시 값이 달라집니다.

그렇기 때문에 플레이 스토어에 앱을 출시하고, 플레이 스토어에서 해당 앱을 다운로드 받아서 실행했다면 다운로드 받은 앱의 키 해시 값은 구글 서버 내의 인증서를 통해 생성된 것이기 때문에 기존에 사용하던 키 해시 값과는 달라지게 됩니다.

처음 등록하신 릴리즈 키 해시 C3u6******* 이 어떤 환경에서 얻어진 키 해시 값인지는 제가 정확히 알 수 없으나, 현재는 zywI****************의 키 해시 값이 API 서버로 전송되고 있어서 해당 값을 등록해주셔야 정상 동작할 것 같아요.

답변 감사합니다.

처음 등록한 키 해시는 카카오 디벨로퍼 문서에 있는 내용대로, 디버그 키해시 및 릴리즈 키해시를 구해서 넣어준 값입니다. (C3u6…는 릴리즈 키 해시입니다.)

그렇다면, 매번 빌드할 때마다 키 해시를 확인하고 카카오 "내 애플리케이션"에 갱신해줘야하는 것일까요??

아뇨 항상 동일한 환경(PC)에서 빌드한다면 키 해시가 변경되지 않습니다.

앱을 플레이스토어에 출시한게 아닌가요?

플레이스토어에 출시했습니다.
제 맥에서만 작업을 하고, 출시했는데 변경된 게 의아하네요.

전에 한번 깃헙에서 코드를 다시 받아서 프로젝트 빌드를 했었는데, 그 때 꼬인것 일 수도있을 것 같아요.

근데,
keytool -exportcert -alias {키} -keystore {위치} | openssl sha1 -binary | openssl base64
위 방법으로 가져온 릴리즈 키 해시랑

echo {SHA-1} | xxd -r -p | openssl base64
이 방법으로 가져온 릴리즈 키 해시랑 다른 점은 이해가 안 가네요.

Google Play 앱 서명(App Signing)을 사용한다면 직접 릴리즈 키 해시를 생성하지 않고, Google Play Console에서 얻은 SHA-1 인증서 지문(SHA-1 certificate fingerprint)을 Base64로 인코딩하여 사용해야 합니다.

가이드에 나와있듯이 플레이스토어에 출시한 앱은 Google Play Console에서 얻은 인증서를 기반으로 키 해시를 구해야 하기 때문에 로컬 환경에서 릴리즈 키 해시를 구한 것과 키 해시가 달라지는 점 참고부탁드려요.

넵 감사합니다. 정말 많은 도움이 되었습니다. :slight_smile:
피드백 100억만점!!!

1개의 좋아요