Android Studio是否签署调试版本?如果是这样,它在哪里使用密钥库?
Android Studio是否签署调试版本?如果是这样,它在哪里使用密钥库?
Answers:
它在同一位置: ~/.android/debug.keystore
您可以根据需要指定自己的调试密钥库。该解决方案还使您能够将密钥存储在项目目录之外,并在签名过程中享受自动化。是的,您可以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)yourprojectname.properties
使用以下信息在您在步骤2中指定的位置创建文件:
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变量的条件,然后重试。
Android Studio debug.keystore文件路径取决于环境变量ANDROID_SDK_HOME。
如果定义了ANDROID_SDK_HOME,则将文件放置在SDK的子文件夹.android中。
如果没有定义,则密钥库放置在相同的子文件夹的用户主目录:
- 。%HOMEPATH%\ 机器人\ Windows上
- $ HOME / .android / Linux上
如果使用Windows,则会发现它遵循以下规则: File-> Project Structure-> Facets
选择您的Android项目,然后在“ Facet'Android'”窗口中单击TAB“打包”,您将找到所需的内容