Release-Automatisierung auf Android

Release-Automatisierung auf Android

Das Veröffentlichen einer App in der Produktion kann manchmal ein ziemlich schwerer Prozess sein. Um diese Phase abzuschließen, müssen eine Reihe von Aufgaben ausgeführt werden, z. B. die Verteilung von Betas, Screenshots, Übersetzungen für mehrere Sprachen, APK-Signatur usw., was sehr mühsam sein kann, wenn es nicht in irgendeiner Weise automatisiert wird. Auch wenn es auch verschiedene Anwendungsversionen gibt (Freemium, Premium…) die Dinge werden noch mühsamer.

Die Mehrsprachigkeit ist übrigens einer der Punkte, die bei der Pflege und Veröffentlichung einer App viel Zeit und Mühe erfordern. Aus diesem Grund empfehle ich Ihnen, vor dem Sprung in den Pool, der bereit ist, viele Sprachen beizubehalten, aufzustehen , um zu beurteilen, ob es sich lohnt, an dieser Stelle weniger ehrgeizig zu sein, denn wenn Sie es gut machen möchten, impliziert eine neue Sprache neue Übersetzungen für die Texte der App, neue Übersetzungen von Titel und Beschreibung Registerkarte im Google Play oder im Store, dh neue Übersetzungen für die Texte der Update-Version der App und neue Screenshots in der entsprechenden Sprache, unter anderem.

Nun, um uns einen Teil dieser Arbeit zu ersparen, lassen Sie uns Dinge besprechen, die wir tun können, um sie zu automatisieren. Kommentieren wir hauptsächlich drei Punkte, mit denen wir unseren Vertriebsprozess und die Veröffentlichung einer App auf Android automatisieren können. Mit Hilfe von Gradle und einer Reihe von Android-Bibliotheken sparen wir viel Zeit und Arbeit.

  1. Automatische Betas-Verteilung mit Crashlytics

  2. Screenshots und Symbolgenerierung für Google Play

  3. Automatische Signatur APK

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 “Release Notes” so, dass beim Ausführen des Befehls crashlyticsUploadDistributionRelease, 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 Symbolgenerierung für Google Play

Eine weitere Aufgabe, die wir beim Veröffentlichen auf Google Play ausführen müssen, besteht darin, die entsprechenden Symbole und Screenshots unserer App bereitzustellen. Google Play erfordert, dass wir ein Symbol von 512 x 512 px und ein anderes von 1024 x 500 px unserer App bereitstellen. Dies sind die Symbole, die der Benutzer im App Finder sieht. Und es erfordert auch, dass wir mindestens 2 Bilder oder Screenshots unserer App zur Verfügung stellen. 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 Texte enthält, die sich je nach Sprache ändern, und dies ist ein ziemlich teurer Job.

Hier werden wir anfangen zu delegieren Espresso, das Android-Framework für die Prüfung der Benutzeroberfläche. Dank der Espresso -, JUnit-Regeln und die Buchhandlung Löffelwir können jeden Bildschirm unserer App automatisch in der entsprechenden Sprache erfassen.

Regeln JUnit

Die JUnit-Regeln, ausgedrückt durch Anmerkungen, dienen zum Abfangen der Aufrufe der Testmethode und ermöglichen es uns, etwas vor und nach dem Aufruf zu tun. In unserem Fall werden wir eine @ Regel, was die Handhabung von Berechtigungen zum Speichern von Screenshots erleichtert. Speziell werden wir verwenden GrantPermissionRule, die in der Espresso-Bibliothek enthalten ist. Und einer @ ClassRule für den” lokalen ” Teil, der für den Test in jeder gewünschten Sprache verantwortlich ist. Dies müssen wir selbst wie folgt umsetzen:

Löffel Screenshots

blank

Um Screenshots aufzunehmen, fügen Sie einfach die Gradle-Abhängigkeit der Spoon-Clientbibliothek hinzu. Damit Screenshots gespeichert werden können, muss Ihre Anwendung über die Berechtigung verfügen WRITE_EXTERNAL_STORAGE.

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

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

Automatische Signatur APK

Und zum Schluss sehen wir uns an, wie Sie unsere APK automatisch in Android Studio signieren, da Android erfordert, dass alle APPs digital mit einem zu installierenden Zertifikat signiert sind.

Konfigurieren Sie den Build-Prozess, um Ihre APK automatisch zu signieren

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

  1. Im Fenster Projekt, rechtsklick auf ihre app und dann primäre klicken sie auf Moduleinstellungen ö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 im Hinzufügen +

  4. Wählen Sie Ihre Keystore-Datei aus, geben Sie einen Namen für diese Signatureinstellung und die erforderlichen Informationen ein.

blank

Fenster zum erstellen einer neuen Signatur-Konfiguration.

5. Klicken Sie auf die Registerkarte Typen erstellen.

6. Klicken Sie auf erstellen veröffentlichen.

7. In Signierende Konfigurationwählen Sie die soeben erstellten Einstellungen aus.

blank

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 Aufgabenautomatisierung ist grundlegend, wenn Distributionen erstellt und eine App veröffentlicht werden. Hier haben wir nur einige von ihnen kommentiert, die uns viel Arbeit ersparen, und wir sind nicht einmal gekommen, um über kontinuierliche Integration zu sprechen, ein Thema, das wir für einen anderen Beitrag verlassen können. Es ist auch wahr, dass es sehr leistungsstarke Tools wie Fastlane gibt, um die Veröffentlichungs-und Distributionsprozesse zu automatisieren, aber es hat den Nachteil, dass es nicht offiziell mit allen Betriebssystemen kompatibel ist, um diesen Beitrag zu schreiben, wollte ich mich nur auf Aufgaben von Gradle verlassen und offizielle Bibliotheken wie Espresso und Löffel für Android verfügbar.

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