JeffGuKang / react-native-kakao-login

React Native module for kakao login sdk: rn-kakao-login
73 stars 16 forks source link

안드로이드 베타/알파 앱 배포시 해쉬등록 관련 #20

Closed vgb0332 closed 4 years ago

vgb0332 commented 4 years ago

패키지와는 무관한 것 같은데 혹시나 도움 받을 수 있을까 해서 여쭤봅니다. 플레이스토어에서 알파/베타 버전 앱 배포시 카카오 개발자 콘솔에서 키 해시 등록 절차를 어떻게 해야하는지 혹시 아시는 분이 있을까요?

JeffGuKang commented 4 years ago

일반 릴리즈와 마찬가지로 알파 혹은 베타 버전 배포시에 사용하시는 키스토어에로부터 해쉬를 뽑아 등록하시면 되지 않을까요?

keytool -exportcert -alias <release_key_alias> -keystore <release_keystore_path> | openssl sha1 -binary | openssl base64

Google play app signing 를 사용하셨을 경우 등

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;
}

를 사용하여 안드로이드 로그상에서 해쉬를 보는게 확실합니다.

vgb0332 commented 4 years ago

네 답변 감사합니다! 확인 후 클로즈 하겠습니다.

추가적으로 위에 getKeyHash 자바 함수의 경우 어디에 추가하는 것이 좋을까요? 네이티브는 문외한이라 해당 코드의 삽입 위치가 감이 안오네요..

JeffGuKang commented 4 years ago

MainApplication.java

에서 onCreate 오버라이딩 부분에서

 @Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
    initializeFlipper(this); // Remove this line if you don't want Flipper enabled
    getKeyHash(this); // 이부분
  }

이런 식으로 호출하시면 될 거 같아요.