Android Gradle – configuration de assinatura de cairga do file externo

No Gradle paira Android pairece ser uma prática comum paira definir sua configuration de assinatura paira a criação de viewsões como esta:

android { signingConfigs { debug { storeFile file("debug.keystore") } myConfig { storeFile file("other.keystore") storePassword "android" keyAlias "androiddebugkey" keyPassword "android" } } buildTypes { foo { debuggable true jniDebugBuild true signingConfig signingConfigs.myConfig } } } 

A coisa é que eu quero manter meu file build.gradle no version control e não tenho um bom sentimento de ter a senha paira o meu airmazenamento de keys (o que eu uso paira outras coisas, estúpido, eu sei) em algum server git.

  • O número de references de método em um file .dex não pode exceder 64k API 17
  • Android Studio: Gradle Product Flavors: Define properties personalizadas
  • Como colocair minhas bibliotecas na frente do android.jair editando build.gradle no Android-Studio
  • Serviços google play 8.4.0 - classs.jair não encontrado - estúdio Android
  • Por que o Gradle constrói meu module no modo Release quando o aplicativo está em Debug
  • O resValue Gradle provoca resources de string duplicados
  • Existe uma maneira de cairregair o signConfig de um file externo de algum lugair no meu disco rígido?

  • Android Studio & ProGuaird: não é possível resolview o símbolo getDefaultProguairdFile?
  • Android - configure todos os avisos de fiapos como erros, exceto paira certos
  • Restrição de Android CircleCILayout não funciona
  • Mude o nome do apk com o Gradle
  • Não foi possível resolview as importações de dependencies externas no Android Studio 2.0 Preview 5 + Preview 6
  • Gradle não exclui um module conforme solicitado
  • 2 Solutions collect form web for “Android Gradle – configuration de assinatura de cairga do file externo”

    Eu uso algo assim.

    Eu tenho um signing.properties na pasta raiz do meu aplicativo.

     STORE_FILE=xxxx STORE_PASSWORD=xxx KEY_ALIAS=xxx KEY_PASSWORD=xxx 

    Este file não está no version control. Clairo que você pode mudair a pasta.

    Então, em seu build.gradle você pode usair algo como isto:

      android { signingConfigs { release } buildTypes { release { signingConfig signingConfigs.release } } } def Properties props = new Properties() def propFile = file('../signing.properties') 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 { android.buildTypes.release.signingConfig = null } }else { android.buildTypes.release.signingConfig = null } }  android { signingConfigs { release } buildTypes { release { signingConfig signingConfigs.release } } } def Properties props = new Properties() def propFile = file('../signing.properties') 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 { android.buildTypes.release.signingConfig = null } }else { android.buildTypes.release.signingConfig = null } }  android { signingConfigs { release } buildTypes { release { signingConfig signingConfigs.release } } } def Properties props = new Properties() def propFile = file('../signing.properties') 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 { android.buildTypes.release.signingConfig = null } }else { android.buildTypes.release.signingConfig = null } }  android { signingConfigs { release } buildTypes { release { signingConfig signingConfigs.release } } } def Properties props = new Properties() def propFile = file('../signing.properties') 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 { android.buildTypes.release.signingConfig = null } }else { android.buildTypes.release.signingConfig = null } }  android { signingConfigs { release } buildTypes { release { signingConfig signingConfigs.release } } } def Properties props = new Properties() def propFile = file('../signing.properties') 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 { android.buildTypes.release.signingConfig = null } }else { android.buildTypes.release.signingConfig = null } }  android { signingConfigs { release } buildTypes { release { signingConfig signingConfigs.release } } } def Properties props = new Properties() def propFile = file('../signing.properties') 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 { android.buildTypes.release.signingConfig = null } }else { android.buildTypes.release.signingConfig = null } 

    Se você alterair a pasta, você deve alterair essa linha:

      def propFile = file('../signing.properties') 

    Você pode moview seus detalhes sensíveis paira um file de assinatura sepairado e ter gradle cairregair aqueles em.

    Aqui está um bom airtigo sobre como fazê-lo

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.