Loading...
Loading...
Android 앱 서명을 위한 Keystore 파일을 생성합니다. keystore 생성, 키스토어 만들기, 앱 서명 키 요청 시 사용됩니다.
npx skill4agent add ingpdw/pdw-android-dev-tool create-keystorekeytool -genkey -v \
-keystore <keystore_name>.jks \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-alias <alias_name>| 항목 | 설명 | 예시 |
|---|---|---|
| keystore password | Keystore 비밀번호 | 최소 6자 이상 |
| key password | 개별 키 비밀번호 | Keystore와 동일 가능 |
| CN (Common Name) | 이름 | Hong Gildong |
| OU (Organizational Unit) | 부서 | Development |
| O (Organization) | 조직/회사 | MyCompany |
| L (Locality) | 도시 | Seoul |
| ST (State) | 시/도 | Seoul |
| C (Country) | 국가 코드 (2자리) | KR |
keytool -genkey -v \
-keystore release-key.jks \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-alias my-key-alias \
-dname "CN=Hong Gildong, OU=Development, O=MyCompany, L=Seoul, ST=Seoul, C=KR" \
-storepass <password> \
-keypass <password># ~/.gradle/gradle.properties 또는 프로젝트 gradle.properties
RELEASE_STORE_FILE=../keystore/release-key.jks
RELEASE_STORE_PASSWORD=your_store_password
RELEASE_KEY_ALIAS=my-key-alias
RELEASE_KEY_PASSWORD=your_key_passwordandroid {
signingConfigs {
create("release") {
storeFile = file(project.property("RELEASE_STORE_FILE") as String)
storePassword = project.property("RELEASE_STORE_PASSWORD") as String
keyAlias = project.property("RELEASE_KEY_ALIAS") as String
keyPassword = project.property("RELEASE_KEY_PASSWORD") as String
}
}
buildTypes {
release {
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
}android {
signingConfigs {
release {
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}keytool -list -v -keystore <keystore_name>.jks# SHA-1 (Google Play 등록용)
keytool -list -v -keystore <keystore_name>.jks | grep SHA1
# SHA-256
keytool -list -v -keystore <keystore_name>.jks | grep SHA256# Keystore 비밀번호 변경
keytool -storepasswd -keystore <keystore_name>.jks
# Key 비밀번호 변경
keytool -keypasswd -alias <alias_name> -keystore <keystore_name>.jkskeytool -changealias -keystore <keystore_name>.jks \
-alias <old_alias> \
-destalias <new_alias>keytool -export -rfc \
-keystore upload-key.jks \
-alias upload-key \
-file upload-certificate.pem.gitignore# Keystore
*.jks
*.keystore
keystore.propertiesandroid {
signingConfigs {
create("release") {
storeFile = file(System.getenv("KEYSTORE_PATH") ?: "../keystore/release.jks")
storePassword = System.getenv("KEYSTORE_PASSWORD") ?: ""
keyAlias = System.getenv("KEY_ALIAS") ?: ""
keyPassword = System.getenv("KEY_PASSWORD") ?: ""
}
}
}| 에러 | 원인 | 해결 |
|---|---|---|
| keytool: command not found | JDK 미설치 또는 PATH 미설정 | JDK 설치 후 PATH 설정 |
| keystore password was incorrect | 비밀번호 오류 | 올바른 비밀번호 입력 |
| alias does not exist | 잘못된 alias | |