1의 방법과 2의방법 모두 작성할텐데
1의 방법은 무쓸모여서 내가 삽질했단게 결론이고
2의 방법으로 해결했다는 것이 요지.
1. 카카오가 알려준 or 대부분이 알려주는 릴리즈&디버그 키 해시 확인방법
--> open ssl을 통해 키 확인하기
keytool -exportcert -alias <--키 alias--> -keystore <--키스토어 경로--> -storepass android -keypass android | openssl sha1 -binary | openssl base64
이러면 아주 쓸데없는 값이 나오기 때문에 걍 대충 한줄만 쓰고 말거임
여기에서 나오는거 키 해시에 등록한다?
"아,, 왜안되는거지,,,ㅠㅠ 시키는대로 했는데,,, 다른거 문제인가?"
이러면서 개삽질 쌉가능 쌉파서블임
2. 이 방법을 쓰세요. 긴말 안함
--> 디버그키
private void getAppKeyHash() {
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String something = new String(Base64.encode(md.digest(), 0));
Log.d("Hash key", something);
}
} catch (Exception e) {
// TODO Auto-generated catch block
Log.e("name not found", e.toString());
}
}
해당 메소드 작성하고 호출하면 디버그 시 로그에 Hash Key 값이 찍힐것임. 그것이 debug hash key 값.
--> 릴리즈키
private void getAppKeyHash() {
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String something = new String(Base64.encode(md.digest(), 0));
/*걍 화면에 텍스트 하나 만들어서 something 출력*/.setText(something);
}
} catch (Exception e) {
// TODO Auto-generated catch block
Log.e("name not found", e.toString());
}
}
작성 후 build - generate signed bundle / apk 를 통해 release 앱 만들고 실행하면
화면의 text에 위에서 나온 디버깅값도 아니고 1번의 값도 아닌 무뜬금 첨보는 값 나올것임.
그것이 릴리즈키 ㅎ..
나는 왜 이것때문에 삽질을 했능가
참고링크
https://devtalk.kakao.com/t/topic/623/4
'android' 카테고리의 다른 글
[TimePicker] 타임피커 스피너타입 색상변경하기 (0) | 2021.11.30 |
---|---|
[NumberPicker] TimePicker의 Spinner 처럼 돌아가는 목록 만들기(feat.IOS 같은 목록메뉴 만들기) (0) | 2021.11.30 |
안드로이드에서 다음(카카오) 지도 검은 화면으로 나올 때 (0) | 2021.03.19 |
녹스에서 로컬서버 연결하기 (0) | 2021.03.16 |
안드로이드 스튜디오와 녹스 연결하기(feat. 다음 지도 api) (0) | 2021.03.15 |