Wie generiere ich signierte und unsignierte APKs mit gradle?

Ich muss sowohl unsigned und signierte Release-Apks mit gradle Befehlszeile ( gradlew assembleRelease ist der Befehl im using now)

Die Akten müssen ausgerichtet sein. Ich habe das überprüft: Build Unsigned APK mit Gradle aber es scheint ein alter Weg, dies zu erreichen, jetzt funktioniert es nicht und etwas hat sich in den letzten Versionen von Android und Gradle Compilation geändert. Und auch ich muss beide aps zur gleichen Zeit, nicht nur Release-Modus oder unsigned Modus zu generieren

  • Android Gradle Plugin 0.7.0: "doppelte Dateien während der Verpackung von APK"
  • Holen Sie sich das Verzeichnis aus einem Dateipfad in Java (Android)
  • Warum bekomme ich "MismatchSenderId" von GCM Server Seite?
  • Einfügen von Text in Android Emulator Zwischenablage mit Adb Shell
  • Wie kann ich feststellen, wann eine Android-Anwendung im Emulator läuft?
  • Google Maps Android API v2 - Erkennung von Touch auf Karte
  • Wie kann ich die Farbe der Progress Bar in Android ändern? - (ich habe einen Weg versucht und es funktioniert nicht)
  • Kann ich d3.js verwenden, um interaktive Visualisierungen innerhalb einer Android-App zu erstellen?
  • Holen Sie sich die echte Bildschirmauflösung auf Ice Cream Sandwich
  • Bilder zwischenspeichern und anzeigen
  • Android: Erkennung, wenn ScrollView Hits Bottom
  • "Noinspection" Keyword-Liste in Android Studio
  • 3 Solutions collect form web for “Wie generiere ich signierte und unsignierte APKs mit gradle?”

    Ich denke, dass buildTypes ein geeigneterer Ort ist als productFlavors .
    Sie können Ihr Release-Build mit dem Ersetzen von signingConfig erweitern.

     buildTypes { release { .... signingConfig signingConfigs.release } releaseUnsigned.initWith(buildTypes.release) releaseUnsigned { signingConfig null } } 

    Dann für den Aufbau von beiden APK-Dateien:

     ./gradlew assemble 

    Oder wenn du nur Release-Builds willst

     ./gradlew assembleRelease assembleReleaseUnsigned or ./gradlew assR assRU 

    Wenn du wirklich nur assembleRelease Aufgabe verwenden willst, kannst du diese Abhängigkeit machen

     assembleRelease.dependsOn assembleReleaseUnsigned 

    Und baue mit nur

     ./gradlew assembleRelease 

    Die Antwort, die Sie verknüpft haben, ist richtig – wenn Ihre gewählte Variante (dh bauen Typ + Geschmack Kombination) nicht mit einem "Signing ready" Signing-config, gradle wird eine unsigned APK erstellen.

    So können Sie so ein Setup definieren:

     android { signingConfigs { release { ... } } productFlavors { signed { signingConfig signingConfigs.release // defined above } unsigned {} // use the default options } } 

    Dann läuft ./gradlew :app:assembleRelease schafft deine APKs:

     app/build/outputs/apk ├── app-signed-release.apk ├── app-signed-release-unaligned.apk └── app-unsigned-release-unsigned.apk 

    Ich weiß, es ist eine ziemlich alte Antwort, aber es könnte immer noch jemandem helfen, dein Ziel zu gewinnen, ohne zusätzlichen Geschmack hinzuzufügen (auch in meinem Fall könnte es schwierig sein, weil viele Abhängigkeiten im Projekt).

     android { signingConfigs { release { ... } } productFlavors { signed { signingConfig (checkUnsigned() ? null : signingConfigs.release) } } def checkUnsigned () { return project.hasProperty("unsigned") } 

    Um es zu benutzen, verwenden Sie einfach

     gradle assembleRelease 

    oder

     gradle assembleRelease '-Punsigned' 

    Für das Erstellen von unsigned (Zitate für CI, sonst ist es nicht erforderlich)

    Nachteil der Lösung ist nur, wenn Sie mehrere Aromen in einer Zeile zusammenstellen wollen

     gradle assembleRelease assembleDebug assembleRelease '-Punsigned' 

    AssembleRelease überprüft alle Eigenschaften in der Befehlszeile, also zuerst assembleRelease wird auch mit param '-Punsigned' Ich habe dieses CI-Problem gelöst, indem ich 2 Befehle – eine für signierte, andere für unsigned Versionen

     gradle assembleRelease assembleOtherFlavour '-Punsigned' gradle assembleDebug assembleRelease assembleOtherFlavour 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.