2015-11-11 1 views
1

J'ai suivi les étapes selon officials dit pour la signature numérique de mon application android.pour signer en mode de libération, ils disent d'utiliser le fichier .keystore et ses informations d'identification comme this .J'utilise le studio android de sorte que je reçois le fichier .jks au lieu.So où dois-je conserver le fichier .jks en fonction du docs pour créer mon fichier APK signé? S'il vous plaît donnez une explication simple à ce sujet et dites si je fais quelque chose de mal?Confondu avec la signature android APK?

Merci.

Répondre

5

Vous pouvez placer le fichier .jks n'importe où.
Cela signifie que vous pouvez mettre le fichier dans votre projet, ou vous pouvez mettre le fichier dans un dossier externe (juste jeter un oeil le chemin ci-dessous). Cela dépend de votre politique. Utilisez simplement gradle pour configurer la signature de votre apk.

android { 

    signingConfigs { 
     release 
    } 

    buildTypes { 
      release { 
       signingConfig signingConfigs.release 
      } 
    } 
} 

façon simple: définir simplement les informations d'identification dans votre fichier build.gradle.

signingConfigs { 
    release { 
      //Pay attention to the path. You can use a relative path or an absolute path 
      storeFile file("../your_key_store_file.jks") 
      storePassword 'some_password' 
      keyAlias 'alias_name' 
      keyPassword 'key_password' 

    } 
    } 

Utilisation d'un fichier .properties pour stocker les informations d'identification en dehors du script (par exemple, si vous ne voulez pas pousser les informations d'identification dans un git).

Exemple: signing.properties

STORE_FILE=/path/to/your.keystore 
STORE_PASSWORD=yourkeystorepass 
KEY_ALIAS=projectkeyalias 
KEY_PASSWORD=keyaliaspassword 

ensuite obtenir ces valeurs dans votre fichier build.gradle:

signingConfigs { 
     release 
} 

Définissez ensuite:

def Properties props = new Properties() 
def propFile = new File('signing.properties') 
if (propFile.canRead()){ 
    props.load(new FileInputStream(propFile)) 

    if (props!=null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') && 
      props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) { 
     android.signingConfigs.release.storeFile = file(props['STORE_FILE']) 
     android.signingConfigs.release.storePassword = props['STORE_PASSWORD'] 
     android.signingConfigs.release.keyAlias = props['KEY_ALIAS'] 
     android.signingConfigs.release.keyPassword = props['KEY_PASSWORD'] 
    } else { 
     println 'signing.properties found but some entries are missing' 
     android.buildTypes.release.signingConfig = null 
    } 
}else { 
    println 'signing.properties not found' 
    android.buildTypes.release.signingConfig = null 
} 
+0

Ce qui signifie que nous ne voulons pas garder fichier '.jks' à l'intérieur de la racine d'apk c'est-à-dire la racine de l'application? Pourquoi nous donnons ces choses 'fichier storeFile (" myreleasekey.keystore ") storePassword" mot de passe " keyAlias" MyReleaseKey " keyPassword" mot de passe "' dans gradle? s'il vous plaît élaborer la réponse à mon doute. – Christ

+0

@Christ Mise à jour de la réponse. L'emplacement des fichiers .jks n'est pas important. Avec le script Gradle, vous pouvez définir le chemin. Pour construire avec build.gradle vous devez dire à Gradle les informations d'identification. Vous pouvez les définir dans le script ou à l'extérieur. –

+0

Le mot de passe de magasin et d'autres informations d'identification doivent être correspondre avec les credentiols donnés pendant que nous générons APK http://developer.android.com/tools/publishing/app-signing.html#studio? – Christ