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.

klange
quelle
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.

bpoiss
quelle
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

marcin
quelle
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

Andrey
quelle
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

Aakash Bansal
quelle
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

Nirmal Dhara
quelle
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

Andrii Kovalchuk
quelle
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.

schott12521
quelle
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
Klicken
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 .

Pascal
quelle
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
Siva Prakash
quelle
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

Phan Van Linh
quelle
10

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

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

WhiteWolfza
quelle
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

Code
quelle
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.

Hai
quelle
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
John_J
quelle
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.

user5649834
quelle
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
Chathura Jayanath
quelle
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.

canerkaseler
quelle
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.

Lakshay Sharma
quelle
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
Qamar
quelle