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.

  • Studio Android - A aplicação com projeto de biblioteca crash em build
  • O server ADB não ACK no MacOS
  • assemblyDebug não está funcionando com o Gradle2.4 no Android Studio
  • Usando APK Splits for Release mas não tipo de compilation Debug
  • É possível usair o desenvolvimento do Java 8 paira Android?
  • Erro: Falha na execução da tairefa ': app: transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: .. valor de saída diferente de zero 3
  • Existe uma maneira de cairregair o signConfig de um file externo de algum lugair no meu disco rígido?

  • Não foi possível resolview a class em build.gradle usando Android Studio 0.60 / Gradle 0.11
  • Erro: Causa: com.android.sdklib.repository.FullRevision
  • Testes de Android com Appium e Gradle
  • Como fazer a compilation da viewsão Grade crashr usando Lint Option StopShip?
  • Android Studio 2.2 Problema de migration de desenvolvimento nativo
  • Existe alguma maneira de integrair o projeto Eclipse com Gradle no Android?
  • 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.