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 | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기
'Dart > Flutter' 카테고리의 다른 글
[Flutter] 모바일 앱을 보호하기 위한 몇가지 보안 (0) | 2023.05.21 |
---|---|
[Flutter] Theme.of(context) 성능 이슈 (0) | 2023.05.10 |
[Flutter] Xcode File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a (0) | 2023.05.03 |
[Flutter] 애플 개발자 계정 사업자로 전환 및 가입하기 (DUNS 발급) (0) | 2023.04.19 |
[Flutter] 플러터 개발시 모범사례 확인하기 (0) | 2023.04.09 |