相关疑难解决方法(0)

签名APK,而不在build.gradle中放置密钥库信息

我正在尝试设置签名过程,以便密钥库密码和密钥密码不会存储在项目的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在我的仓库.我宁愿不把storeFilekeyAlias有两种.

有没有办法改变build.gradle它,以便它从某些外部源获取密码(如仅存在于我的计算机上的文件)?

当然,更改的内容build.gradle应该可以在任何其他计算机上使用(即使计算机无法访问密码).

我正在使用Android Studio和Mac OS X Maverics,如果它确实重要.

android code-signing gradle android-studio

138
推荐指数
10
解决办法
6万
查看次数

从Android Studio gradle build访问环境变量

在我的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

15
推荐指数
1
解决办法
6958
查看次数

settings.gradle中的环境变量不适用于Android Studio

我确实有一个多模块项目,其中一个库项目位于不同的根路径中.如图所示,你可以想象这样的事情:

/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了解我的环境?

android android-studio

14
推荐指数
4
解决办法
2万
查看次数