Mit fastlane, einer Open-Source-Plattform, mit der das Erstellen und Veröffentlichen von iOS- und Android-Apps automatisiert wird, können Sie Builds an Tester verteilen. Es folgt einer einfachen Anleitung, die in einer Fastfile
definiert ist. Nachdem du fastlane und deine Fastfile
eingerichtet hast, kannst du App Distribution in deine fastlane-Konfiguration einbinden.
Schritt 1: fastlane einrichten
Wenn Sie App Distribution Ihrer Fastlane-Konfiguration hinzufügen möchten, führen Sie den folgenden Befehl im Stammverzeichnis Ihres iOS-Projekts aus:
fastlane add_plugin firebase_app_distribution
Wenn Sie nach einer Option gefragt werden, wählen Sie
Option 3: RubyGems.org
aus.
Schritt 2: Mit Firebase authentifizieren
Bevor Sie das Fastlane-Plug-in verwenden können, müssen Sie sich auf eine der folgenden Arten mit Ihrem Firebase-Projekt authentifizieren. Standardmäßig sucht das Fastlane-Plug-in nach Anmeldedaten aus der Firebase CLI, wenn keine andere Authentifizierungsmethode verwendet wird.
Schritt 3: Fastfile einrichten und App verteilen
- Fügen Sie einer
./fastlane/Fastfile
-Fahrspur einenfirebase_app_distribution
-Block hinzu. Verwenden Sie die folgenden Parameter, um die Verteilung zu konfigurieren:Parameter „firebase_app_distribution“ app
Nur erforderlich, wenn Ihre App keine Firebase-Konfigurationsdatei (
GoogleService-Info.plist
) enthält: Die Firebase-App-ID Ihrer App. Sie finden die App-ID in der Firebase Console auf der Seite Allgemeine Einstellungen.app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path
Der Pfad zu Ihrer
GoogleService-Info.plist
-Datei relativ zum Pfad des archivierten Produkts. Standardmäßig aufGoogleService-Info.plist
festgelegt.Die Datei wird verwendet, um die Firebase App-ID Ihrer App abzurufen, wenn der Parameter
app
nicht angegeben ist.firebase_cli_token
Ein Aktualisierungstoken, das ausgegeben wird, wenn Sie Ihre CI-Umgebung mit der Firebase CLI authentifizieren. Weitere Informationen finden Sie unter CLI mit CI-Systemen verwenden.
service_credentials_file
Der Pfad zur JSON-Datei Ihres Google-Dienstkontos. Wie Sie sich mit den Anmeldedaten eines Dienstkontos authentifizieren, wird oben beschrieben.
ipa_path
Ersetzt
apk_path
(eingestellt). Absoluter Pfad zur IPA-Datei, die Sie hochladen möchten. Wenn Sie keinen Speicherort angeben, ermittelt fastlane den Speicherort der Datei anhand der Lane, in der die Datei generiert wurde.release_notes
release_notes_file
Versionshinweise für diesen Build.
Sie können die Versionshinweise entweder direkt angeben:
release_notes: "Text of release notes"
Alternativ können Sie den Pfad zu einer Klartextdatei angeben:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_file
Die E-Mail-Adressen der Tester, die Sie einladen möchten.
Sie können die Tester als durch Kommas getrennte Liste von E-Mail-Adressen angeben:
testers: "ali@example.com, bri@example.com, cal@example.com"
Sie können auch den Pfad zu einer Nur-Text-Datei angeben, die eine durch Kommas getrennte Liste von E-Mail-Adressen enthält:
testers_file: "/path/to/testers.txt"
groups
groups_file
Die Testergruppen, die Sie einladen möchten (siehe Tester verwalten). Gruppen werden mit
Gruppenaliassen angegeben, die Sie in der Firebase-Konsole nachschlagen können.Sie können die Gruppen in einer durch Kommas getrennten Liste angeben:
groups: "qa-team, trusted-testers"
Alternativ können Sie den Pfad zu einer Nur-Text-Datei angeben, die eine durch Kommas getrennte Liste von Gruppennamen enthält:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
Die folgenden Verteilungstypen sind Teil der Betafunktion „Automatischer Tester“.
Die Testgeräte, auf die Sie Builds verteilen möchten (siehe Automatisierte Tests).
Sie können die Testgeräte als durch Semikolons getrennte Liste angeben:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
Alternativ können Sie den Pfad zu einer Nur-Text-Datei angeben, die eine durch Semikolons getrennte Liste von Testgeräten enthält:
test_devices_file: "/path/to/test-devices.txt"
test_username
Der Nutzername für die automatische Anmeldung bei automatischen Tests.
test_password
test_password_file
Das Passwort für die automatische Anmeldung bei automatisierten Tests.
Sie können auch den Pfad zu einer Nur-Text-Datei mit einem Passwort angeben:
test_password_file: "/path/to/test-password.txt"
test_username_resource
Ressourcenname für das Feld „Nutzername“ für die automatische Anmeldung bei automatisierten Tests.
test_password_resource
Ressourcenname für das Passwortfeld für die automatische Anmeldung, das bei automatisierten Tests verwendet werden soll.
test_non_blocking
Automatisierte Tests asynchron ausführen. Die Ergebnisse des automatischen Tests finden Sie in der Firebase Console.
debug
Ein boolescher Wert. Sie können diesen Wert auf
true
setzen, um eine ausführliche Debug-Ausgabe zu erhalten.
Beispiel:
platform :ios do desc "My awesome app" lane :distribute do build_ios_app(...) # build_ios_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:ios:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!" ) end end
Führen Sie die folgenden Schritte aus, um den Build für Tester verfügbar zu machen:
fastlane <lane>
Der Rückgabewert der Aktion ist ein Hashwert, der die hochgeladene Version darstellt.
Dieser Hash ist auch mit lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
verfügbar.
Weitere Informationen zu den verfügbaren Feldern in diesem Hash finden Sie in der REST API-Dokumentation.
Das Fastlane-Plug-in gibt nach dem Upload der Release-Version die folgenden Links aus. Über diese Links können Sie Binärdateien verwalten und dafür sorgen, dass Tester und andere Entwickler die richtige Version haben:
- Ein Link zur Firebase-Konsole mit einer einzelnen Version. Sie können diesen Link mit anderen Entwicklern in Ihrer Organisation teilen.
- Ein Link zum Release in der Testeroberfläche (iOS-Webclip), über den Tester die Versionshinweise aufrufen und die App auf ihrem Gerät installieren können. Der Tester benötigt Zugriff auf das Release, um den Link verwenden zu können.
- Ein signierter Link, über den die App-Binärdatei (IPA-Datei) direkt heruntergeladen und installiert wird. Der Link läuft nach einer Stunde ab.
Nachdem Sie Ihren Build bereitgestellt haben, ist er 150 Tage lang im App Distribution-Dashboard der Firebase-Konsole verfügbar. 30 Tage vor Ablauf des Builds wird in der Konsole und in der Liste der Builds des Testers auf seinem Testgerät eine entsprechende Benachrichtigung angezeigt.
Tester, die zuvor nicht zum Testen der App eingeladen wurden, erhalten eine E-Mail-Einladung. Vorhandene Tester erhalten eine E-Mail-Benachrichtigung, dass ein neuer Build zum Testen bereit ist. Informationen zum Installieren der Test-App finden Sie unter Als Tester einrichten. In der Firebase-Konsole können Sie den Status der einzelnen Tester prüfen, um festzustellen, ob sie die Einladung angenommen und die App heruntergeladen haben.
Optional: Wenn die Build-Nummer jedes Mal automatisch erhöht werden soll, wenn Sie einen neuen Release in der App-Bereitstellung erstellen, können Sie die Aktion firebase_app_distribution_get_latest_release
und die Aktion increment_build_number
verwenden.
Im folgenden Codebeispiel wird gezeigt, wie die Build-Nummer automatisch erhöht wird:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
Weitere Informationen zu dieser Fastlane-Plug-in-Funktion finden Sie unter Informationen zum neuesten Release Ihrer App abrufen.
Schritt 4 (optional) Tester für die Verteilung verwalten
Sie können Tester über die Datei Fastfile
oder durch direkte Ausführung von Fastlane-Aktionen zu Ihrem Projekt oder Ihrer Gruppe hinzufügen oder daraus entfernen. Wenn Sie Aktionen direkt ausführen, werden die in Ihrer Fastfile
festgelegten Werte überschrieben.
Nachdem ein Tester Ihrem Firebase-Projekt hinzugefügt wurde, können Sie ihn einzelnen Releases hinzufügen. Tester, die aus Ihrem Firebase-Projekt entfernt werden, haben keinen Zugriff mehr auf Releases in Ihrem Projekt. Möglicherweise behalten sie jedoch für einen bestimmten Zeitraum Zugriff auf Ihre Releases.
Wenn Sie eine große Anzahl von Testern haben, sollten Sie Gruppen verwenden.
Fastfile
verwenden
# Use lanes to add or remove testers from a project. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) add testers to this group ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) remove testers from this group only ) end
# Add or remove testers with the terminal $ fastlane add_testers $ fastlane remove_testers
Fastlane-Aktionen ausführen
fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"
Sie können Tester auch mit --file="/path/to/testers.txt
anstelle von --emails
angeben.
Für die Aufgaben firebase_app_distribution_add_testers
und firebase_app_distribution_remove_testers
sind außerdem die folgenden Argumente zulässig:
project_name
: Ihre Firebase-Projektnummer.group_alias
(optional): Wenn angegeben, werden die Tester der angegebenen Gruppe hinzugefügt oder daraus entfernt.service_credentials_file
: Der Pfad zur Anmeldedatendatei für Google-Dienste.firebase_cli_token
: Authentifizierungstoken für die Firebase-Befehlszeile.
service_credentials_file
und firebase_cli_token
sind dieselben Argumente, die von der Upload-Aktion verwendet werden.
Schritt 5 (optional): Informationen zur neuesten Version Ihrer App abrufen
Mit der Aktion firebase_app_distribution_get_latest_release
können Sie Informationen zum neuesten Release Ihrer App in der App-Distribution abrufen, einschließlich Informationen zur App-Version, Versionshinweisen und Erstellungszeit. Anwendungsfälle umfassen das automatische Erhöhen der Version und das Übertragen der Release-Hinweise aus dem vorherigen Release.
Der Rückgabewert der Aktion ist ein Hashwert, der den neuesten Release darstellt.
Dieser Hash ist auch mit lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
verfügbar.
Weitere Informationen zu den verfügbaren Feldern in diesem Hash finden Sie in der REST API-Dokumentation.
Parameter
Parameter für „firebase_app_distribution_get_latest_release“ | |
---|---|
app
|
Nur erforderlich, wenn Ihre App keine Firebase-Konfigurationsdatei ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path
|
Der Pfad zu Ihrer
Die Datei wird verwendet, um die Firebase App-ID Ihrer App abzurufen, wenn der Parameter |
firebase_cli_token
|
Ein Aktualisierungstoken, das ausgegeben wird, wenn Sie Ihre CI-Umgebung mit der Firebase CLI authentifizieren. Weitere Informationen finden Sie unter CLI mit CI-Systemen verwenden. |
service_credentials_file
|
Der Pfad zur JSON-Datei Ihres Google-Dienstkontos. Weitere Informationen zur Authentifizierung mithilfe von Anmeldedaten für Dienstkonten finden Sie in der vorherigen Dokumentation. |
service_credentials_json_data
|
Inhalt der JSON-Datei des Google-Dienstkontos. Weitere Informationen zur Authentifizierung mithilfe von Anmeldedaten für Dienstkonten finden Sie in der vorherigen Dokumentation. |
debug
|
Ein boolescher Wert. Sie können diesen Wert auf |
Nächste Schritte
Informationen zum manuellen oder programmatischen Registrieren weiterer Geräte finden Sie unter Zusätzliche iOS-Geräte registrieren.
Best Practices für die Bereitstellung von Apple-Apps für QA-Tester mit CI/CD und Fastlane