Automatisierung von Releases auf Android

Release-Automatisierung auf Android

Die Veröffentlichung einer App in der Produktion kann manchmal ein etwas schwerer Prozess sein. Um diese Phase abzuschließen, müssen eine Reihe von Aufgaben ausgeführt werden, z. B. Beta-Verteilung, Screenshots, Übersetzungen für mehrere Sprachen, APK-Signierung usw., was sehr mühsam sein kann, wenn es nicht in irgendeiner Weise automatisiert ist. Darüber hinaus gibt es auch verschiedene Anwendungsversionen (Freemium, Premium…) die Sache wird noch langweiliger.

Die Mehrsprachigkeit ist übrigens einer der Punkte, der viel Zeit und Mühe erfordert, wenn es darum geht, eine App zu pflegen und zu veröffentlichen. Bevor Sie also in den Pool springen und bereit sind, viele Sprachen beizubehalten, schlage ich vor, anzuhalten, um zu prüfen, ob dies kompensiert wird oder ob es sich im Gegenteil lohnt, an dieser Stelle weniger ehrgeizig zu sein, denn wenn Sie es gut machen möchten, bedeutet eine neue Sprache unter anderem neue Übersetzungen für die App-Texte, neue Übersetzungen von Titel und Beschreibung im Google Play-Tab oder im Store, neue Übersetzungen für die App-Versionsaktualisierungstexte und neue Screenshots in der entsprechenden Sprache.

Nun, um einen Teil dieser Arbeit zu vermeiden, werden wir Dinge kommentieren, die wir tun können, um sie zu automatisieren. Lassen Sie uns hauptsächlich drei Punkte kommentieren, mit denen wir unseren Prozess der Verteilung und Veröffentlichung einer App auf Android automatisieren können. Mit Hilfe von Gradle und einer Reihe von Android-Bibliotheken sparen wir uns viel Zeit und Arbeit.

  1. Automatische Beta-Verteilung mit Crashlytics

  2. Screenshots und Icon-Generierung für Google Play

  3. Automatisches APK-Signieren

Beta-Verteilung mit Crashlytics

Wenn wir Crashlytics in unserer App verwenden, können wir die Generierung und Verteilung von Betas automatisch durchführen, indem wir einfach einige grundlegende Konfigurationsparameter in unserer Datei festlegen bauen.gradle des App-Moduls in dem Teil, in dem die Build-Varianten definiert sind. Auf diese Weise parametrisieren wir die Zielbenutzer und die “Versionshinweise” so, dass bei der Ausführung des Befehls Crashlyticsuploaddistributionfreigabe, die Verteilung erfolgt automatisch. Beispiel:

In diesem Link können Sie dies genauer sehen:

https://docs.fabric.io/android/beta/gradle.html#distribution-with-gradle

Screenshots und Icon-Generierung für Google Play

Eine weitere Aufgabe, die Sie beim Veröffentlichen bei Google Play erledigen müssen, besteht darin, die entsprechenden Symbole und Screenshots unserer App bereitzustellen. Google Play erfordert, dass wir ein Symbol von 512 x 512 Pixel und ein weiteres von 1024 x 500 Pixel unserer App bereitstellen. Dies sind die Symbole, die der Benutzer im App-Finder sieht. Außerdem müssen wir mindestens 2 Bilder oder Screenshots unserer App bereitstellen. Dies ist an sich nicht sehr teuer, aber wenn unsere App mehrsprachig ist, ist es richtig, die entsprechenden Symbole und Screenshots bereitzustellen, da unsere App sicherlich dazwischen Texte enthält, die sich je nach Sprache ändern und dies ist am Ende ein ziemlich teurer Job.

Hier werden wir anfangen zu delegieren Espresso, das Android-Framework zur Durchführung von Benutzeroberflächentests. Dank Espresso, an die JUnit-Regeln und zum Buchladen Löffel, wir können jeden Bildschirm unserer App automatisiert in der entsprechenden Sprache erfassen.

JUnit-Regeln

Die JUnit-Regeln werden durch eine Anmerkung ausgedrückt und dienen dazu, die Aufrufe der Testmethode abzufangen und ermöglichen es uns, vor und nach dem Aufruf etwas zu tun. In unserem Fall werden wir eine verwenden @Regel, was es uns erleichtert, Berechtigungen zum Speichern der Screenshots zu verwalten. Insbesondere werden wir verwenden Zuschussberechtigungsregel, die in der Espresso-Buchhandlung enthalten ist. Und eins @Klassenregel für den “lokalen” Teil, der für die Durchführung des Tests in jeder gewünschten Sprache verantwortlich ist. Wir müssen dies selbst folgendermaßen implementieren:

Löffel Screenshots

Um Screenshots zu machen, reicht es aus, die Gradle-Abhängigkeit der Spoon-Client-Bibliothek hinzuzufügen. Damit die Screenshots gespeichert werden können, muss Ihre Anwendung über die Berechtigung verfügen WRITE_EXTERNALER SPEICHER.

Um irgendwann im Test eine Aufnahme zu machen, ist das so einfach:

Hier zeige ich ein Beispiel für UITest, das JUnit- und Spoon-Regeln verwendet, um Screenshots in 7 Sprachen zu automatisieren:

Automatisches APK-Signieren

Und zum Schluss wollen wir sehen, wie wir unsere APK automatisch in Android Studio signieren, da Android erfordert, dass alle APKs mit einem Zertifikat digital signiert werden, um installiert zu werden.

Konfigurieren Sie den Erstellungsprozess so, dass Ihre APK automatisch signiert wird

In Android Studio können Sie Ihr Projekt so konfigurieren, dass die Release-APK während des Erstellungsprozesses automatisch signiert wird, indem Sie eine Signaturkonfiguration generieren und sie Ihrem Release-Build-Typ zuweisen. Eine Signaturkonfiguration besteht aus einem Schlüsselspeicherort und einem Kennwort sowie einem Schlüsselalias und einem Kennwort. Gehen Sie folgendermaßen vor, um eine Signaturkonfiguration zu generieren und sie Ihrem Release-Build-Typ mit Android Studio zuzuweisen:

  1. Im Fenster Projekt, klicken Sie mit der rechten Maustaste auf Ihre Anwendung und dann mit der rechten Maustaste auf Modul-Einstellungen öffnen.

  2. Im Fenster Projektstruktur, Abschnitt Funktionsbausteine klicken Sie im linken Bereich auf das Modul, das Sie signieren möchten.

  3. Klicken Sie auf die Registerkarte Unterzeichnen und dann in Hinzufügen +

  4. Wählen Sie die Datei Ihres Keystores aus, geben Sie einen Namen für diese Signaturkonfiguration und die erforderlichen Informationen ein.

Fenster zum Erstellen einer neuen Signaturkonfiguration.

5. Klicken Sie auf die Registerkarte Build-Typen.

6. Klicken Sie auf die Zusammenstellung veröffentlichen.

7. In Konfiguration signieren, wählen Sie die soeben erstellten Einstellungen aus.

Auswählen einer Signatureinstellung in Android Studio.

8. Klicken Sie auf Okay.

Jedes Mal, wenn Sie Ihren Release-Build-Typ mit Android Studio erstellen, signiert die IDE die APK automatisch mit den von Ihnen angegebenen Einstellungen. Sie finden Ihre signierten APKs im Ordner build / outputs / apk / im Projektverzeichnis des von Ihnen erstellten Moduls.

Erkenntnis

Die Automatisierung von Aufgaben ist grundlegend, wenn Sie Distributionen erstellen und eine App veröffentlichen. Hier haben wir nur einige davon kommentiert, die uns viel Arbeit ersparen, und wir müssen nicht einmal über kontinuierliche Integration sprechen, ein Thema, das wir für einen anderen Beitrag belassen können. Es ist auch wahr, dass es sehr leistungsfähige Tools wie fastlane gibt, um die Veröffentlichungs- und Verteilungsprozesse zu automatisieren, aber es hat den Nachteil, dass es nicht offiziell mit allen Betriebssystemen kompatibel ist. Deshalb wollte ich mich beim Schreiben dieses Beitrags nur auf Gradle-Aufgaben und offizielle Bibliotheken wie Espresso und Spoon verlassen, die für Android verfügbar sind.

Ressource

https://docs.fabric.io/android/beta/gradle.html#distribution-with-gradle

A test rule for setting device locale

https://www.kotlindevelopment.com/runtime-permissions-espresso-done-right/

https://www.polidea.com/blog/Android_Espresso_4_tools_you_should_be_using/

https://developer.android.com/studio/publish/app-signing.html?hl=es-419#secure-shared-keystore

Bereit, uns in Aktion zu sehen:

More To Explore

Haben Sie ein Projekt im Sinn?

Kontaktieren Sie uns:

small_c_popup.png