Android Studio - 调试密钥库
Posted
技术标签:
【中文标题】Android Studio - 调试密钥库【英文标题】:Android Studio - debug keystore 【发布时间】:2013-05-13 10:01:41 【问题描述】:android Studio 是否签署调试版本?如果是这样,它使用的密钥库在哪里?
【问题讨论】:
它确实会签名,因为只能安装签名的版本。 我认为这是一个有效的编程问题。它与开发 Android 应用时使用的工具链直接相关。 重复***.com/questions/16965058/… @Prachi 这怎么可能与 3 年后提出的问题重复?也许另一个是这个的副本。 另见***.com/questions/12456491/… 【参考方案1】:在同一个位置:~/.android/debug.keystore
【讨论】:
不是在 ~/.android 中吗? keytool -list -v -keystore ~/.android/debug.keystore 这是 Windows 版本的 keytool 命令:keytool -exportcert -alias androiddebugkey -keystore C:\Users\如果你使用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 变量的条件,然后再试一次。
我根据here 和here 找到的信息拼凑了这些步骤。
【讨论】:
关于“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”这样的菜单以上是关于Android Studio - 调试密钥库的主要内容,如果未能解决你的问题,请参考以下文章
我无法在Visual Studio 2017中创建android密钥库
在Android Studio中运行Android App:无法创建密钥库