Sök…


Konfigurera build.gradle med signeringskonfiguration

Du kan definiera signeringskonfigurationen för att signera apk i filen build.gradle .

Du kan definiera:

  • storeFile : keystore-filen
  • storePassword : keystore-lösenordet
  • keyAlias : ett nyckel alias namn
  • keyPassword : Ett nyckelaliaslösenord

Du måste definiera signingConfigs blocket för att skapa en signeringskonfiguration:

android {
    signingConfigs {

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

Sedan kan du tilldela den till en eller flera byggtyper.

android {

    buildTypes {
        release {
            signingConfig signingConfigs.myConfig
        }
    }
}

Definiera signeringskonfigurationen i en extern fil

Du kan definiera signeringskonfigurationen i en extern fil som signing.properties i rotkatalogen för ditt projekt.

Till exempel kan du definiera dessa tangenter (du kan använda dina favoritnamn):

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

Sedan i din build.gradle-fil:

android {

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

Sedan kan du introducera några kontroller för att undvika graderingsproblem i byggprocessen.

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

Definiera miljövariabler för inställning för signeringskonfiguration

Du kan lagra miljövariabler för inställningar för signeringsinformation.
Dessa värden kan nås med System.getenv("<VAR-NAME>")

I din build.gradle du definiera:

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

Definiera signeringskonfiguration i en separat gradfil

Det enklaste och renaste sättet att lägga till en extern konfiguration är genom en separat Gradle-fil

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-filen kan existera var som helst i ditt filsystem, du kan ange dess plats i apply from: '' högst upp i din gradfil eller i slutet av din huvudprojekt build.gradle-fil.

Det är vanligtvis en bra idé att ignorera den här filen från versionskontrollsystem som git om den finns i din repo.

Det är också en bra idé att tillhandahålla ett exempel keystore.gradle.sample vilka utvecklare som kommer in i projektet skulle byta namn på och fylla på sin utvecklingsmaskin. Denna fil kommer alltid att finnas i repan på rätt plats.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow