【问题标题】:Android Studio - debug keystoreAndroid Studio - 调试密钥库
【发布时间】:2013-05-13 10:01:41
【问题描述】:

Android Studio 是否签署调试版本?如果是这样,它使用的密钥库在哪里?

【问题讨论】:

标签: android certificate android-studio


【解决方案1】:

在同一个位置:~/.android/debug.keystore

【讨论】:

  • 不是在 ~/.android 中吗?
  • keytool -list -v -keystore ~/.android/debug.keystore
  • 这是 Windows 版本的 keytool 命令:keytool -exportcert -alias androiddebugkey -keystore C:\Users\\.android\debug.keystore -list -v
  • 默认密码为“android”,密钥别名为“androiddebugkey”。
  • 而且androiddebugkey的默认密码也是“android”。
【解决方案2】:

如果你使用Windows,大概位置是这样的:

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

【讨论】:

    【解决方案3】:

    如果您愿意,可以指定自己的调试密钥库。该解决方案还使您能够将密钥存储在项目目录之外,并在签名过程中享受自动化。是的,您可以转到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 变量的条件,然后再试一次。

    我根据herehere 找到的信息拼凑了这些步骤。

    【讨论】:

    • 关于“2)添加条目...”。在哪里添加一个条目?
    • 喜欢构建自动化的想法
    • 谢谢,这是将生产密码保存在源代码控制之外的好方法(因此并非所有开发人员都可以使用它们)!
    【解决方案4】:

    Android Studio debug.keystore 文件路径取决于环境变量 ANDROID_SDK_HOME。

    如果定义了 ANDROID_SDK_HOME,则文件放在 SDK 的名为 .android 的子文件夹中。
    如果未定义,则将密钥库放置在同一子文件夹中的用户主路径中:
    - %HOMEPATH%\.android\ 在 Windows
    - Linux 上的 $HOME/.android/

    【讨论】:

    • 能否请您详细说明您的答案,添加更多关于您提供的解决方案的描述?
    • 为什么 87 人认为它在 ~/.android/debug.keystore 中,他们都没有名为“ANDROID_SDK_HOME”的环境变量???
    • 这很有帮助。非常感谢
    【解决方案5】:

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

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

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

    希望这可以帮助其他遇到此问题的人。

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

        如果您使用 Windows,您会发现它遵循以下内容: 文件-->项目结构-->构面

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

        【讨论】:

        • 没有“Facets”这样的菜单
        猜你喜欢
        • 1970-01-01
        • 2012-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-04
        • 2017-01-25
        • 1970-01-01
        相关资源
        最近更新 更多