안드로이드 앱을 출시하기 위해서 소셜 로그인을 등록하기 위해서는 해쉬키를 만들고 등록하는 등의 과정을 거쳐야 합니다. 이것의 흐름을 간략하게 기입합니다. 플러터를 이용한 개발을 중심으로 설명입니다. 개인적으로 복습을 위한 내용으로 자세하지 않은 부분이 있습니다. 혹여 궁금증이 있다면 댓글로 문의 부탁드립니다.
1.firebase를 통한 구글 로그인 설정일 경우
sha 인증서 지문을 등록해야합니다. 해당 내용은 많은 블로그에 나와있으므로 특별히 언급하지는 않고 작업환경에서 해쉬키를 얻기 위한 명령어는
디버그 키의 해시 얻기:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
릴리스키의 해시 얻기:
keytool -list -v -keystore <RELEASE_KEY_PATH> -alias <RELEASE_KEY_ALIAS> -storepass <STORE_PASS>
이것을 해서 등록하면 되겠습니다.
위의 내용을 보다보면 REALEASE_KEY_PATH 와 RELEASE_KEY_ALIAS 등을 어떻게 쓰라는거지 라는 생각을 하게 될 것입니다. 해당 내용을 풀어서 써보면 밑과 같고 말그대로 원하는 경로에 keystore 이름을 정해서 만든다고 생각하시면 되겠습니다
keytool -genkey -v -keystore <원하는 경로>/mykeystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-release-key
이렇게 진행하고 있으면 중간에 warning과 함께 해당 해시키의 형식은 현재 일반적으로 사용하는 것과 달라서 위험할 수 있다라고 하면서 pkcs12 형식을 사용하라고 하는데 이때는 밑과 같은 내용으로 마이그레이션이 가능합니다.
keytool -importkeystore \
-srckeystore /Users/nmdkims/Desktop/teacherline/teacherline-key/teacherline_keystore.jks \
-destkeystore /Users/nmdkims/Desktop/teacherline/teacherline-key/teacherline_keystore.p12 \
-deststoretype pkcs12
이렇게 진행하고 생성할때는 밑을 참조하세요
keytool -exportcert -alias teacherline_release_key -keystore /Users/nmdkims/Desktop/teacherline/teacherline-key/teacherline_keystore.p12 -storetype pkcs12 | openssl sha1 -binary | openssl base64
그리고 릴리스 해시키를 이용하여 빌드를 할경우에 추가적인 환경 설정에 대한 내용도 간략하게 밑에 추가합니다.
key.properties를 생성해야합니다. 이곳에는 이해하기 쉽게 환경설정을 하는 장소라고 생각하면 됩니다.
storePassword=<비밀번호>
keyPassword=<비밀번호>
keyAlias=keyAlias
storeFile=<키 저장소 파일 경로, 예: /Users/nmdkims/key.jks>
그리고 build.gradle에 두가지 파트를 추가하면 되겠습니다.
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
...
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
...
}
}
}
여기까지 간략한 정리였습니다.
궁금한 내용은 댓글로 질문해주세요
'DevLog' 카테고리의 다른 글
[개발환경셋팅] 3. git action을 이용한 간단한 ci 맛보기 (0) | 2023.05.08 |
---|---|
[개발환경셋팅] 2. commit message template, pull request template 설정 (0) | 2023.05.08 |
[개발환경셋팅] 1. Django 프로젝트 Boilerplate 만들기 (1) | 2023.05.08 |
[개념완성] Django INSTALLED_APPS 앱등록 (0) | 2023.05.01 |
[개념완성] get_object_or_404 (0) | 2023.04.21 |