2015-08-24 12 views
8

Durante la creazione dell'APK di rilascio firmato ho trovato quanto segue: se costruisco apk firmato da Android studio (tramite Build ->Generate Signed APK...) con il file build.gradle come questo (solo parti rilevanti):Android APK costruito da Android Studio e console hanno impronte digitali SHA diverse

signingConfigs { 
    release { 
     storeFile file('/keystore/location/mykeystore.keystore') 
     storePassword 'storepassword' 
     keyAlias 'key' 
     keyPassword 'keypassword' 
    } 
} 
buildTypes { 
    release { 
     signingConfig signingConfigs.release 
    } 
} 

L'apk impronta digitale risultante è YY:YY.
Tuttavia, se io costruisco la mia APK da console come descritto here con build.gradle come questo:

buildTypes { 
    release { 
    } 
} 

e firmare con lo stesso file di archivio chiavi, l'apk impronta digitale risultante è XX:XX.

Inoltre, entrambe le impronte digitali SHA sono diverse dalla mia impronta digitale SHA certificato di debug. Qual è la causa di un simile comportamento?

sto usando buildToolsVersion 23.0.0
Android Studio versione Gradle versione 1.3.0
strumenti SDK Android 24.3.4
Android Studio versione 1.3.1

+0

Sei sicuro che stai generando entrambi gli apk nella variante di rilascio versione? –

+0

@Fondesa Sono abbastanza sicuro che costruisco entrambi gli apk nella variante build release. Quando creo in Android Studio dopo aver specificato keystore e key, seleziono l'opzione 'Build Type'. Quando costruisco dalla console eseguo './gradlew assembleRelease'. – Mikhail

+0

La tua domanda riguarda la generazione dell'APK firmato in studio vs gradle o sulla generazione manuale tramite lo studio rispetto alla firma? –

risposta

1

Hai controllare il contenuto del keystore ? L'impronta digitale deve corrispondere a uno dei certificati. È possibile avere più certificati nel proprio keystore, forse ne viene utilizzato uno diverso durante la firma dalla console? È possibile controllare i certificati eseguendo il comando seguente:

keytool -list -v -keystore/path/to/keystore

immettere la password per l'archivio di chiavi e si dovrebbe ottenere un elenco degli alias. Controllerei anche il keystore di debug per assicurarmi che non ci fossero altri certificati lì.

L'unica altra possibilità a cui posso pensare è un problema di percorso che causa l'utilizzo di un diverso keystore.

+0

I percorsi dei key store sono identici. Keystore è lo stesso. Ho esportato entrambi i certificati da apk-s firmati con studio e manualmente, usano la stessa chiave, ma le impronte digitali sono ancora diverse. Forse è perché apk allinea processo? – Raiv

Problemi correlati