我正在尝试设置签名过程,以便密钥库密码和密钥密码不会存储在项目的build.gradle文件中.
目前我在以下方面有build.gradle:
android {
...
signingConfigs {
release {
storeFile file("my.keystore")
storePassword "store_password"
keyAlias "my_key_alias"
keyPassword "key_password"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
Run Code Online (Sandbox Code Playgroud)
它的工作原理完全没有问题,但我不能把值的storePassword,而且keyPassword在我的仓库.我宁愿不把storeFile和keyAlias有两种.
有没有办法改变build.gradle它,以便它从某些外部源获取密码(如仅存在于我的计算机上的文件)?
当然,更改的内容build.gradle应该可以在任何其他计算机上使用(即使计算机无法访问密码).
我正在使用Android Studio和Mac OS X Maverics,如果它确实重要.
在我的Android Gradle构建中,我需要访问我设置的环境变量.bash.profile.当我从命令行构建时,它工作正常 - Gradle脚本可以看到所有变量.
但是,当我尝试从Android Studio运行构建时 - 我不再拥有环境变量了.
以下是我所面对的大致情况:
1)通过~/.bash.profile以下方式设置自定义环境变
export MY_CUSTOM_VAR='Hello World'
Run Code Online (Sandbox Code Playgroud)
2)在build.gradle创建任务中打印此环境变量:
task printVar << {
println System.getenv("MY_CUSTOM_VAR")
}
Run Code Online (Sandbox Code Playgroud)
3)printVar从命令行执行.输出正确 - 设置了env变量:
输出: Hello World
4)printVar从Android Studio 执行.未设置环境变量.输出为空
常识告诉我,通过执行export MY_CUSTOM_VAR='Hello World'我只是使这个变量可用于shell进程(及其子进程).如果我从命令行启动我的Android Studio(这将继承我的环境),这可能会有效.但是,自从我从Dock启动Android Studio(顺便说一下,我在Mac上) - 它有自己的环境,对我不了解~/.bash.profile.
有什么办法可以将自定义环境变量填充到Android Studio吗?
shell android environment-variables android-studio android-gradle-plugin
我确实有一个多模块项目,其中一个库项目位于不同的根路径中.如图所示,你可以想象这样的事情:
/projects_home/projects/app_root
|--app/
| |--build.gradle
|--build.gradle
|--settings.gradle
/libraries_home/libraries
|--libA
|--build.gradle
Run Code Online (Sandbox Code Playgroud)
在我的settings.gradle文件中,我可以使用projectDir属性设置库项目的绝对路径.这在控制台和Android Studio中都可以正常工作.
但是,如果我尝试使用环境变量,它将停止使用Android Studio.上面示例的settings.gradle如下所示:
include ':app'
include ':libA'
project(':libA').projectDir = new File("$System.env.LIB_ROOT", '/libraries/libA')
Run Code Online (Sandbox Code Playgroud)
如果我使用控制台中的graddle包装器构建,它仍然有效.但AS停止使用以下错误消息:
Gradle 'app' project refresh failed:
Configuration with name 'default' not found.
Run Code Online (Sandbox Code Playgroud)
如果我取消设置环境变量,则控制台上的构建将失败并显示相同的消息:
* What went wrong:
A problem occurred configuring project ':app'.
> Configuration with name 'default' not found.
Run Code Online (Sandbox Code Playgroud)
因此我猜AS在某种程度上无法访问使用〜/ .bashrc设置的环境变量
你们中的某些人是否知道如何让AS了解我的环境?