2017-02-08 1 views
2

Je travaille sur une application native réagissant sur Windows. Pour pouvoir generate a signed release apk j'ai ajouté MYAPP_RELEASE_STORE_PASSWORD=*** et MYAPP_RELEASE_KEY_PASSWORD=*** à mon fichier /projectname/android/gradle.properties (Like it says so here). Maintenant, je me demande si je devrais ajouter le fichier à gitignore pour l'empêcher d'être téléchargé sur github, ou est-il un moyen de stocker le mot de passe dans un fichier différent?Gradle.properties doit-il être dans gitignore pour qu'un projet natif réagisse pour masquer le mot de passe?

+1

Vérifiez ce lien dans la documentation: http://stackoverflow.com/documentation/android-gradle/5249/configure-signing-settings # t = 201702081442045666847 Il y a beaucoup de moyen de gérer le fichier qui stocke le mot de passe. –

Répondre

0

Vous pouvez ajouter cette information à votre fichier super gradle.properties sur ${HOME}/.gradle/gradle.properties et il devrait être prêt pour vous.

Vous pouvez également renommer ces propriétés sur app/build.gradle et utiliser des propriétés différentes pour différents projets si nécessaire.

Par exemple, mon projet FOO a

112   release { 
113    storeFile file(FOO_RELEASE_STORE_FILE) 
114    storePassword FOO_RELEASE_STORE_PASSWORD 
115    keyAlias FOO_RELEASE_KEY_ALIAS 
116    keyPassword FOO_RELEASE_KEY_PASSWORD 
117   } 

Et sur mon ${HOME}/.gradle/gradle.properties je:

1 FOO_RELEASE_STORE_FILE=foo-release-key.keystore 
2 FOO_RELEASE_KEY_ALIAS=foo.android 
3 FOO_RELEASE_STORE_PASSWORD=****************** 
4 FOO_RELEASE_KEY_PASSWORD=*************** 
+0

Mais le problème avec ceci est que lorsque vous utilisez Windows '$ {HOME} /. Gradle/gradle.properties' ne semble pas exister (décrit aussi sur le blogpost lié). – Niels

1

J'ai trouvé la solution pour stocker les mots de passe dans un fichier séparé ici: Sign APK without putting keystore info in build.gradle

Dans build.gradle ajouter:

// Load keystore 
def keystorePropertiesFile = rootProject.file("keystores/release.keystore.properties"); 
def keystoreProperties = new Properties() 
keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) 

Et un peu plus bas:

signingConfigs { 
    release { 
     storeFile file(keystoreProperties['MYAPP_RELEASE_STORE_FILE']) 
     storePassword keystoreProperties['MYAPP_RELEASE_STORE_PASSWORD'] 
     keyAlias keystoreProperties['MYAPP_RELEASE_KEY_ALIAS'] 
     keyPassword keystoreProperties['MYAPP_RELEASE_KEY_PASSWORD'] 
    } 
} 

Et puis ajoutez release.keystore.properties au fichier .gitignore.

(Désolé pour répondre à ma propre question, je déteste faire ça ..)

+0

Alors, quel est le contenu de 'keystores/release.keystore.properties'? Est-ce que ce sont ceux-ci? MYAPP_RELEASE_STORE_FILE = myapp-release-key.keystore MYAPP_RELEASE_KEY_ALIAS = myapp-key-alias = MYAPP_RELEASE_STORE_PASSWORD mot de passe MYAPP_RELEASE_KEY_PASSWORD = mot de passe – vzhen