Suche…


Konfigurieren Sie das build.gradle mit der Signierkonfiguration

Sie können die Signierungskonfiguration definieren, um die apk in der Datei build.gradle zu signieren.

Sie können definieren:

  • storeFile : die Keystore-Datei
  • storePassword : das Schlüsselspeicherkennwort
  • keyAlias : ein Aliasname
  • keyPassword : Ein Schlüsselalias-Kennwort

Sie müssen den signingConfigs Block definieren , um eine signingConfigs zu erstellen:

android {
    signingConfigs {

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

Dann können Sie es einem oder mehreren Build-Typen zuordnen .

android {

    buildTypes {
        release {
            signingConfig signingConfigs.myConfig
        }
    }
}

Definieren Sie die Signierkonfiguration in einer externen Datei

Sie können die Signaturkonfiguration in einer externen Datei als signing.properties im Stammverzeichnis Ihres Projekts definieren.

Beispielsweise können Sie diese Schlüssel definieren (Sie können Ihre bevorzugten Namen verwenden):

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

Dann in Ihrer build.gradle -Datei:

android {

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

Anschließend können Sie einige Überprüfungen durchführen, um gradle Probleme beim Build-Vorgang zu vermeiden.

//------------------------------------------------------------------------------
// 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
}

Definieren Sie die Umgebungsvariablen für die Signierkonfigurationseinstellung

Sie können die Umgebungsvariablen für die Signaturinformationen speichern.
Auf diese Werte kann mit System.getenv("<VAR-NAME>") zugegriffen werden.

In Ihrem build.gradle können Sie build.gradle definieren:

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

Definieren Sie die Signierungskonfiguration in einer separaten Abstufungsdatei

Die einfachste und sauberste Methode zum Hinzufügen einer externen Konfiguration besteht in einer separaten Gradle-Datei

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'
]

Die Datei keystore.gradle kann an einer beliebigen Stelle in Ihrem Dateisystem vorhanden sein. Sie können den Speicherort innerhalb von apply from: '' angeben apply from: '' oben in Ihrer Gradle-Datei oder am Ende Ihrer Hauptdatei build.gradle.

Normalerweise empfiehlt es sich, diese Datei vom Versionskontrollsystem (z. B. git) zu ignorieren, wenn sie sich in Ihrem Repo befindet.

Es ist auch eine gute Idee, ein Beispiel für " keystore.gradle.sample bereitzustellen, das Entwickler, die das Projekt betreten, auf ihrem Entwicklungscomputer umbenennen und keystore.gradle.sample möchten. Diese Datei würde sich immer am richtigen Ort im Repo befinden.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow