Android的摇篮 - 从外部文件加载配置签署 [英] Android Gradle - load signing config from external file

查看:188
本文介绍了Android的摇篮 - 从外部文件加载配置签署的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在摇篮为Android这似乎是公地的做法定义为释放您的签名的配置打造这样的:

In Gradle for Android it seems to be commons practice to define your signing config for release build like this:

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

事情是,我要保持我的build.gradle文件版本控制和不具备具有密码密钥库我(这是我使用的其他的东西,愚蠢的一样,我知道)一些不错的手感git的服务器。

Thing is, I want to keep my build.gradle file in version control and don't have a good feeling having the password for my keystore (which is the same I use for other stuff, stupid, I know) on some git server.

有没有办法从外部文件从某处加载signingConfig我的硬盘上?

Is there a way to load the signingConfig from an external file from somewhere on my hard drive?

推荐答案

我用这样的事情。

我在我的应用程序根目录下有一个 signing.properties

I have a signing.properties in my app root folder.

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

此文件不在版本控制之下。
当然,你可以改变文件夹。

This file is not on under version control. Of course you can change folder.

然后在你的的build.gradle 你可以使用这样的:

Then in your build.gradle you can use something like this:

 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
    }

如果您更改文件夹,你必须改变这一行:

If you change the folder, you have to change this line:

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

这篇关于Android的摇篮 - 从外部文件加载配置签署的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆