● Android - Keystore 생성 및 앱 서명하기
1. Keystore 생성
- keystore 파일명 지정 (디렉토리를 지정하여 생성할 수도 있다.)
- alias명 지정
keytool -genkey -v -keystore ~/[Keystore 파일명].jks -keyalg RSA -keysize 2048 -validity 10000 -alias [alias명] -storetype JKS
질문에 답하기
- Enter Keystore password : [생성할 키스토어 비밀번호]
- Re-enter new password : [생성할 키스토어 비밀번호 확인]
- Whit is your first and last name? : [생성자 성과 이름]
- What is the name of your organizational unit? : [생성자 부서명]
- What is the name of your organization? : [생성자 조직(회사)명]
- What is the name your City or Locality? : [생성자 도시명]
- What is the name of your State or Province? : [생성자 지역(나라) 이름]
- What is the two-letter country code for this unit? : [생성자의 국가 코드 ex)대한민국: 82]
- Generating 2,048 bit RSA key pair and self-signed certificate (SHA384withRSA) with a validity of 10,000 days for: CN=[생성자 성과 이름], OU=[성성자 부서명], O=[생성자 조직(회사)명], L=[생성자 도시명], ST=[생성자 지역(나라) 이름], C=[생성자의 국가 코드] : 1~7까지 입력한 내용을 확인시켜준다.
- Enter key password for <[alias명]> (RETURN if same as keystor password) : [alias 패스워드 (keystore 비밀번호와 같게 지정할 경우 엔터)]
- correct? : [입력 내용대로 최종 생성을 원할 경우 yes 혹은 y 입력]
▷ keystore와 alias 비밀번호를 서로 다르게 설정할 수 있다. 물론 다르게 설정하는 것이 보안 상 유리하다.
2. properties를 사용하여 keystore 참조하기
○ android의 root 폴더 아래 local.properties 파일을 생성한다.
○ local.properties 파일에 아래 내용을 입력한다.
STORE_FILE=[keystore 파일 경로]
STORE_PASSWORD=[keystore 패스워드]
KEY_ALIAS=[alias명]
KEY_PASSWORD=[alias 패스워드]
▷ gitignore에 local.properties 파일과 keystore 파일을 추가하는 것을 잊지말자.
3. 앱 서명 구성하기
- app 수준의 build.gradle을 설정한다.
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
android {
......
......
signingConfigs {
release {
storeFile file(localProperties.getProperty('STORE_FILE'))
storePassword localProperties.getProperty('STORE_PASSWORD')
keyAlias localProperties.getProperty('KEY_ALIAS')
keyPassword localProperties.getProperty('KEY_PASSWORD')
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
debug {
signingConfig signingConfigs.debug
}
}
}
▷ build.gradle 구성 후 release로 run 하거나 APK 혹은 App Bundle 추출 시 앱 서명이 되어있는 것을 확인할 수 있다.
'Android' 카테고리의 다른 글
build.gradle에서 현재 flavor 찾기 (0) | 2024.04.09 |
---|---|
Android - FileProvider (0) | 2023.09.12 |
Android - Multidex 오류 해결법 (0) | 2023.04.26 |
Android - API Key 숨기기 (local.properties 활용) (0) | 2023.04.14 |
Android - Kakao 키 해시(Key Hash) 등록 방법 (0) | 2023.02.15 |