2014-07-22 14 views
6

Questo può sembrare estremamente banale ma come un principiante di Android mi sono appena ritrovato sepolto sotto una tonnellata di hash token keystore e keytools che possono essere un po 'opprimenti.Android Studio - Esegui apk firmato su emulatore

che sto cercando di fare Android Studio funzionare la mia applicazione sull'emulatore firmato con il mio chiavi personalizzato e non il debug.keystore

È questo un'opzione o devo semplicemente per generare un .apk firmato ogni volta Apporto le modifiche, quindi installo tramite adb e poi lo eseguo dal menu del dispositivo emulato?

Inoltre, è una buona pratica quando si testano le applicazioni o devo evitarlo?

+0

Perché vuoi creare con un keystore personalizzato? –

+0

@ScottBarta la mia app utilizza l'accesso di Facebook, quindi devo registrare un hash di chiave valido con loro, quindi voglio usare quello che intendo rilasciare quando è pronto. – ppp

+0

Non sono così familiare con la scrittura di app di Facebook API, quindi Non posso commentare se questa sia la cosa giusta da fare o meno. Ma ho risposto diversamente alla tua domanda di seguito. –

risposta

14

È possibile aggiungere una configurazione di firma al tipo di build di debug e verrà utilizzato. Puoi farlo attraverso la finestra di dialogo Struttura del progetto - nel modulo, selezionare la scheda "Firma" e configurare le informazioni sulla firma, quindi nella scheda "Tipi di costruzione", per il popup "Firma configurazione", selezionarlo.

+0

Modificate queste impostazioni (Android Studio 0.8.2) e, una volta salvate, la mia build di gradle fallì miseramente (il debug-sign era improvvisamente vuoto nella configurazione gradle), incapace di accedere effettivamente alla firma. Cercherò di risolverlo ma sembra un'idea migliore per modificare direttamente il file gradle. – AgentKnopf

+1

Works for me Perfectly –

+1

questa dovrebbe essere la risposta desiderata per OP, fare clic su "Esegui" ora genera un'applicazione firmata per entrambi gli emulatori e dispositivi adb –

16

Dopo aver incontrato problemi durante l'utilizzo dell'interfaccia utente di Studio Android per creare una configurazione di firma, sono riuscito a configurarlo tramite il file di sviluppo gradle.

Aprire il file build.gradle del progetto. Esso dovrebbe contenere qualcosa di simile:

android{ 
    //signingConfigs goes here 
    defaultConfig{ 
     //SDK version, version code etc 
    } 

    //Some more stuff 
} 

Se non è già in là, aggiungere il seguente frammento di sotto Android {

signingConfigs { 
    debug { 
     storeFile file(project.property("MyApp.signing")) 
     storePassword project.property("MyApp.signing.password") 
     keyAlias project.property("MyApp.signing.alias") 
     keyPassword project.property("MyApp.signing.password") 
    } 
} 

Ora nella stessa directory in cui il file build.gradle si dovrebbe avere un file gradle.properties (se no, crearlo). Ci Aggiungiamo ora le proprietà che abbiamo usato qui sopra per il file delle proprietà, al fine di mappare i valori:

MyApp.signing=RelativeOrAbsolutePathToKeystore 
MyApp.signing.password=yourPassword 
MyApp.signing.alias=aliasNameOfYourKeystore 

Un esempio in cui il file keystore.jsk (generato tramite Android Studio) si trova una directory sopra la directory app (in cui il file è proprietà):

MyApp.signing=../myapp.keystore.jsk 
MyApp.signing.password=helloworkd 
MyApp.signing.alias=myapp_alias 

la configurazione di cui sopra sarebbe quindi utilizzare il tasto di firmare una build di debug (perché i nostri signingConfigs stato fatto per il build di debug).

Assicurati quindi che in Android Studio, impostare la variante di build su "debug". Se vuoi fare tutto questo per la versione di rilascio, modifica le varianti di build da rilasciare e il tuo signingConfigs da rilasciare {...} invece di eseguire il debug {...} o semplicemente aggiungere entrambe se vuoi passare da una all'altra.

+0

Risolvi risposta! Grazie! – researcher

+0

Molto bene grazie – user2582318

+1

Ho + 1ed questo per completezza ma misura intera di capra perché Android Studio è così schifoso? Con Eclipse questa era una soluzione a un clic. – s1ni5t3r

Problemi correlati