커머스 템플릿 보내기카카오 링크를 예제와 똑같은 방식으로 구현했습니다.
안드로이드 스튜디오로 apk설치하여 작동하는것을 확인하였는데요
이 apk를 마켓에 올려 다운받아 설치하면 카카오링크 버튼 터치가 안됩니다.(카카오톡으로 공유가안됨 , 반응 없음)
혹시 이와 같은 원인이 뭔지 아시나요?
혹시 Google play app signing 기능을 사용하고 계신가요? 릴리즈 사이닝 키로 릴리즈 빌드를 하더라도 이 apk를 마켓에 올릴 때에는 구글이 릴리즈키를 바꿔서 사인하기 때문에 키해시 값이 바뀌게 되고 카카오 SDK 사용에 지장이 생기는 이슈 같은데요.
https://stackoverflow.com/questions/44355452/google-play-app-signing-key-hash/44448437#44448437
위 링크에서 나온 방법대로 마켓 버전의 키해시를 구하여 앱설정에 등록하신 후 다시 테스트 해보시겠어요?
위 링크랑 똑같이 해서 나온 해시값 등록했는데도 안되네요… 원인이 뭘까요 도대체 ㅠㅠ
지금 테스트하고 계신 앱의 네이티브 앱키 메시지로 보내주시겠어요? 개발자님의 앱으로 조회해봤는데 로그를 볼 수가 없어서요…
지금 로그로 들어오는 해시값은 jhtM로 시작하는 해시값인데요… 개발자 사이트에 등록이 되어 있지 않은 값입니다. 지금 키해시 값이 하나 밖에 등록이 안되어 있는데 보통 릴리즈 키해시와 디버그 키해시가 다르기 때문에 적어도 두개 이상의 키해시가 등록이 되어 있어야 해요. 지금 하나만 등록이 되어 있다면 디버그 키해시만 등록되어 있을 가능성이 있어요. 한번만 더 체크해 주시겠어요?
public static String getKeyHash(final Context context) {
PackageInfo packageInfo = getPackageInfo(context, PackageManager.GET_SIGNATURES);
if (packageInfo == null)
return null;
for (Signature signature : packageInfo.signatures) {
try {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
return Base64.encodeToString(md.digest(), Base64.NO_WRAP);
} catch (NoSuchAlgorithmException e) {
Log.w(TAG, "Unable to get MessageDigest. signature=" + signature, e);
}
}
return null;
}
로 나온 키해시 값을 앱설정에 android 플랫폼 안에 키해시값에 넣으면 되는거아닌가요??
키 해시값은 aO6Fk88TjfixLt8NF9MphSYxzR8= 입니다.
네이티브 앱키값은 123e1cf08deace262a44251cd6c718ce 이구요…
지금 테스트하고 계신 앱의 apk를 어떻게 생성하고 계신지 정확하게 설명해주실 수 있나요? 다시 한번 말씀드리지만,
- 안드로이드 스튜디오에서 디버그 키스토어로 APK 빌드
- 안드로이드 스튜디오에서 디버그 키스토어가 아닌 별도의 사이닝키로 Generate Signed APK로 생성
- Google Play App Signing 기능을 통하여 마켓애 배포
위 세가지의 경우 앱의 키해시가 다 다르기 떄문에 위 세가지의 키해시를 다 등록하셔야 해요. 지금 개발자님은 한가지 경우만 테스트하고 계신게 아닐까 싶어요. 만약 Google Play App Signing 기능을 사용하고 계시지 않다면 적어도 1), 2) 경우의 키해시를 전부 등록해 주셔야 해요.