Erstellen Sie eine nicht signierte APK-Datei mit Android Studio


271

Ich entwickle eine Android-App mit dem Android Developer Tool. Jetzt habe ich das neue Android Studio ausprobiert. Alles funktioniert einwandfrei, wenn ich mein Smartphone mit dem PC verbinde und das Programm direkt im Android Studio ausführe. Aber jetzt möchte ich das Programm mit anderen Smartphones testen, ohne sie an meinen PC anzuschließen.

Das ADT erstellt die APK-Datei bei jedem Kompilieren des Programms unter "Projektname / Bin". Wie ich es im Moment sehe, macht das Android Studio das nicht.

Meine Frage ist also, ob es möglich ist, mit Android Studio eine nicht signierte APK-Datei zu erstellen.


10
Technisch gesehen möchten Sie eine apk, die mit einem Debug-Schlüssel signiert ist. Eine Apk, die tatsächlich nicht signiert ist, wird vom Gerät abgelehnt.
Chris Stratton

Zu Ihrer Information, wir sollten es immer vorziehen, signierte Apps zu exportieren, wie von @Nirmal Dhara beantwortet. Das ist viel sicherer.
Mukund

2
@ChrisStratton Wird es immer abgelehnt?
Sreekanth Karumanaghat

Ich löse es mit dieser Lösung: stackoverflow.com/a/56201481/8471798
canerkaseler

Antworten:


324

Ich würde Ihnen empfehlen, Ihre APK-Datei mit Gradle zu erstellen:

  • Klicken Sie oben in der Symbolleiste auf das Dropdown-Menü (Öffnen Sie das Dialogfeld "Run / Debug-Konfigurationen bearbeiten").
  • Wählen Sie "Konfigurationen bearbeiten"
  • Klicken Sie auf das "+"
  • Wählen Sie "Gradle"
  • Wählen Sie Ihr Modul als Gradle-Projekt
  • In Aufgaben: eingeben assemble
  • Drücken Sie Ausführen

Ihre nicht signierte APK befindet sich jetzt in

ProjectName\app\build\outputs\apk

Ausführliche Informationen zur Verwendung von Gradle finden Sie in diesem Tutorial: Erstellen mit Gradle in Android Studio . Ich habe auch einen Blog-Beitrag darüber geschrieben, wie man mit Gradle eine nicht signierte APK erstellt.

Wenn Sie Ihr Projekt von der anderen IDE verschoben haben und nicht neu kompilieren möchten , finden Sie möglicherweise Ihre APK-Datei, die bereits in der IDE erstellt wurde, von der Sie verschoben haben:

  • Wenn Sie das Projekt mit Android Studio generiert haben, befindet sich die APK-Datei in ProjectName/ProjectName/build/apk/...

  • Das Projekt wurde aus Eclipse importiert: Die Datei sollte sich im selben Verzeichnis befinden. Gehe zu Project- Show in Explorer. Dort sollten Sie den Ordner bin finden, in dem sich Ihre APK-Datei befindet.

  • Aus IntelliJ importiert, wäre der Speicherort ProjectName/out/production/...

Randnotiz: Wie Chris Stratton in seinem Kommentar erwähnte:

Technisch gesehen möchten Sie eine APK, die mit einem Debug-Schlüssel signiert ist. Eine tatsächlich nicht signierte APK wird vom Gerät abgelehnt.


1
Ja, ich habe das Projekt aus Eclipse importiert. Aber in meinem Fall wird der Ordner bin vom Android Studio nicht berührt. Mit ein bisschen Suchen habe ich es selbst gefunden. In meinem Fall befand sich die .apk in "Projektname / out / Produktion / Projektname /"
klange

Dies sollte nur für den Fall sein, dass Sie von IntelliJ
bpoiss

9
Ich generiere das Projekt direkt mit Studio, aber in keinem der Ordner des Projekts befindet sich ein Ordner mit dem Namen "bin". Und im Ordner "build" gibt es nur zwei Ordner, nämlich "res" und "source", und keinen Ordner "bin". Kannst du mir jetzt etwas vorschlagen?
Himanshu Aggarwal

25
Click the dropdown menu in the toolbar at the topDas ist so allgemein. Welches Dropdown-Menü? Welche Symbolleiste?
Drei

3
@dthree können Sie auf "Ausführen" in der oberen Menüleiste klicken und "Konfigurationen bearbeiten" aus der Dropdown-
Liste

226

Laut Build Unsigned APK with Gradle können Sie Ihre Anwendung einfach mit gradle erstellen. Um das zu tun:

  1. Klicken Sie oben in der Symbolleiste auf das Dropdown-Menü (normalerweise mit dem Android-Symbol und dem Namen Ihrer Anwendung).
  2. wählen Edit configurations
  3. Klicken Sie oben links auf das Pluszeichen oder drücken Sie alt+insert
  4. wählen Gradle
  5. Wählen Sie Ihr Modul als Gradle project
  6. in Tasks:eingebenassemble
  7. Drücken Sie OK
  8. drücke Start

Danach sollten Sie Ihre nicht signierte 'apk' im Verzeichnis finden ProjectName\app\build\outputs\apk


1
+ edit.gradle mit android bearbeiten {lintOptions {checkReleaseBuilds false abortOnError false} [....]} und es funktioniert! danke
Steffi

Danke marcin ... Es hat funktioniert. Eine Sache zu bemerken ist, dass ich den Ordner "output / apk" im Android Studio nicht finden konnte. Es erschien nur im Dateisystem.
Govind

Aufgabe 'Assemble' nicht im Root-Projekt 'bin' gefunden.
NVentimiglia

2. Abstimmung. Dies sollte die richtige Antwort sein. Ich hatte dieses Problem bei einer sauberen Android Studio-Installation mit Projektimport. Sie müssen dieses manuelle Setup durchlaufen, um alle APK-Dateien von einem Build zu erhalten.
Rickfoosusa

Es funktioniert in 1.5.1, erstellt aber tatsächlich ganze Projekt-Apks, selbst wenn ein einzelnes Modul ausgewählt wurde.
Sandstar

94

Der einfachste Weg, denke ich:

  • Öffnen Sie die Registerkarte Gradle auf der rechten Seite
  • Doppelklicken Sie auf YourProject /: app / assemble (oder assembleDebug).
  • Die apk finden Sie hier
    ... / YourProject / app / build / output / apk / app-debug.apk

Bildschirmfoto


1
Vielen Dank, viel einfacher als akzeptierte Antwort, und erlaubt nicht, apk bei jedem Lauf zu bauen
Irhala

42

Gehen Sie einfach zu BUILD-> Build APK und fertig


8
+1. Eine sehr einfache Methode. AndroidStudioProjects/<APP NAME>/app/build/outputs/apk/debug/app-debug.apk
Übrigens

So einfach ist das. Vielen Dank, es hat funktioniert. Schätzen Sie es.
Zeyad

23

Schritt 1 Öffnen Sie Android Studio. Build -> Signierte APK generieren…. Klicken Sie nun auf "Signierte APK generieren".

Geben Sie hier die Bildbeschreibung ein

Schritt 2

Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf Neu erstellen.

Schritt 3

Füllen Sie die Details aus und klicken Sie auf OK. Geben Sie hier die Bildbeschreibung ein

jks Schlüsseldetails, Es wird zum vorherigen Fenster zurückkehren.

Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf Weiter und geben Sie das Passwort ein, das Sie im Schlüssel gespeichert haben.

Schritt 4

Geben Sie hier die Bildbeschreibung ein

Klicken Sie nun auf Fertig stellen und warten Sie, bis der Erstellungsprozess abgeschlossen ist.

Geben Sie hier die Bildbeschreibung ein

Jetzt wurde apk erfolgreich generiert. Klicken Sie im Explorer auf Anzeigen.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie weitere Informationen benötigen, besuchen Sie bitte die Live-Demo http://javaant.com/how-to-make-apk-file-in-android-studio/#.VwzedZN96Hs


3
Frage fragt nach unsignierten apk
ravelinx

18

In Android Studio:

  1. Bauen

  2. APK (s) erstellen

  3. Warten Sie und gehen Sie zu dem in einem Popup-Fenster angezeigten Ort. Auf der rechten unteren Seite

Geben Sie hier die Bildbeschreibung ein


14

Ja, mit Android Studio ist es möglich, eine nicht signierte APK zu erstellen!

Markieren Sie das Projekt in Ihrem Paket-Explorer oder in Ihrer Projektspalte und dann File- Project Structure- Artifacts- +- Android Application- From module 'your app'und dann können Sie den Speicherort und einige andere Optionen ändern. Ich aktiviere Build on Make, nur zur Vereinfachung.


Es erscheint die Meldung "Wir werden später eine Benutzeroberfläche zum Konfigurieren der Projekteinstellungen bereitstellen. Bis dahin bearbeiten Sie bitte Ihre build.gradle-Datei (en) manuell." Was soll ich nun tun?
Himanshu Aggarwal

8
und was ist, wenn ich dort keine „Artefakte“ habe?
Eichhörnchen


jetbrains.com/idea/webhelp/artifacts.html Was bringt es, Artefakte zu verwenden? Ich dachte, es wäre ein nicht signiertes Apk-Debug-Apk usw. zu generieren, aber es scheint, als könnten Sie einfach in den Ordner build / apk gehen, um das nicht signierte Apk zu erhalten, solange Sie Assembler-Release über das Gradle-Menü ausführen (zumindest in Intellij IDE). Ich habe gerade ein Artefakt konfiguriert, aber ich habe Probleme herauszufinden, was ich wirklich damit machen soll. Kann mir bitte jemand helfen, den Unterschied zu klären und mich zu benutzen oder in die richtige Richtung zu weisen?
cjayem13

@ cjayem13 Einige Projekte verwenden Gradle nicht.
Marc Plano-Lesay

11

Mit Android Studio 2.2.3 unter OSX habe ich gerade das Hauptmenü verwendet:

Build > Build APK

Es öffnete den Finder mit der .apkDatei. Dadurch wird keine signierte APK generiert. Sie können Generate Signed APKbei Bedarf aus demselben Menü auswählen .


Ich habe versucht, eine signierte APK zu generieren, aber sie fragt nach einem Schlüsselspeicherpfad. Was soll dort zur Verfügung gestellt werden?
Codeinprogress

11
Build -> Build APK     //unsigned app


Build -> Generate Signed APK  //Signed app

11

AndroidStudio 3.4


Nach Grade Build RunningAbschluss sehen Sie die Benachrichtigung in der unteren rechten Ecke wie.

Klicken Sie auf locateund Sie sehen Ihre debuggbare APK


10

Gehen Sie einfach zu Ihrer Anwendung \ app \ build \ output \ apk

und kopieren Sie beide auf das Telefon und installieren Sie app-debug.apk


1
Ist es wirklich notwendig, beide Dateien zu kopieren?
Vahid Ghadiri

4

Folgende Arbeit für mich:

Lassen Sie die folgende Einstellung leer, wenn Sie in build.gradle vorgenommen haben.

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

und wählen Sie Gradle Task aus Ihrem Editor-Fenster. Es wird eine Liste aller Geschmacksrichtungen angezeigt, wenn Sie diese erstellt haben.

Geben Sie hier die Bildbeschreibung ein


3

--- Neue Konfiguration in signingConfigs erstellen

unsigned {
        //do not sign
    }

--- Build-Typ in buildTypes erstellen

unsigned {
        versionNameSuffix '-unsigned'
    }

--- Gehen Sie zu Build-Varianten und wählen Sie einen nicht signierten Standard. Projekt erstellen.

--- Gehen Sie zu "output / apk" und suchen Sie "XXX-unsigned.apk". Um zu überprüfen, ob es nicht signiert ist, versuchen Sie, es auf dem Gerät zu installieren - Sie werden fehlschlagen.


Das funktioniert nicht. Sie müssen die signinigConfig etwas anders definieren (entnommen aus stackoverflow.com/a/18121401/624109 )signingConfigs{ unsigned{ storePassword = "" keyAlias = "" keyPassword = "" } }
Muzikant

1

Jetzt in Android Studio v1.1.0 sollte sein:

  1. Wählen Sie Run>Run <your app>
  2. Finden Sie die APK-Datei in <your app>\build\outputs\apk

Ich verwende 1.2.1.1, aber Ihr Ansatz funktioniert nicht. Ich muss eine Gradle-Baugruppe erstellen!
Programmierer

0

Android Studio erstellt die Apk-Datei auch jedes Mal, wenn Sie das Programm kompilieren. Gehen Sie einfach in Ihren Arbeitsbereich-Ordner und suchen Sie nach App-> Build-> Outputs->. Dann können Sie die Apk-Datei sehen.


0

Sie können auf die Dropdown-Liste neben der Schaltfläche Ausführen in der Symbolleiste klicken.

  1. Wählen Sie "Konfigurationen bearbeiten"
  2. Klicken Sie auf das "+"
  3. Wählen Sie "Gradle"
  4. Wählen Sie Ihr Modul als Gradle-Projekt
  5. In Aufgaben: Geben Sie montieren ein

Drücken Sie jetzt OK,

Jetzt müssen Sie nur noch Ihre Konfiguration aus der Dropdown-Liste auswählen und die Schaltfläche Ausführen drücken. Es wird einige Zeit in Anspruch nehmen. Ihre nicht signierte apk befindet sich jetzt in

Project\app\build\outputs\apk

0

Ich löse es!

Zunächst sollten Sie Folgendes hinzufügen:

defaultConfig { 
 multiDexEnabled true
}

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

Danach sollten Sie in der oberen Leiste von Android Studio auf Erstellen klicken :

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

Schließlich haben Sie eine app-debug.apk- Datei in:

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

Hinweis : apk-, debug- und app-debug.apk- Dateien, die von Android Studio automatisch in der Ausgabedatei erstellt werden.


0

Schritte zum Erstellen einer nicht signierten APK

Hinweis: Technisch gesehen möchten Sie eine APK, die mit einem Debug-Schlüssel signiert ist. Eine APK, die tatsächlich nicht signiert ist, wird vom Gerät abgelehnt. Unsigned APK gibt also einen Fehler aus, wenn Sie auf dem Gerät installieren.


0

Für nicht signierte APK: Setzen Sie signingConfig einfach auf null. Sie erhalten appName-debug-unsigned.apk

debug {
     signingConfig null
}

Und bauen aus dem Build-Menü. Genießen

Für signierte APK:

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'
        }
    }

Datei keystore.properties

CERTIFICATE_PATH=./../keystore.jks
STORE_PASSWORD=password
KEY_PASSWORD=password
KEY_ALIAS=key0
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.