Crea file APK senza segno con Android Studio


272

Sto sviluppando un'app Android con Android Developer Tool. Ora ho provato il nuovo Android Studio, tutto funziona bene se connetto il mio smartphone al PC ed eseguo direttamente il programma in Android Studio. Ma ora voglio testare il programma con altri smartphone senza collegarli al mio PC.

L'ADT crea il file .apk in "nome progetto / bin" ogni volta che si compila il programma. Come lo vedo al momento Android Studio non lo fa.

Quindi la mia domanda è possibile creare un file .apk non firmato con Android Studio?


10
Tecnicamente, quello che vuoi è un apk firmato con una chiave di debug. Un apk effettivamente non firmato verrà rifiutato dal dispositivo.
Chris Stratton,

Cordiali saluti, dovremmo sempre preferire l'esportazione di app firmate come risposto da @Nirmal Dhara. Questo è molto più sicuro.
Mukund,

2
@ChrisStratton Verrà sempre rifiutato?
Sreekanth Karumanaghat,

Ho risolto con questa soluzione: stackoverflow.com/a/56201481/8471798
canerkaseler

Risposte:


326

Ti consiglierei di creare il tuo file APK con Gradle:

  • Fai clic sul menu a discesa nella barra degli strumenti in alto (Apri la finestra di dialogo "Modifica configurazioni Esegui / Debug")
  • Seleziona "Modifica configurazioni"
  • Fai clic sul "+"
  • Seleziona "Gradle"
  • Scegli il tuo modulo come progetto Gradle
  • In Attività: invio assemble
  • Premi Esegui

Il tuo APK non firmato si trova ora in

ProjectName\app\build\outputs\apk

Per informazioni dettagliate su come utilizzare Gradle, questo tutorial è utile: creare con Gradle in Android Studio . Ho anche scritto un post sul blog su come costruire un APK senza segno con Gradle.

Se hai spostato il tuo progetto dall'altro IDE e non vuoi ricompilare , potresti trovare il tuo file APK che era già stato creato nell'IDE da cui sei passato:

  • Se hai generato il progetto con Android Studio, il file APK verrà trovato in ProjectName/ProjectName/build/apk/...

  • Importato il progetto da eclipse: il file deve trovarsi nella stessa directory. Vai a Project- Show in Explorer. Lì dovresti trovare la cartella bin in cui si trova il tuo file APK.

  • Importato da IntelliJ, la posizione sarebbe ProjectName/out/production/...

Nota a margine: come Chris Stratton ha menzionato nel suo commento:

Tecnicamente, quello che vuoi è un APK firmato con una chiave di debug. Un APK effettivamente non firmato verrà rifiutato dal dispositivo.


1
Sì, ho importato il progetto da Eclipse. Ma nel mio caso la cartella bin non viene toccata da Android Studio. Con un po 'di ricerca l'ho trovato da solo. Nel mio caso il .apk si trovava in "projectname / out / production / projectname /"
klange,

Questo dovrebbe succedere solo se si è passati da IntelliJ
bpoiss

9
Sto generando il progetto direttamente con Studio ma non esiste alcuna cartella denominata "bin" in nessuna delle cartelle del progetto. E nella cartella "build" ci sono solo due cartelle, ovvero "res" e "source" e nessuna cartella "bin". mi puoi suggerire qualcosa adesso?
Himanshu Aggarwal,

25
Click the dropdown menu in the toolbar at the topQuesto è così generale. Quale menu a discesa? Quale barra degli strumenti?
tre

3
@dthree puoi fare clic su "Esegui" nella barra dei menu in alto e selezionare "Modifica configurazioni" dal menu a discesa
Gema Megantara,

226

Secondo Build Unsigned APK con Gradle puoi semplicemente creare la tua applicazione con Gradle. Per fare ciò:

  1. fai clic sul menu a discesa sulla barra degli strumenti in alto (di solito con l'icona di Android e il nome della tua applicazione)
  2. Selezionare Edit configurations
  3. fai clic sul segno più nell'angolo in alto a sinistra o premi alt+insert
  4. Selezionare Gradle
  5. scegli il tuo modulo come Gradle project
  6. in Tasks:invioassemble
  7. stampa OK
  8. premi avvia

Dopodiché dovresti trovare il tuo 'apk' senza segno nella directory ProjectName\app\build\outputs\apk


1
+ modifica build.gradle con Android {lintOptions {checkReleaseBuilds false abortOnError false} [....]} e funziona! grazie
Steffi,

Grazie marcin ... Ha funzionato .. Una cosa da notare è che non sono riuscito a trovare la cartella "output / apk" in Android Studio .. È apparso solo nel file system ..
Govind

Attività 'assemblare' non trovata nel progetto root 'bin'.
nVentimiglia,

2 ° voto. Questa dovrebbe essere la risposta corretta. Ho avuto questo problema su un'installazione pulita di Android Studio con l'importazione del progetto. Devi passare attraverso questa configurazione manuale per ottenere qualsiasi file apk da una build.
rickfoosusa,

Funziona in 1.5.1, ma in realtà crea interi apk di progetto anche se è stato selezionato un singolo modulo.
sandrstar,

94

Il modo più semplice, immagino:

  • Apri la scheda Gradle sul lato destro
  • Fai doppio clic su YourProject /: app / assemble (o assembleDebug)
  • Troverai l'apk qui
    ... / YourProject / app / build / output / apk / app-debug.apk

immagine dello schermo


1
Grazie, molto più semplice della risposta accettata, e permette di non creare apk ad ogni corsa
Irhala,

42

vai su BUILD-> Build APK e il gioco è fatto


8
+1. Un metodo MOLTO semplice. A proposito, puoi trovare l'APK generato aAndroidStudioProjects/<APP NAME>/app/build/outputs/apk/debug/app-debug.apk
Spikatrix il

così semplice, grazie mille, ha funzionato, lo apprezzo.
Zeyad,

23

Passaggio 1 Apri Android Studio. Build -> Genera APK firmato…. ora fai clic su "Genera APK firmato".

inserisci qui la descrizione dell'immagine

Passo 2

inserisci qui la descrizione dell'immagine

Fai clic su Crea nuovo.

Passaggio 3

Inserisci i dettagli e fai clic su OK. inserisci qui la descrizione dell'immagine

dettagli chiave jks, tornerà alla finestra precedente.

inserisci qui la descrizione dell'immagine

Fare clic su Avanti e fornire la password memorizzata nella chiave.

Passaggio 4

inserisci qui la descrizione dell'immagine

Ora fai clic su Fine e attendi per completare il processo di costruzione.

inserisci qui la descrizione dell'immagine

Ora apk generato correttamente. Fai clic su Mostra in Explorer.

inserisci qui la descrizione dell'immagine

Se hai bisogno di maggiori dettagli, visita e controlla la demo live http://javaant.com/how-to-make-apk-file-in-android-studio/#.VwzedZN96Hs


3
La domanda chiede apk senza firma
ravelinx,

18

In Android Studio:

  1. Costruire

  2. Costruisci APK

  3. Attendi e vai alla posizione mostrata in una finestra pop-up. Sul lato inferiore destro

inserisci qui la descrizione dell'immagine


14

Sì, è possibile creare un .apk non firmato con Android Studio!

Evidenzia il Progetto nella finestra Esplora pacchetti o progetti, quindi File- Project Structure- Artifacts- +- Android Application- From module 'your app'e quindi puoi modificare la posizione e alcune altre opzioni. Abilito build on make, solo per comodità.


viene visualizzato il messaggio "Forniremo un'interfaccia utente per configurare le impostazioni del progetto in un secondo momento. Fino ad allora, modifica manualmente i tuoi file build.gradle" Ora cosa devo fare?
Himanshu Aggarwal,

8
e se non avessi "artefatti" lì?
scoiattolo,

Premi il segno più in alto a sinistra e puoi accedere all'applicazione Android
CACuzcatlan

jetbrains.com/idea/webhelp/artifacts.html che senso ha usare artefatti? Ho pensato che fosse per generare un apk di debug apk senza segno, ecc. Ma sembra che tu possa semplicemente andare nella cartella build / apk per ottenere l'apk senza segno fintanto che esegui il rilascio dell'assembler dal menu gradle (almeno in IDE intellij). Ho appena configurato un artefatto, ma ho difficoltà a capire cosa farne veramente. Qualcuno può aiutare a chiarire la differenza e utilizzare o indicarmi la giusta direzione?
cjayem13,

@ cjayem13 Alcuni progetti non usano Gradle.
Marc Plano-Lesay,

11

Con Android Studio 2.2.3 su OSX ho appena usato il menu principale:

Build > Build APK

Ha aperto Finder con il .apkfile. Questo non genererà un APK firmato. È possibile selezionare Generate Signed APKdallo stesso menu, se necessario.


Ho provato a generare un APK firmato ma mi sta chiedendo un percorso dell'archivio chiavi. Cosa dovrebbe essere fornito lì?
codeinprogress

11
Build -> Build APK     //unsigned app


Build -> Generate Signed APK  //Signed app

11

AndroidStudio 3.4


Al Grade Build Runningtermine, vedrai la notifica nell'angolo in basso a destra come.

Fai clic su locatee vedrai il tuo APK debuggable


10

Vai su La tua applicazione \ app \ build \ output \ apk

e copia entrambi sul telefono e installa app-debug.apk


1
è davvero necessario copiare entrambi i file?
Vahid Ghadiri,

4

A seguito di lavoro per me:

Continuare a seguire l'impostazione vuota se è stato effettuato in build.gradle.

signingConfigs {
        release {
            storePassword ""
            keyAlias ""
            keyPassword ""
        }
    }

e scegli Gradle Task dalla finestra dell'Editor. Mostrerà l'elenco di tutti i gusti se hai creato.

inserisci qui la descrizione dell'immagine


3

--- Crea una nuova configurazione in signingConfigs

unsigned {
        //do not sign
    }

--- Crea il tipo di build in buildTypes

unsigned {
        versionNameSuffix '-unsigned'
    }

--- Vai a creare varianti e scegli standard non firmato. Costruisci progetto.

--- Vai su "output / apk" e trova "XXX-unsigned.apk". Per verificare se non è firmato, prova a installarlo sul dispositivo: fallirai.


Questo non funziona. È necessario definire il signinigConfig un po 'diverso (tratto da stackoverflow.com/a/18121401/624109 )signingConfigs{ unsigned{ storePassword = "" keyAlias = "" keyPassword = "" } }
Muzikant

1

Ora in Android Studio v1.1.0 dovrebbe essere:

  1. seleziona Run>Run <your app>
  2. trova il file .apk in <your app>\build\outputs\apk

Sto usando 1.2.1.1 ma il tuo approccio non funziona. Devo creare un'assemblea di grado!
programmatore

0

Android Studio crea anche il file apk ogni volta che compili il programma, vai nella cartella dello spazio di lavoro e trova app-> build-> output-> quindi puoi vedere il file apk.


0

Puoi fare clic sul menu a discesa vicino al pulsante Esegui sulla barra degli strumenti,

  1. Seleziona "Modifica configurazioni"
  2. Fai clic sul "+"
  3. Seleziona "Gradle"
  4. Scegli il tuo modulo come progetto Gradle
  5. In Attività: immettere assemblare

Ora premi ok,

tutto ciò che devi fare è ora selezionare la configurazione dal menu a discesa e premere il pulsante Esegui. Ci vorrà un po 'di tempo. Il tuo apk non firmato si trova ora in

Project\app\build\outputs\apk

0

Lo risolvo!

Prima di tutto, dovresti aggiungere questi:

defaultConfig { 
 multiDexEnabled true
}

dependencies {
 implementation 'com.android.support:multidex:1.0.3'
}

Successivamente, fai clic su Crea nella barra superiore di Android Studio:

Build > Build Bundle (s) / APK (s)> Build APK (s)

Infine, hai un file app-debug.apk in:

app> build> output> apk> debug> app-debug.apk

Nota : file apk, debug, app-debug.apk creati automaticamente nel file di output da Android Studio.


0

Passaggi per la creazione di APK senza segno

Nota: tecnicamente, quello che vuoi è un APK firmato con una chiave di debug. Un APK effettivamente non firmato verrà rifiutato dal dispositivo. Pertanto, l'APK senza segno darà errore se si installa nel dispositivo.


ho ricevuto il suo errore "Impossibile impostare la directory di lavoro del processo su" C: \ Users \ marad \ .gradle \ daemon \ 5.2.1 \ My Application ": impossibile impostare la directory corrente (errno 2)"
ass-king alcune domande

0

Per APK senza segno: impostare semplicemente signingConfig null. Ti darà appName-debug-unsigned.apk

debug {
     signingConfig null
}

E costruisci dal menu Genera. Godere

Per APK firmato:

signingConfigs {
        def keyProps = new Properties()
        keyProps.load(rootProject.file('keystore.properties').newDataInputStream())
        internal {
            storeFile file(keyProps.getProperty('CERTIFICATE_PATH'))
            storePassword keyProps.getProperty('STORE_PASSWORD')
            keyAlias keyProps.getProperty('KEY_ALIAS')
            keyPassword keyProps.getProperty('KEY_PASSWORD')
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.internal
            minifyEnabled false
        }
        release {
            signingConfig signingConfigs.internal
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

file keystore.properties

CERTIFICATE_PATH=./../keystore.jks
STORE_PASSWORD=password
KEY_PASSWORD=password
KEY_ALIAS=key0
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.