buid.gradle 파일은 gitignore에 추가되어 있지 않습니다.
git 저장소가 노출되면 빌드에 필요한 password나 키들에 대한 정보가 노출될 수 있습니다.
이는 곧 스토어에 올라가 있는 앱이 다른 앱으로 대체될 수 있다는 이야기 입니다.
gradle 은 groovy 언어로 이루어진 빌드 도구 입니다.
groovy언어와 local.properties 파일을 이용하여 이를 변경합니다.
변경 전 (key 값들은 임의의 값으로 대체 하겠습니다.)
...
signingConfigs {
debugConfig {
storeFile file('../test.jks')
storePassword 'test123'
keyAlias 'test'
keyPassword 'test123'
}
releaseConfig {
storeFile file('../test.jks')
storePassword 'test1234'
keyAlias 'test1234'
keyPassword 'test1234'
}
}
buildTypes {
debug {
minifyEnabled false
prouardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.debugConfig
}
release {
minifyEnabled false
prouardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.releaseConfig
}
}
변경 후
local.properties에 키값에 대한 정보를 추가합니다.
.gitignore파일에 local.properties가 추가되어 있는지 확인합니다(기본세팅으로 포함되어 있을 것입니다.)
(안드로이드 개발시 api의 키값에 대한 정보도 local.properties에 추가해놓고 build.gradle에서 변수로 설정, 프로젝트 코드 내부에서 불러와 사용하기도 한다고 합니다.)
// local.properties
...
STORE_FILE=../test.jks
STORE_PASSWORD=test1234
KEY_ALIAS=test
KEY_PASSWORD=test1234
// build.gradle
apply plugin: 'com.android.application'
def localPropertiesFile = rootProject.file('local.properties');
def localProperties = new Properties();
localProperties.load(new FileInputStream(localPropertiesFile))
def storeFileValue = file(localProperties['STORE_FILE'])
def storePasswordValue = localProperties['STORE_PASSWORD']
def keyAliasValue = localProperties['KEY_ALIAS']
def keyPasswordValue = localProperties['KEY_PASSWORD']
...
signingConfigs {
debugConfig {
storeFile storeFileValue
storePassword storePasswordValue
keyAlias keyAliasValue
keyPassword keyPasswordValue
}
releaseConfig {
storeFile storeFileValue
storePassword storePasswordValue
keyAlias keyAliasValue
keyPassword keyPasswordValue
}
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debugConfig
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.releaseConfig
}
}
}
스토어에 올리기 위해 aab(android app bundle)파일을 생성할 시에는 local.properties의 정보를 가지고 생성하면 됩니다.
gitignore에 포함되어 있으므로 협업하는 개발자들끼리는 까먹지 않고 공유되어야 하는 내용입니다!
'네이티브 > Android' 카테고리의 다른 글
안드로이드 UGC 심사 거절 (0) | 2022.01.18 |
---|---|
Android Uri.getQueryParameter에 + 들어가면 빈칸으로 바뀝니다. (0) | 2022.01.12 |
Android html5 Geolocation 웹뷰 적용 (0) | 2021.12.01 |
Android 화면 Resizing with windowSoftInputMode (0) | 2021.11.29 |
Android preload 띄우기 (0) | 2021.09.28 |