• 用Gradle构建时,将密码等敏感信息放在build.gradle之外


    密码 在做版本release时你app的 build.gradle你需要定义 signingConfigs.此时你应该避免以下内容:

    不要做这个 . 这会出现在版本控制中。

    signingConfigs {
        release {
            storeFile file("myapp.keystore")
            storePassword "password123"
            keyAlias "thekey"
            keyPassword "password789"
        }
    }

    而是,建立一个不加入版本控制系统的gradle.properties文件。

    KEYSTORE_PASSWORD=password123
    KEY_PASSWORD=password789

    那个文件是gradle自动引入的,你可以在buld.gradle文件中使用,例如:

    signingConfigs {
        release {
            try {
                storeFile file("myapp.keystore")
                storePassword KEYSTORE_PASSWORD
                keyAlias "thekey"
                keyPassword KEY_PASSWORD
            }
            catch (ex) {
                throw new InvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.")
            }
        }
    }

    完整的例子:

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 22
        buildToolsVersion "22.0.1"
    
        defaultConfig {
            applicationId "com.example.jack.umengfeedback"
            minSdkVersion 15
            targetSdkVersion 22
            versionCode 1
            versionName "1.0"
        }
    
        signingConfigs {
            release {
                try {
                    storeFile file("myapp.keystore")
                    storePassword KEYSTORE_PASSWORD
                    keyAlias "thekey"
                    keyPassword KEY_PASSWORD
                }
                catch (ex) {
                    throw new InvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.")
                }
            }
        }
        
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    
    
    repositories {
        flatDir {
            dirs 'libs' //this way we can find the .aar file in libs folder
        }
    }
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:22.1.1'
        compile project(':umenglib')
        // 依赖的aar
        compile(name:'kalelibrary', ext:'aar')
    }
  • 相关阅读:
    template
    open File Browser in shell
    自定义模板类型vs模板类型自动推测
    protobuffer
    多重继承&虚继承
    What I'm Researching
    JobTracker和TaskTracker
    MapReduce
    How To Use Google Flags
    Frequently Used Shell Commands
  • 原文地址:https://www.cnblogs.com/tianzhijiexian/p/4493109.html
Copyright © 2020-2023  润新知