Wir automatisieren die Montage von iOS-Anwendungen mit Fastlane


Wie oft müssen wir iOS-Entwickler eine App zum Herunterladen erstellen? iTunes Connect App Store Connect ? Während der aktiven Beta-Testphase der Anwendung müssen Sie Fehler schnell beheben und eine aktualisierte Assembly zum Testen bereitstellen. Es ist auch erforderlich, Zertifikate und Bereitstellungsprofile herunterzuladen und für jeden neuen Build auf viele verschiedene Häkchen und Schaltflächen zu klicken.


Glücklicherweise gibt es ein wunderbares Tool wie Fastlane , mit dem wir die manuellen Aktionen eines mobilen Entwicklers automatisieren können.


In diesem Beitrag werde ich Ihnen erklären, was Fastlane ist und wie Sie es schnell in Ihren iOS-Projekten verwenden können.


Einführung


Was ist das?


Fastlane ist ein Tool zur Automatisierung der Montage und Gestaltung von Prozessen für mobile iOS- und Android- Anwendungen. Dazu gehören auch das Generieren von Screenshots , das Ausführen von Unit / UI-Tests , das Senden von Nachrichten an Slack , das Herstellen einer Verbindung zu Crashlytics und viele andere nützliche Dinge, die das Leben erleichtern.


Was ist der Gewinn?


Die anfängliche Konfiguration der grundlegenden Befehle zur Automatisierung der Berechnung der Anwendung, z. B. zum Veröffentlichen im App Store oder in TestFlight, dauert nicht länger als zwei Stunden. Dies spart jedoch in Zukunft viel Zeit Der gesamte Prozess wird in einem Aufruf über die Befehlszeile gestartet.


ACHTUNG: Für alle Schritte ist ein Apple Developer-Abonnement erforderlich, da für kostenlose Konten kein Zugriff auf den App Store Connect verfügbar ist.


Installation


Installieren Sie fastlane selbst


Installieren / aktualisieren Sie zunächst auf die neueste Version der Xcode Command Tools:


$ xcode-select --install 

Installiere gem fastlane:


 $ sudo gem install fastlane -NV #   brew $ brew cask install fastlane 

Zum Projekt hinzufügen


Führen Sie im Stammverzeichnis des Projekts Folgendes aus:


 $ sudo fastlane init 

Fastlane bietet uns Optionen für vorinstallierte Skripte, je nachdem, was wir wollen:



Wir werden Option 4 als wählen Wir werden alle notwendigen Befehle für unsere Situation vorschreiben:



Fertig! Der Fastlane- Ordner und die Gem-Datei wurden erfolgreich in unserem Projekt installiert.


Bevor wir fortfahren


Wenn das Gebietsschema- Shell- Profil nicht UTF-8 ist, treten Probleme beim Erstellen und Laden von Builds auf. Wir gehen in die Datei Ihres Shell-Profils ( ~ / .bashrc , ~ / .bash_profile , ~ / .profile oder ~ / .zshrc ) und fügen die folgenden Zeilen hinzu:


 export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 

Jetzt können Sie die sofortigen Schritte zur Automatisierung der Baugruppe schreiben.


Wie funktioniert es?


Finden Sie zunächst heraus, was Fastlane tut: seine Hauptbefehle und wie wir beschreiben, was zu tun ist.


Befehle (Aktionen)


Fastlane enthält viele nützliche Befehle, die dem Entwickler das Leben erleichtern:


  • cert : Lädt automatisch die erforderlichen Zertifikate (Distribution, Development) herunter und installiert sie, um die gesammelten Anwendungen zu signieren.
  • increment_build_number : Erhöht die Build-Nummer um 1 oder ändert den im Parameter build_number angegebenen Wert
  • Seufzer : Lädt automatisch alle erforderlichen Bereitstellungsprofile herunter und installiert sie.
  • Schnappschuss : Führt UI-Tests aus und macht Screenshots, die beim Einreichen zur Überprüfung im App Store verwendet werden können.
  • Fitnessstudio : Sammelt das Archiv und hier das endgültige IPA Ihrer Bewerbung.
  • Scan : Alles ist einfach - startet ein Testziel;
  • Zustellen : Sendet IPA, Screenshots und Metadaten direkt an den App Store.
  • pilot : lädt frisches ipa zum Beta-Test in TestFlight hoch. Mit diesem Befehl können Sie auch Tester verwalten.
  • und viele andere

Fastfile


Der Fastlane- Ordner enthält Fastfile und Appfile . In der App-Datei werden die für die Zusammenstellung und Veröffentlichung erforderlichen Werte festgelegt: Bundle-IDs, App-ID, Team-ID und andere. In Fastfile werden wir unsere Skripte beschreiben. Nach der Erstinstallation sieht es so aus:


 default_platform(:ios) platform :ios do desc "Description of what the lane does" lane :custom_lane do # add actions here: https://docs.fastlane.tools/actions end end 

  • default_platform (: ios) - Legen Sie die Standardplattform so fest, dass sie nicht über die Befehlszeile angegeben wird.
  • Plattform: ios do ... end - "Lanes" für die iOS-Plattform werden hier beschrieben.
  • desc "Beschreibung der Fahrspur" - eine kurze Beschreibung der "Fahrspur". Die Liste aller "Fahrspuren" mit Beschreibungen kann mit dem $ fastlane lanes .
  • Lane: custom_lane do ... end : Lane (Pfad, Streifen) ist einfacher eine Methode. Es hat einen Namen, Parameter und Körper. Im Hauptteil rufen wir die Befehle auf, die wir zum Erstellen, $ fastlane [lane_name] [parameters] , Ausführen von Tests usw. benötigen. Lanes werden über die Befehlszeile aufgerufen, indem $ fastlane [lane_name] [parameters] . Mit dem Aufruf einer der Fahrspuren beginnen die automatisierten Schritte.

Automatisches Hochladen zu TestFlight


Beginnen wir damit, einen freundlichen Namen für unsere Fahrspur festzulegen. Benennen Sie custom_lane in testflight_lane um . Jetzt ist klar, dass das Ergebnis der Ausführung dieses Skripts eine geladene neue Assembly in TestFlight ist .


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do # Actions end end 

Appfile konfigurieren


Um das Anwendungspaket und die Apple ID nicht jedes Mal einzugeben, wenn Sie das Skript ausführen, schreiben Sie sie in die App-Datei :


 app_identifier "ru.ee.shishko.TheHatGame" apple_id "ee.shishko@gmail.com" 

Zertifikate und Bereitstellungsprofile


Fügen Sie die Befehle cert und seufzen hinzu , um die Zertifikate bzw. Bereitstellungsprofile zu installieren:
( Achtung : Wenn sich Ihre Anwendung nicht im App Store Connect befindet, müssen Sie den Befehl generate mit dem Parameter app_name hinzufügen. )


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do #      App Store Connect: # produce ( # app_name: "MyAppName" # ) cert sigh end end 

Führen Sie unser Skript mit dem Befehl $ fastlane testflight_lane


Beim Starten von Fastlane werden wir aufgefordert, das Passwort für das Konto einzugeben. Geben Sie es ein. Es wird nur einmal benötigt - Fastlane wird sich daran erinnern und Sie müssen bei den nächsten Starts nichts eingeben.
So sieht die Ausgabe aus, wenn fastlane das Skript erfolgreich abgeschlossen hat:




Jetzt werden die Zertifikat- und Bereitstellungsprofile heruntergeladen und installiert. Es bleibt das gewünschte Ziel im allgemeinen Beitrag festzuhalten:




Anwendung erstellen


Fügen Sie den Befehl increment_build_number hinzu , um die Build-Nummer zu erhöhen. Wenn sich Ihre Hauptdatei .xcodeproj nicht im Stammordner befindet, geben Sie den Pfad dafür im Parameter xcodeproj an :


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number #   .xcodeproj     , : # # increment_build_number( # xcodeproj: "./path/to/MyApp.xcodeproj" # ) end end 

Um die Build-Nummer zu erhöhen, gehen Sie zu Build-Einstellungen / Versionierung und setzen Sie das Versionierungssystem in Apple Generic und Current Project Version auf 1 :




Fügen Sie den Befehl gym hinzu , der die IPA- Datei unserer Anwendung sammelt:




Unter den Parametern können Sie angeben, wo ipa ( Ausgabeverzeichnis ), ipa ( Ausgabenname ), Schema ( Schema ) abgelegt werden sollen, ob Clean ( Clean ) und einige andere ausgeführt werden sollen. Wir werden nichts in den Parametern angeben - fastlane setzt die Parameter standardmäßig, sammelt und signiert ipa, aber noch einmal: Wenn gewünscht und notwendig, kann alles im Detail angegeben werden:


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number gym #    : # # gym( # workspace: "TheHatGame.xcworkspace", # scheme: "TheHatGame", # configuration: "Release", # clean: true, # output_directory: "./build", # output_name: "TheHatGame.ipa", # codesigning_identity: "iPhone Distribution: Evgeny Shishko" # ) end end 

In TestFlight hochladen


Um ipa in TestFlight zu laden, verwenden wir Pilot :



Mit Pilot können Sie:


  • Laden Sie Baugruppen herunter und verteilen Sie sie
  • Betatester hinzufügen und entfernen;
  • Informationen über Tester und die von ihnen verwendeten Geräte erhalten;
  • Exportieren Sie Testerinformationen nach .csv, um sie in ein anderes Projekt zu importieren.

Wir werden seine Hauptfunktion verwenden: Senden von Assemblys an Apple Store Connect .


Fügen Sie test_light uploadlt hinzu, um upload_to_testflight mit skip_submission- Parametern aufzurufen (wir verwenden es nur zum Hochladen der ipa-Datei) und skip_waiting_for_build_processing (wir warten nicht, bis die Verarbeitung abgeschlossen ist):


 default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number gym upload_to_testflight( skip_submission: true, skip_waiting_for_build_processing: true ) end end 

Führen Sie das endgültige Skript aus


Wir speichern unsere Änderungen und laufen von der Konsole aus:


 $ fastlane testflight_lane 

In der Phase des Sendens an Testflight müssen Sie das app-spezifische Kennwort in die Konsole eingeben (das für die Autorisierung im Application Loader erforderlich ist). Sie finden es in Ihrem Apple ID- Konto, indem Sie es generieren, indem Sie auf "Passwort generieren" klicken:



Nach Eingabe des Kennworts wird die neue Assembly erfolgreich in TestFlight geladen und die Fastlane endet dort:




Der Status der neuen Version kann im App Store Connect angezeigt werden:




Fazit


Das ist alles! Ich möchte darauf hinweisen, dass wir in diesem Artikel im Allgemeinen die Funktionen von Fastlane ausprobiert haben. In diesem Zusammenhang füge ich eine Umfrage bei: Werden Sie, Chabrowiten, an Beiträgen über die detaillierte Verwendung der genannten und anderer nützlicher Befehle in Fastlane und erweiterten Funktionen beim Einrichten von Skripten interessiert sein?


Die Anwendung mit der vorgestellten Fastlane-Einstellung finden Sie hier .

Source: https://habr.com/ru/post/de424023/


All Articles