Continuous Delivery Mit fastlane für iOS

Einführung

iOS-Entwickler hatten das Glück, die robuste Entwicklungsplattform von Apple zu nutzen und mit ihr zu arbeiten, vor allem Xcode. Dies hat dazu beigetragen, die ansprechenden und leistungsstarken Apps zu begeistern, die die Verbraucher heute im App Store genießen. Xcode bietet eine intuitive IDE, die in Verbindung mit dem Aufkommen von Swift als einer wirklich modernen Programmiersprache die Programmierung auf der Plattform zum reinen Vergnügen gemacht hat.

Der Entwicklungsaspekt des Workflows ist zwar zusammenhängend, der Workflow ist jedoch nachteilig, wenn es um die Aufgaben geht, die mit der Codierung und dem Vertrieb von Apps zusammenhängen. Dies ist ein seit langem bestehendes Problem für die Plattform, und obwohl es sich schrittweise verbessert hat, ist es für fast alle Entwickler immer noch ein Engpass. Dies hat die kontinuierliche Bereitstellung von Apps in vielerlei Hinsicht erstickt, das heißt, dass täglich manuell und intern ein externes Erstellen und Verteilen von Apps erforderlich ist, was fehleranfällig und umständlich ist. 

Hier setzt fastlane an. Die fastlane-Toolsuite erleichtert das Verteilen von Apps. Entwickler können sich auf ihre Apps konzentrieren und das Tooling Aufgaben wie das Verwalten von Bereitstellungsprofilen und Zertifikaten sowie das Erstellen, Packen und Verteilen von Apps übernehmen. Eine von fastlanes Toolchains ist eine clientseitige, automatisierte, schlüsselfertige Continuous Delivery-Lösung, die iOS-Entwickler nutzen können, um sicherzustellen, dass ihre Apps von anderen laufend getestet und validiert werden. 

Fastlane wurde von Felix Krause (@krausefx) entwickelt und besteht aus einer Open-Source-Suite von Tools, die die Automatisierung beim Erstellen und Bereitstellen von iOS-Apps über die Befehlszeile sowie die Integration mit verschiedenen Bibliotheken von Drittanbietern zusätzlich zu Apples eigenen APIs vereint . Fastlane ist eine Kult-Toolkette unter iOS-Entwicklern und wird von Google unterstützt. Durch die Automatisierung vieler manueller täglicher und wöchentlicher Aufgaben sparen Sie viel Zeit.

In diesem Tutorial werden wir zwei sehr beliebte Funktionen von fastlane kennenlernen: Code-Signing und Packen / Verteilen von Apps.

Ziele dieses Tutorials

Dieses Tutorial führt Sie in die Fastlane-Toolchain ein und zeigt, wie Sie das Tool zur Automatisierung und Optimierung Ihres iOS-Entwicklungsworkflows einsetzen können. Du wirst es lernen:

  • die Grundlagen für den Einstieg in fastlane
  • Code, der Ihre App signiert
  • Verpacken und Verteilen Ihrer App

Angenommenes Wissen

Dieses Tutorial setzt voraus, dass Sie über Kenntnisse in der Entwicklung von Swift und iOS verfügen, obwohl Sie in diesem Tutorial keine Swift-Codierung durchführen. Sie werden die Eingabeaufforderung verwenden, um Fastlane-Befehle zu erstellen und auszuführen. 

Erste Schritte mit fastlane

Die Fastlane-Toolchain ist im Wesentlichen in Ruby geschrieben und stellt über die Ruby-Bibliothek des Raumschiffes eine Verbindung zum Apple Developer Center und zur iTunes Connect-API her, um Benutzer sicher zu authentifizieren und zu autorisieren. Es dient der Erstellung einer Konfigurationsdatei, der sogenannten Fastfile, die Sie sich als Rezeptdatei vorstellen können, in der Sie die Aktionen festlegen, die beim Erstellen der App ausgeführt werden sollen. Diese Aktionen sind in "Bahnen" organisiert. Beispielsweise würden Sie eine Spur für die Bereitstellung im App Store und eine andere Spur für die Verteilung an TestFlight konfigurieren. Eine Spur könnte aus folgenden Einzelaktionen bestehen:

  1. bau dein projekt
  2. Erhöhen der Build-Nummer
  3. laufende Unit-Tests
  4. Senden Sie Ihre .ipa zu TestFlight
  5. Senden einer Slack-Nachricht an Ihr Team

Sie können sich Bahnen als Funktionen vorstellen, die verwandte Aufgaben gruppieren. Sie können die Methoden der Spuren auch von einer anderen Methode aus aufrufen, um Ihre Spuren weiter zu entkoppeln und wiederzuverwenden. 

Bevor wir jedoch in die Fastlane-Aktionen eintauchen, müssen Sie Ihre Umgebung für die Verwendung von Fastlane einrichten.

Fastlane einrichten

Stellen Sie sicher, dass Sie die neueste Version von Xcode installiert haben. Sie müssen außerdem Xcode Tools auf Ihrem System installiert haben. Sie können prüfen, ob Xcode Tools installiert ist, indem Sie im Terminal Folgendes eingeben:

xcode-select -p

Wenn Sie den vollständigen Pfad zu Ihrem Entwicklerordner zurückerhalten, können Sie loslegen. Sie sollten etwas wie das Folgende sehen.

$ /Applications/Xcode.app/Contents/Developer

Andernfalls erhalten Sie die neueste Version der Xcode-Befehlszeilentools, indem Sie Folgendes in terminal eingeben:

xcode-select --install

Sie sollten eine Aufforderung ähnlich der folgenden erhalten: 

Als Nächstes müssen Sie Homebrew installieren. Homebrew ist ein leistungsstarker Paket-Manager, mit dem Sie hunderte von Open-Source-Tools installieren können, darunter fastlane. Um Homebrew zu installieren, geben Sie Folgendes in die Befehlszeile ein:

/ usr / bin / ruby ​​-e "$ (curl -fsSL https://raw.githubusercontent.com/

Sobald Homebrew eingerichtet ist, können Sie fastlane installieren, indem Sie Folgendes eingeben:

Brühbehälter installieren Fastlane

Wenn Sie Homebrew nicht installieren möchten, können Sie fastlane über Ruby direkt im Terminal installieren, indem Sie Folgendes eingeben:

sudo gem installieren fastlane -NV

Um zu bestätigen, dass fastlane auf Ihrem System installiert und bereit ist, geben Sie im Terminal den folgenden Befehl ein, um eine neue fastlane-Konfigurationsdatei zu initialisieren:

fastlane init

Sie werden aufgefordert, Ihre Apple-ID einzugeben, damit sich fastlane nahtlos mit iTunes Connect verbinden kann. Füllen Sie alle weiteren Fragen aus und Sie sehen eine neue /Überholspur Unterverzeichnis für Sie erstellt. Sie werden sich in erster Linie mit dem beschäftigen / fastlane / fastfile Konfigurationsdatei, in der Sie alle Fastlane-Aktionen koordinieren werden. 

Schauen Sie sich die Datei kurz an. Sie werden in den nächsten Abschnitten damit arbeiten, beginnend mit der Konfiguration von fastlane, um Ihre Apps mit Code zu signieren. 

Code, der Ihre Apps signiert

Eine der beliebtesten Funktionen von fastlane als Toolchain besteht darin, dass Sie Ihre Apps automatisch mit einem Code signieren können, sodass Sie sich nicht mit Zertifikaten und Bereitstellungsprofilen befassen müssen. Dies kann eine Menge Arbeit sein, und wenn Sie die Maschinen wechseln oder ein neues Teammitglied an Bord nehmen, müssen Sie es noch einmal tun. Fastlane bietet drei Aktionen, die Sie bei der Verwaltung Ihrer Codesignatur unterstützen: cert, seufz und Übereinstimmung. 

cert ist zwar für sich allein nützlich, arbeitet jedoch in der Regel mit seufzend zusammen, um den Code zum Signieren Ihrer App abzuschließen, indem Sie Ihre Zertifikate bzw. Bereitstellungsprofile verwalten. Es erstellt nicht nur das Zertifikat für Sie, sondern generiert bei Bedarf automatisch eine neue Signaturanforderung für den privaten Schlüssel. Außerdem wird das Zertifikat abgerufen und in Ihrem Schlüsselbund installiert, um sicherzustellen, dass Ihr Zertifikat bei jeder Ausführung von cert gültig ist. 

sigh erstellt für Ihr Zertifikat das entsprechende Bereitstellungsprofil für Entwicklung, Ad-hoc oder App Store. Wie cert stellt sigh sicher, dass dieses Bereitstellungsprofil aktuell bleibt, abgerufen und in Ihrem Schlüsselbund installiert wird. Zusammen bilden diese beiden das Code-Signing-Paar für Ihre App. Aber bevor Sie lernen, wie man cert und seufzt, gibt es eine weitere verwandte Aktion, die ich einführen möchte: match. 

match kombiniert die beiden vorherigen Aktionen, ermöglicht es Ihnen jedoch, Ihre Code-Signing-Identität über Ihr eigenes GitHub-Repository sicher und privat über Ihr Team oder über mehrere Computer hinweg zu teilen, indem Sie alle erforderlichen Zertifikate und Profile erstellen, sodass neue Mitglieder diese Berechtigungsnachweise einfach erhalten können den fastlane-Befehl aufrufen Spiel. Weitere Informationen zum Übereinstimmungskonzept finden Sie in der neuen Anleitung zur Codesignatur.

Führen Sie den folgenden Befehl aus, um mit cert zu beginnen: 

fastlane cert

In ähnlicher Weise seufzen:

fastlane seufzen

Wenn Sie eine Liste der Optionen anzeigen möchten, die cert oder sigh anbietet, können Sie dies mit den folgenden Befehlen tun:

fastlane action cert… fastlane action seufzen

Sie können diese Befehle nicht nur ad hoc ausführen, sondern auch eine oder beide Aktionen als Teil Ihres automatisierten Workflows in die bereits erwähnte Fastfile-Konfigurationsdatei aufnehmen:

lane: testApp do cert # oder der Alias ​​get_certificates seufzt # oder der Alias ​​get_provisioning_profile

Sie können dann die gesamte Spur ausführen, indem Sie den folgenden Befehl ausgeben:

fastlane TestApp

Mit zwei einfachen Zeilen profitieren Sie jetzt davon, dass Ihre Zertifikate und Bereitstellungsprofile für Sie erstellt und automatisch gepflegt werden. Als Nächstes erfahren Sie, wie fastlane Ihre Apps packen und verteilen kann.

Verpacken und verteilen Sie Ihre Apps 

Die nächsten beiden Aktionen, die Sie kennenlernen werden, sind "Gymnastik" und "Übertragen". Diese werden Sie nutzen, um Ihre App zu entwickeln, zu verpacken und an TestFlight oder den App Store zu verteilen. gym erstellt und verpackt Ihre App über eine einzige Befehlszeile und generiert eine signierte ipa-Datei für Sie. 

Wenn Sie dies als Teil Ihrer Fastfile-Software automatisieren, können Sie durch einen kontinuierlichen Integrationsworkflow das Erstellen und Packen auslösen und die neueste Version Ihrer App täglich oder stündlich in den Händen der Benutzer haben. Um Ihre App über fastlane zu packen, können Sie einfach Folgendes ausführen:

Fastlane Fitnessstudio

Um einen bestimmten Arbeitsbereich und ein bestimmtes Schema anzugeben, können Sie die folgenden optionalen Parameter hinzufügen:

fastlane gym - workspace "YourApp.xcworkspace" --scheme "AppSchemeName" 

So wie Fastfile, fastlane bietet eine praktische Konfigurationsdatei mit dem Namen a Gymfile Hier können Sie alle Ihre Build-spezifischen Befehle speichern, wie z. B. Ihren Arbeitsbereich, Schemata und mehr. Dadurch müssen Sie das nicht jedes Mal eingeben, oder Sie müssen es in Ihrem anzeigen Fastfile Konfigurationsdatei. Ein neues erstellen Gymfile, Geben Sie einfach Folgendes ein:

Fastlane Gym init

Sie können diese Datei dann bearbeiten und die für Ihr Projekt erforderlichen Konfigurationsparameter eingeben.

Als Nächstes übernimmt das Übernehmen, wo das Fitnessstudio aufgehört hat, indem es Ihr verteilt .ipa Datei, ohne dass Sie Xcode durchlaufen müssen. Als Gegenstück zum Fitnessstudio ist Deliver nicht nur in der Lage, Ihre Leistung zu liefern .ipa Binärdatei lädt aber auch Ihre Screenshots und Metadaten zu iTunes Connect für Sie hoch und übermittelt Ihre App an den App Store. 

Die Aktion kann auch Ihre vorhandenen Screenshots und Metadaten von iTunes Connect herunterladen. Der einfachste Aktionsbefehl lautet:

fastlane liefern init

Das Endergebnis ist ein Metadaten- und Screenshot-Ordner zusammen mit der Konfigurationsdatei Lieferungsdatei, das ist ähnlich dem Gymfile und Fastfile

Sie können dann den Inhalt dieser Unterordner ändern, um Ihre App-Metadaten zu ändern. Um Ihre Metadaten hochzuladen, führen Sie Folgendes aus:

Fastlane liefern

Um Ihre App zur Überprüfung einzureichen, hängen Sie die folgenden Parameter an:

fastlane deliver --ipa "App.ipa" --submit_for_review

Fügen Sie zum Herunterladen von Metadaten oder Screenshots die folgenden Parameter hinzu:

fastlane liefert download_metadata… fastlane liefert download_screenshots

Sie können Ihre Screenshots innerhalb von ändern /Screenshots Unterordner, aber Fastlane bietet eine weitere Aktion, mit der Sie das Erstellen von Screenshots automatisieren können. Obwohl Screenshots außerhalb des Umfangs dieses Artikels liegen, können Sie dies in einem zukünftigen Fastlane-Artikel erfahren. 

Wie bei den vorherigen Aktionen können Sie entweder ein Fitnessstudio betreiben und selbst liefern oder es als Teil Ihres Automatisierungsworkflows hinzufügen Fastfile:

Lane: TestApp do cert sigh gym (Schema: "AppSchemeName", Arbeitsbereich: "YourApp.xcworkspace") # Alias ​​für "build_ios_app" Slack End

Fazit

Durch die kontinuierliche Bereitstellung durch Automatisierung entlastet fastlane iOS-Entwickler mit einer schlüsselfertigen Lösung für das Erstellen, Verpacken, Verteilen, Code-Signieren, Erstellen von Screenshots und vielem mehr. In diesem Lernprogramm wird nur die Oberfläche dessen, was mit fastlane möglich ist, verkratzt. In den folgenden Artikeln werden weitere Aktionen erläutert, die Sie zur weiteren Automatisierung und Optimierung Ihres Workflows implementieren können. 

Von der Erstellung lokalisierter Screenshots bis hin zur umfassenden Integration mit prominenten Tools wie Jenkins CI, Git, Crashlytics, HockeyApp und Slack ist fastlane genauso wichtig wie CocoaPods für Ihr iOS-Entwicklungswerkzeug. Es verfügt über eine robuste Community von Drittanbieter-Plugins und wird auch von Google unterstützt.

In meinem Buch Continuous Delivery for Mobile With fastlane, das bei Packt Publishing erhältlich ist, erfahren Sie alles über die Kunst der kontinuierlichen Zustellung und des Fastlane.

Und während Sie hier sind, lesen Sie einige unserer anderen Beiträge zur iOS-App-Entwicklung!