허용 된 답변은 파일을 사용하여 프로젝트의 동일한 루트 폴더에있는 APK에 서명하는 데 사용할 키 저장소를 제어합니다. 우리가 사용하는 경우 VCS 같이 힘내 , 우리가 목록을 무시하는 특성 파일을 추가하는 것을 잊지 나쁜 일이 될 수 있습니다. 비밀번호를 세상에 공개 할 것이기 때문입니다. 문제는 여전히 지속됩니다.
프로젝트 내에서 동일한 디렉토리에 속성 파일을 만드는 대신 외부에 만들어야합니다. gradle.properties 파일을 사용하여 외부에 만듭니다.
단계는 다음과 같습니다.
1. 루트 프로젝트에서 gradle.properties를 편집하거나 작성하고 다음 코드를 추가하십시오. 경로를 직접 편집하십시오.
AndroidProject.signing=/your/path/androidproject.properties
2. / your / path /에 androidproject.properties를 만들고 다음 코드를 추가하십시오 ./your/path/to/android.keystore를 키 저장소 경로로 변경하는 것을 잊지 마십시오.
STORE_FILE=/your/path/to/android.keystore
STORE_PASSWORD=yourstorepassword
KEY_ALIAS=yourkeyalias
KEY_PASSWORD=yourkeypassword
3. 앱 모듈 build.gradle (프로젝트 루트 build.gradle 아님)에 다음 코드가 없으면 추가하거나 조정하십시오.
signingConfigs {
release
}
buildTypes {
debug {
debuggable true
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
4 단계에서 코드 아래에 다음 코드를 추가하십시오.
if (project.hasProperty("AndroidProject.signing")
&& new File(project.property("AndroidProject.signing").toString()).exists()) {
def Properties props = new Properties()
def propFile = new File(project.property("AndroidProject.signing").toString())
if(propFile.canRead()) {
props.load(new FileInputStream(propFile))
if (props!=null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {
android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
} else {
println 'androidproject.properties found but some entries are missing'
android.buildTypes.release.signingConfig = null
}
} else {
println 'androidproject.properties file not found'
android.buildTypes.release.signingConfig = null
}
}
이 코드는 1 단계의 gradle.properties 에서 AndroidProject.signing 속성을 검색합니다 . 속성이 발견되면 속성 값을 2 단계 에서 만든 androidproject.properties를 가리키는 파일 경로로 변환합니다 . 그런 다음 모든 속성 값이 build.gradle의 서명 구성으로 사용됩니다.
이제 키 저장소 비밀번호가 노출 될 위험에 대해 다시 걱정할 필요가 없습니다.
build.gradle에 키 저장소 정보를 넣지 않고 Android APK 서명 에서 자세히 알아보십시오.
build.gradle
, 당신이 아닌 다른 뭔가를해야합니다build.gradle
여부, 그것은 환경 변수 (한 답변 당), 속성 파일 (다른 답변 당) 또는 다른 수단에 대한 조정입니다. 외부에 물건을 갖고 싶지 않다면build.gradle
, 정의에 따라 모든 서명 정보는 내부 에 있어야 합니다buid.gradle
.