Zoeken…


Configureer de build.gradle met ondertekeningsconfiguratie

U kunt de ondertekeningsconfiguratie definiëren om de apk te ondertekenen in het bestand build.gradle .

U kunt definiëren:

  • storeFile : het keystore-bestand
  • storePassword : het sleutelarchiefwachtwoord
  • keyAlias : een belangrijke aliasnaam
  • keyPassword : een key alias-wachtwoord

U moet het blok signingConfigs definiëren om een handtekeningconfiguratie te maken:

android {
    signingConfigs {

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

Vervolgens kunt u het toewijzen aan een of meer buildtypen.

android {

    buildTypes {
        release {
            signingConfig signingConfigs.myConfig
        }
    }
}

Definieer de ondertekeningsconfiguratie in een extern bestand

U kunt de ondertekeningsconfiguratie in een extern bestand definiëren als signing.properties in de hoofdmap van uw project.

U kunt bijvoorbeeld deze toetsen definiëren (u kunt uw favoriete namen gebruiken):

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

Vervolgens in uw build.gradle-bestand:

android {

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

Vervolgens kunt u enkele controles invoeren om graduele problemen in het bouwproces te voorkomen.

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

Definieer de omgevingsvariabelen voor de ondertekeningsconfiguratie-instellingen

U kunt de omgevingsvariabelen voor het instellen van ondertekeningsinformatie opslaan.
Deze waarden zijn toegankelijk met System.getenv("<VAR-NAME>")

In uw build.gradle kunt u het volgende definiëren:

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

Definieer de ondertekeningsconfiguratie in een afzonderlijk gradle-bestand

De eenvoudigste en schoonste manier om een externe configuratie toe te voegen, is via een afzonderlijk Gradle-bestand

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

Het keystore.gradle-bestand kan overal in uw bestandssysteem bestaan, u kunt de locatie binnen de apply from: '' opgeven apply from: '' bovenaan uw gradle-bestand of aan het einde van uw hoofdproject build.gradle-bestand.

Het is meestal een goed idee om dit bestand van het versiebeheersysteem zoals git te negeren als het zich in je repo bevindt.

Het is ook een goed idee om een voorbeeld van keystore.gradle.sample te bieden die ontwikkelaars die het project betreden, zouden hernoemen en invullen op hun ontwikkelmachine. Dit bestand zou zich altijd in de repo op de juiste locatie bevinden.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow