본문 바로가기
Dart/Flutter

[Flutter] Android keystore(JKS) 서명 키 만들고 적용하기

by 검은냥냥이 2024. 10. 27.

JKS 키 생성

JKS 키 생성

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

 

지정된 경로를 찾을 수 없다고 나오는 경우

JKS 키 생성중 지정된 경로를 찾을 수 없는 경우

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 적용

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 | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기