수색…


서명 구성을 사용하여 build.gradle 구성

서명 구성을 정의하여 build.gradle 파일에서 apk에 서명 할 수 있습니다.

다음을 정의 할 수 있습니다.

  • storeFile : 키 스토어 파일
  • storePassword : 키 저장소 비밀번호
  • keyAlias : 키 별칭입니다.
  • keyPassword : 키 별칭 암호

서명 구성을 만들려면 signingConfigs 블록을 정의 해야합니다.

android {
    signingConfigs {

        myConfig {
            storeFile file("myFile.keystore")
            storePassword "myPasswork"
            keyAlias "aKeyAlias"
            keyPassword "myAliasPassword"
        }
    }
    //....
}

그런 다음 하나 이상의 빌드 유형에 할당 할 수 있습니다.

android {

    buildTypes {
        release {
            signingConfig signingConfigs.myConfig
        }
    }
}

외부 파일에 서명 구성 정의

외부 파일의 서명 구성을 프로젝트의 루트 디렉토리에있는 signing.properties 로 정의 할 수 있습니다.

예를 들어 다음과 같은 키를 정의 할 수 있습니다 (원하는 이름을 사용할 수 있음).

STORE_FILE=myStoreFileLocation    
STORE_PASSWORD=myStorePassword
KEY_ALIAS=myKeyAlias
KEY_PASSWORD=mykeyPassword

그런 다음 build.gradle 파일에서 다음을 수행하십시오.

android {

    signingConfigs {
        release
    }
    
     buildTypes {
        release {
            signingConfig signingConfigs.release
        }
     }
}

그런 다음 빌드 프로세스에서 그라데이션 문제를 피하기 위해 몇 가지 검사를 도입 할 수 있습니다.

//------------------------------------------------------------------------------
// Signing
//------------------------------------------------------------------------------
def Properties props = new Properties()
def propFile = file('../signing.properties')
if (propFile.canRead()) {

    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 {
        android.buildTypes.release.signingConfig = null
    }
} else {
    android.buildTypes.release.signingConfig = null
}

서명 구성 설정 환경 변수 정의

서명 정보 설정 환경 변수를 저장할 수 있습니다.
이 값은 System.getenv("<VAR-NAME>") 하여 액세스 할 수 있습니다.

build.gradle 다음을 정의 할 수 있습니다.

signingConfigs {
    release {
        storeFile file(System.getenv("KEYSTORE"))
        storePassword System.getenv("KEYSTORE_PASSWORD")
        keyAlias System.getenv("KEY_ALIAS")
        keyPassword System.getenv("KEY_PASSWORD")
    }
}

별도의 gradle 파일에 서명 구성 정의

외부 구성을 추가하는 가장 간단하고 깨끗한 방법은 별도의 Gradle 파일을 사용하는 것입니다

build.gradle

apply from: './keystore.gradle'
android{
    signingConfigs {
        release {
            storeFile file(keystore.storeFile)
            storePassword keystore.storePassword
            keyAlias keystore.keyAlias
            keyPassword keystore.keyPassword
        }
    }
}

keystore.gradle

ext.keystore = [
    storeFile    : "/path/to/your/file",
    storePassword: 'password of the store',
    keyAlias     : 'alias_of_the_key',
    keyPassword  : 'password_of_the_key'
]

keystore.gradle 파일은 파일 시스템의 어느 위치 에나 존재할 수 있습니다. apply from: '' 위치 apply from: '' 를 gradle 파일의 맨 위에 또는 기본 프로젝트 build.gradle 파일의 끝에 지정할 수 있습니다.

일반적으로 git와 같은 버전 제어 시스템에서이 파일을 무시하는 것이 좋습니다.

또한 프로젝트에 들어가는 개발자가 개발 컴퓨터에서 이름을 바꾸어 채우는 샘플 keystore.gradle.sample 을 제공하는 것이 좋습니다. 이 파일은 항상 올바른 위치의 repo에 포함됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow