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

  • Schieben Sie nur scrollview, während Tastatur android geöffnet ist
  • Gibt es irgendwelche Drittanbieter-UI-Bibliotheken für Android?
  • MediaPlayer setDataSource fehlgeschlagen mit Status = 0x80000000 für Ringtone, der von filepath auf 2.3.4 gesetzt wurde
  • So legen Sie eine Schriftart für das Menü "Optionen" fest?
  • Null-Pointer-Ausnahme bei Verwendung von SearchView mit AppCompat
  • Was ist der Unterschied zwischen TypedArray.getInteger () und TypedArray.getInt ()?
  • Ausführung fehlgeschlagen für Task ': app: compileDebugKotlin'
  • Android-Build-System, NEON und Non-NEON baut
  • Neues Android-Projekt benannt nach Hauptaktivität statt App-Name
  • Android DialogFragment Titel nicht angezeigt
  • Der Konstruktor ArrayAdapter <string> ist undefiniert
  • CAB Überlaufmenü benutzerdefinierte Stil
  • 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.