첫 번째 디버그 키해시(추천)
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64
위 명령어를 터미널에 입력하게 되면
이러한 형태로 경고문과 디버그용 키해시값을 받게 됩니다.
명령어 가운데에 보시면 파일의 위치가 표기되어있는데
Command + Shift + .
을 누르시게 되면 숨겨진 파일을 볼 수 있습니다.
그리하여 이 경로를 추적해 보면
이렇게 Users/사용자맥이름/.android/에 있는 debug.keystore 파일의 값을 받게 됩니다.
두 번째 디버그 키해시(비추천)
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v -storepass android | openssl sha1 -binary | openssl base64
동일하게 위 명령어를 터미널에 입력하게 되면
분명 디버그 키해시값을 받는 명령어지만 중간의 "-list -v" 의 유무에 차이가 있습니다.
차이점
둘 다 디버그용 키해시를 받는 값이라 사실 크게 상관은 없지만 양자택일의 논리로 추천과 비추천이라 입력하게 되었습니다.
쓰면 안 된다는 뜻이 아닌 두 명령어의 목적이 다름임을 말씀드립니다.
첫 번째 명령어는
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64
인증서를 내보내고, 그 후 OpenSSL을 사용하여 인증서의 SHA1 해시를 계산하여 base64로 인코딩합니다.
이는 인증서 자체의 SHA1 해시 값을 계산합니다.
두 번째 명령어는
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v -storepass android | openssl sha1 -binary | openssl base64
인증서 정보를 출력하고, 그 후 OpenSSL을 사용하여 전체 출력의 SHA1 해시를 계산하여 base64로 인코딩합니다.
이는 인증서의 텍스트 정보(즉, 인증서의 메타데이터 포함)의 SHA1 해시 값을 계산합니다.
이로 인해 두 명령어의 결과가 다르게 나타납니다. 두 명령어의 목적은 다르지만, 키해시를 추출하는데 일반적으로 첫 번째 방법이 사용됩니다.
릴리즈 키해시
- 첫 번째, 키스토어 생성하기
keytool -genkey -v -keystore ~/my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
위 명령어를 터미널에서 실행하여 줍니다.
이 명령어를 풀어 말씀드리자면
- keytool:
- Java Keytool 유틸리티를 호출하는 명령입니다. Keytool은 키와 인증서를 생성, 관리, 변환하는 도구입니다.
- -genkey:
- 새 키를 생성(generation)하는 옵션입니다. 일반적으로 키쌍(공개키와 개인키)을 생성합니다.
- -v:
- 상세(verbose) 출력을 활성화하는 옵션입니다. 명령 실행 중 발생하는 모든 정보를 자세히 출력합니다.
- -keystore ~/my-release-key.jks:
- 키스토어 파일의 경로와 이름을 지정합니다. ~/my-release-key.jks는 사용자의 홈 디렉터리에 my-release-key.jks라는 이름의 키스토어 파일을 생성합니다. 키스토어는 여러 키와 인증서를 저장하는 파일입니다.
- -keyalg RSA:
- 생성할 키의 알고리즘을 지정합니다. 이 경우 RSA 알고리즘을 사용하여 키를 생성합니다. RSA는 비대칭 암호화 알고리즘입니다.
- -keysize 2048:
- 생성할 키의 크기를 비트 단위로 지정합니다. 이 경우 키 크기는 2048비트입니다. 키 크기가 클수록 보안은 강화되지만, 처리 속도가 느려질 수 있습니다.
- -validity 10000:
- 생성된 키와 인증서의 유효 기간을 일(day) 단위로 지정합니다. 이 경우 유효 기간은 10000일입니다.
- -alias my-key-alias:
- 키스토어 내에서 키를 식별하는 별칭(alias)을 지정합니다. my-key-alias는 생성된 키의 별칭입니다. 이 별칭을 사용하여 키스토어 내에서 특정 키를 참조할 수 있습니다.
이러한 식의 옵션이 적용된 것을 볼 수 있는데
이 구간을 변경해 주면 저장위치와 별칭을 변경하여 입력할 수 있습니다.
이렇게 입력을 하게 되면
이러한 식으로 키해시를 입력할 때 검증할 수 있는 자료들을 입력하라고 나옵니다.
- 비밀번호
- 비밀번호 재입력
- 이름
- 부서이름
- 조직(회사)이름
- 도시 이름
- Ex) Seoul
- 도시의 전체이름
- Ex) Seoul Repubic of Korea
- 국가코드
- Ex) KR
이렇게 모든 입력이 끝나고 틀린 부분이 있다면 no를 입력해 주시고 진행하시려면 yes를 입력해 주시면 됩니다.
비밀번호는 잊어버리는 수가 있으니 잘 기억해 주시거나 잘 보관해 주시면 되겠습니다.
- 두 번째, 키해시 생성하기
keytool -exportcert -alias my-release-key -keystore /Users/woogie/my-release-key.jks | openssl sha1 -binary | openssl base64
위 명령어를 터미널에 입력하게 되면
이러한 형태의 비밀번호를 입력하라고 요청이 오는데 아까 입력해 두신 비밀번호를 입력해 주시면 키해시값이 정상적으로 나오는 것을 확인하실 수 있습니다.
keytool -exportcert -alias my-release-key -keystore /Users/woogie/my-release-key.jks | openssl sha1 -binary | openssl base64
이 명령어 또한
키스토어를 생성했을 당시 별칭과 저장경로를 변경하셨다면 바꾸어 입력해주셔야 합니다.
'Flutter > tip' 카테고리의 다른 글
[플러터 Flutter] Private, getter/setter가 무엇인가? 어떻게 사용하는가? (0) | 2024.06.28 |
---|---|
[플러터 Flutter] 인자(Parameter)와 인수(Argument)의 차이 (0) | 2024.06.27 |
[플러터 Flutter] 매개변수(Parameter), 인스턴스변수(InstanceVariable), 전역변수(GlobalVariable), 지역변수(LocalVariable) (0) | 2024.06.27 |
[플러터] 안드로이드 패키지명, iOS 번들아이디 찾기 [Flutter] Find Android Package Name, iOS BundleID (1) | 2024.06.16 |
플러터 리팩토링(refactoring) (0) | 2024.04.30 |