Dart/Flutter
[Flutter] Android keystore(JKS) 서명 키 만들고 적용하기
검은냥냥이
2024. 10. 27. 05:44
JKS 키 생성
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
지정된 경로를 찾을 수 없다고 나오는 경우
keytool -genkey -v -keystore ./key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
"~/key.jks"가 아닌 현재 도스창 기준의 경로로 변경 "./key.jks" 하거나 다른 경로로 입력해주면 됩니다.
android/app 폴더에 넣기
key.properties
storePassword=입력한 비밀번호
keyPassword=입력한 비밀번호
keyAlias=key
storeFile=./key.jks
"android/app" 안에 "key.jks" 파일을 넣고, "key.properties" 파일을 만들고 내용을 넣어줍니다.
signingConfigs 설정
android/app/build.gradle
plugins {
...
}
// 키스토어 프로퍼티 로드
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('app/key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
defaultConfig {
...
}
// defaultConfig 하단에 추가
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
// buildTypes 변경
buildTypes {
release {
// debug -> release 변경
signingConfig signingConfigs.release
...
}
debug {
...
}
}
ProGuard 규칙 적용
proguard-rules.pro
# 기본 Android ProGuard 규칙
-keepattributes Signature
-keepattributes *Annotation*
-keepattributes EnclosingMethod
-keepattributes InnerClasses
# React Native 관련 규칙
-keep class com.facebook.react.** { *; }
-keep class com.facebook.hermes.** { *; }
-keep class com.facebook.jni.** { *; }
# 앱 특정 규칙
-keepclassmembers class * implements android.os.Parcelable {
public static final ** CREATOR;
}
# 필요에 따라 추가 규칙을 여기에 작성하세요
android/app/build.gradle
buildTypes {
release {
...
// ProGuard 활성화
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
minifyEnabled true로 설정하여 릴리스 빌드에서 코드 축소 및 난독화를 활성화하고, proguardFiles 설정에 기본 Android ProGuard 규칙과 우리가 방금 생성한 커스텀 규칙 파일을 추가합니다.
728x90
사업자 정보 표시펼치기/접기
레플라 | 홍대기 | 경기도 부천시 부일로 519 화신오피스텔 1404호 | 사업자 등록번호 : 726-04-01977 | TEL : 070-8800-6071 | Mail : support@reafla.co.kr | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기