티스토리 뷰

반응형

안드로이드 릴리즈 버전으로 스토어에 올릴 시 . .jks 파일이 필요하다. 

 

앱 터미널에 아래 코드 입력 

 

keytool -genkey -v -keystore  자신의 앱 폴더 위치/android/app/keyName.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyName

 

빨간 글씨는 자신이 원하는 이름으로 생성하면 됩니다. 

 

💡 명령어 설명

  • -keystore keyName.jks
    ➤ 생성될 keystore 파일 이름입니다. 원하는 이름으로 바꿔도 됩니다.
  • -keyalg RSA
    ➤ 암호화 알고리즘입니다.
  • -keysize 2048
    ➤ 키 크기 (보통 2048 이상 권장).
  • -validity 10000
    ➤ 유효 기간(일 수 기준, 10000일 = 약 27년).
  • -alias keyName
    ➤ 키 별칭 (나중에 signing 시 필요).

 

 

그럼 아래의 정보들을 입력하라고 한다. 

 

Enter keystore password: [비밀번호 입력]
Re-enter new password: [다시 입력]
What is your first and last name?
[이름 입력]
...
KR

..

.. correct? [yes/no]: yes

이렇게 생성을 하면 자신의 앱 폴더 위치/android/app 여기에 .jKs 파일이 생성된 것을 볼 수 있다. 

 

 

그 후에

 

Android Studio open.

 

1. android/app 폴더 안에 keystore.properties 파일 생성 후 입력 

key.store.file=keyStore.jks
key.store.password=비밀번호
key.alias.name=keyStore
key.alias.password=비밀번호

 

 

2. android/app/build.gradle.kts 코드 추가 

 

import java.util.Properties
import java.io.FileInputStream


android {
.
.

    signingConfigs {
        create("release") {
            val keystorePropertiesFile = rootProject.file("app/keystore.properties")
            val keystoreProperties = Properties().apply {
                load(FileInputStream(keystorePropertiesFile))
            }

            storeFile = file(keystoreProperties["key.store.file"] as String)
            storePassword = keystoreProperties["key.store.password"] as String
            keyAlias = keystoreProperties["key.alias.name"] as String
            keyPassword = keystoreProperties["key.alias.password"] as String
        }
    }
.
.
.

    buildTypes {
        release {
         
            signingConfig = signingConfigs.getByName("release")
            //코드 최적화 및 용량 압축
            isMinifyEnabled = true 
            isShrinkResources = true
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    
    dependencies {
    implementation ("com.google.android.play:asset-delivery-ktx:2.3.0")
    coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.3")
}

}

 

 

 

3. android/app/proguard-rules.pro 코드 추가 

 

# Firebase
-keep class com.google.firebase.** { *; }
-keep class com.google.android.gms.** { *; }

# Retrofit 사용 시 (선택)
-keep class retrofit2.** { *; }
-keep interface retrofit2.** { *; }

# Keep annotations
-keepattributes Signature
-keepattributes *Annotation*

# Flutter Play Core (split install 관련)
-keep class com.google.android.play.** { *; }
-keep class com.google.android.play.core.splitinstall.** { *; }
-keep class com.google.android.play.core.splitcompat.** { *; }
-keep class com.google.android.play.core.tasks.** { *; }

-dontwarn com.google.android.play.**
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함