O Android Studio assina compilações de depuração? Em caso afirmativo, onde está o armazenamento de chaves que ele usa para fazer isso?
O Android Studio assina compilações de depuração? Em caso afirmativo, onde está o armazenamento de chaves que ele usa para fazer isso?
Respostas:
Está no mesmo local: ~/.android/debug.keystore
Se você usa Windows, provavelmente o local é assim:
C: \ User \ YourUser \ .android \ debug.keystore
Você pode especificar seu próprio keystore de depuração, se desejar. Essa solução também oferece a capacidade de armazenar suas chaves fora do diretório do projeto, bem como aproveitar a automação no processo de assinatura. Sim, você pode acessar File -> Project Structure
e atribuir keystores e senhas de assinatura na Signing
guia, mas isso colocará entradas de texto simples em seu arquivo gradle.build, o que significa que seus segredos podem ser divulgados (especialmente em commits de repositório). Com esta solução, você obtém o controle de usar seu próprio armazenamento de chaves e a mágica da automação durante compilações de depuração e liberação.
1) Crie um gradle.properties (se ainda não tiver um).
A localização deste arquivo depende do seu sistema operacional:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
2) Adicione uma entrada apontando para o yourprojectname.properties
arquivo.
(exemplo para Windows)
yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties
3) Crie o yourprojectname.properties
arquivo no local especificado na Etapa 2 com as seguintes informações:
keystore=C:\\path\\to\\keystore\\yourapps.keystore
keystore.password=your_secret_password
4) Modifique seu gradle.build
arquivo para apontar para yourprojectname.properties
arquivo para usar as variáveis.
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) Aproveite! Agora todas as suas chaves estarão fora da raiz do diretório e ainda assim você terá as alegrias da automação para cada construção.
Se você receber um erro em seu arquivo gradle.build sobre a variável "props", é porque você não está executando o bloco "android {}" dentro da primeira if
condição em que a props
variável é atribuída, então apenas mova todo o android {... } seção na condição em que a variável props é atribuída e tente novamente.
Eu juntei essas etapas com as informações encontradas aqui e aqui .
O caminho do arquivo debug.keystore do Android Studio depende da variável de ambiente ANDROID_SDK_HOME.
Se ANDROID_SDK_HOME definido, o arquivo é colocado na subpasta do SDK chamada .android .
Quando não definido, o armazenamento de chaves é colocado no caminho inicial do usuário na mesma subpasta:
- % HOMEPATH% \. Android \ no Windows
- $ HOME / .android / no Linux
Veja como eu finalmente criei o arquivo ~ / .android / debug.keystore.
Primeiro, algumas informações básicas. Eu tenho um novo laptop de viagem. Android Studio instalado. Clonou meu projeto android do hub git. O projeto não funcionou. Finalmente descobri que o debug.keystore não foi criado ... e não consegui descobrir como fazer o Android Studio criá-lo.
Finalmente, criei um novo projeto em branco ... e isso criou o debug.keystore!
Espero que isso ajude outras pessoas que tenham esse problema.
Se você usa o Windows, verá que segue o seguinte: Arquivo -> Estrutura do projeto -> Facetas
escolha seu projeto Android e na janela "Facet 'Android'" clique em TAB "Embalagem", você encontrará o que deseja