2017-05-03 51 views
0

我想更改Gradle构建所使用的AndroidDebugKey的位置和路径。Android Studio AndroidDebugKey

默认情况下,它指向$ HOME。/ android/debug.keystore。 Android Studio(2.3.1)中的哪个过程将其更改为另一个位置。

回答

0

重复问题:look at 3rd answer。 这是从以前的链接复制/粘贴。

如果您愿意,您可以指定自己的调试密钥库。该解决方案还使您能够将密钥存储在项目目录之外,并在签名过程中享受自动化。是的,你可以去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文件中有关“道具”变量的错误,那是因为你没有执行的“Android {}”块,其中props变量被分配到第一个if条件里面所以才动整个android {...}部分放入props变量分配的条件中,然后重试。

我从发现的信息herehere拼凑这些步骤。

+0

我一直在寻找如何通过Android Studio IDE进行操作。当你生成一个释放APK时,你会得到一个向导,允许你选择一个键。 https://www.jetbrains.com/help/idea/2017.1/generating-an-apk-in-the-debug-mode.html表明它可以在Intellij和Android Studio下的Project Structure/Modules/Signing or Build类型看起来你可以做类似的事情,但似乎并不奏效 – jmc42