109

Does Android Studio sign debug builds? If so, where is the keystore it uses to do it?

4

7 回答 7

179

它位于同一位置:~/.android/debug.keystore

于 2013-05-18T09:38:22.640 回答
64

如果您使用 Windows,则位置可能是这样的:

C:\User\YourUser\.android\debug.keystore

于 2013-08-13T15:14:42.717 回答
30

如果您愿意,可以指定自己的调试密钥库。该解决方案还使您能够将密钥存储在项目目录之外,并在签名过程中享受自动化。是的,您可以File -> Project Structure在选项卡中访问并分配签名密钥库和密码,Signing但这会将纯文本条目放入您的 gradle.build 文件中,这意味着您的秘密可能会被泄露(尤其是在存储库提交中)。使用此解决方案,您可以控制在调试和发布构建期间使用自己的密钥库以及自动化的魔力。

1) 创建一个 gradle.properties (如果你还没有)。

此文件的位置取决于您的操作系统:

   /home/<username>/.gradle/ (Linux)
   /Users/<username>/.gradle/ (Mac)
   C:\Users\<username>\.gradle (Windows)

2)添加一个指向yourprojectname.properties文件的条目。 (以 Windows 为例)

yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties

3) 在步骤 2 中指定的位置创建yourprojectname.properties文件,并提供以下信息:

keystore=C:\\path\\to\\keystore\\yourapps.keystore
keystore.password=your_secret_password

4)修改您的gradle.build文件以指向yourprojectname.properties文件以使用变量。

if(project.hasProperty("yourprojectname.properties")
        && new File(project.property("yourprojectname.properties")).exists()) {

    Properties props = new Properties()
    props.load(new FileInputStream(file(project.property("yourprojectname.properties"))))

    android {
        signingConfigs {
            release {
                keyAlias 'release'
                keyPassword props['keystore.password']
                storeFile file(props['keystore'])
                storePassword props['keystore.password']
            }
            debug {
                keyAlias 'debug'
                keyPassword props['keystore.password']
                storeFile file(props['keystore'])
                storePassword props['keystore.password']
            }
        }
        compileSdkVersion 19
        buildToolsVersion "20.0.0"
        defaultConfig {
            applicationId "your.project.app"
            minSdkVersion 16
            targetSdkVersion 17
        }
        buildTypes {
            release {
            }
        }
    }

}

dependencies {
    ...
}

5)享受! 现在您的所有密钥都将位于目录的根目录之外,但您仍然可以享受每次构建自动化的乐趣。

如果您在 gradle.build 文件中收到有关“props”变量的错误,那是因为您没有在分配变量的第一个if条件内执行“android {}”块,props因此只需移动整个 android{ ... } 部分进入分配 props 变量的条件,然后重试。

我从这里这里找到的信息拼凑了这些步骤。

于 2015-03-01T15:22:56.990 回答
15

Android Studio debug.keystore file path depend on environment variable ANDROID_SDK_HOME.

If ANDROID_SDK_HOME defined, then file placed in SDK's subfolder named .android .
When not defined, then keystore placed at user home path in same subfolder:
- %HOMEPATH%\.android\ on Windows
- $HOME/.android/ on Linux

于 2015-06-18T07:10:16.990 回答
5

这是我最终创建 ~/.android/debug.keystore 文件的方式。

首先是一些背景。我买了一台新的旅行笔记本电脑。安装了安卓工作室。从 git hub 克隆了我的 android 项目。该项目将无法运行。最后发现 debug.keystore 没有创建......我不知道如何让 Android Studio 来创建它。

最后,我创建了一个新的空白项目......并创建了 debug.keystore!

希望这可以帮助其他有这个问题的人。

于 2017-02-01T00:10:45.590 回答
1

在 Mac 上,您会在此处找到它:/Users/$username/.android

于 2014-12-08T08:34:08.357 回答
1

如果你使用 Windows,你会发现它是这样的: File-->Project Structure-->Facets

选择您的 Android 项目并在“Facet 'Android'”窗口中单击 TAB“打包”,您将找到您想要的

于 2014-12-17T08:14:16.253 回答