Automatische iOS-Builds mit GitHub Aktionen mithilfe von Match
Die Einrichtung einer CI/CD-Pipeline für Capacitor-Anwendungen kann komplex und zeitaufwändig sein. Hier sind die wichtigsten Informationen:
Empfohlen für Neubauten: Verwenden Sie den Capgo-Build
Wir empfehlen nun die Verwendung Capgo Build mit der Capgo CLI für native Capacitor Builds. Diese Anleitung zu Fastlane Match wird für Teams aufrechterhalten, die bestehende GitHub Actions Pipelines weiterhin unterhalten, aber neue iOS Builds sollten die Capgo CLI verwenden, damit Sie Fastlane, Match-Repository, Xcode-Runner, Zertifikate und Upload-Skripte nicht selbst pflegen müssen.
Capgo Build für CI/CD durch Capgo
Vermeiden Sie die Pflege von Fastlane Match, Xcode-Runner, Zertifikaten, Berechtigungsprofilen und Upload-Skripten. Capgo Build führt signierte native iOS Builds von Ihrem bestehenden CI/CD-Pipeline aus:
- Funktioniert mit Ihrer Pipeline: Auslösen Sie Capgo Build von GitHub Actions, GitLab CI, Jenkins oder lokalen Skripten nach Ihrem Web-Build und
npx cap sync. - Signieren von CI-Secrets: Halten Sie App Store Connect-Schlüssel, Zertifikate, Berechtigungsprofile, Passwörter und Team-IDs in Ihren eigenen CI-Secrets.
- Keine native Runner-Pflege: Capgo Build bietet gepflegte Apple-Build-Umgebungen, sodass Sie macOS-Runner, Xcode-Bilder, Fastlane oder Match-Repositories nicht selbst verwalten müssen.
- Kunstwerke und Einreichung: Laden Sie signierte Artefakte für QA herunter oder übermitteln Sie Freigabebauwerke über den Capgo CLI.
Preise
- Unsere Capgo-Pläne beginnen bei 12 €/Monat
- Inklusive OTA-Updates und etwa 15 native Builds pro Monat
- Zusätzliche Build-Minuten werden nach Minute über Kredite abgerechnet
Einrichten Sie Capgo Build in CI/CD
Manuelle Einrichtungsanleitung
Hier ist, was Sie tun müssen:
Kontinuierliche Lieferung für iOS mit Fastlane und GitHub-Aktionen mit match
Voraussetzungen
Bevor Sie mit der Anleitung fortfahren…
- Stellen Sie sicher, dass Sie Fastlane installiert haben
- auf Ihrem Entwicklungssystem.
- Mitgliedschaft im iOS-Entwicklerprogramm.
- Wunsch, zu lesen 😆… Ein Team aus vielen Entwicklern, andernfalls empfehlen wir Ihnen, fastlane cert
für einfache Workflows zu verwenden.

Die Dienstleistung ist ‘kostenlos’ bis zur Grenze, abhängig von der gewählten Maschine.
Wir werden eine macOS Maschine verwenden, Sie können im Screenshot ihren Preis und Grenzen (Preise zum Zeitpunkt der Erstellung des Tutorials, sie könnten sich in Zukunft ändern) sehen.
🔴 Nachdem wir auf die Anforderungen und Preise hingewiesen haben, wenn Sie möchten, gehen wir weiter…
📣 In dem Beitrag nehmen wir an, dass wir die App in iTunes Connect erstellt haben, wir haben die Zertifikate des Apple-Ökosystems, alles wird von Fastlane kopiert!
Lassen Sie uns loslegen!
Schritte, die in dem Beitrag beschrieben werden
- Verwendung von App Store Connect API mit Fastlane Match
- Anforderungen
- Erstellung eines App Store Connect API-Schlüssels
- Verwendung eines App Store Connect API-Schlüssels
- Datei kopieren
- Fastlane match konfigurieren
1. Verwenden Sie ab Februar 2021 App Store Connect API mit Fastlane Match
Ab Februar 2021 ist für alle Benutzer eine zweifaktor-Authentifizierung oder eine zweistufige Überprüfung erforderlich, um sich bei App Store Connect anzumelden. Diese zusätzliche Sicherheitsebene für Ihr Apple-Konto hilft sicherzustellen, dass Sie der einzige sind, der Zugriff auf Ihr Konto hat.
Von Apple-Support
Um mit match zu beginnen, müssen Sie Ihre bestehenden Zertifikate widerrufen. Keine Sorge, Sie erhalten das neue direkt.
Anforderungen
Um App Store Connect API verwenden zu können, benötigt Fastlane drei Dinge.
- Zertifizierungsstelle-ID.
- Schlüssel-ID.
- Schlüsseldatei oder Schlüsselinhalt.
Erstellung eines App Store Connect API-Schlüssels
Um Schlüssel zu generieren, müssen Sie Admin-Berechtigungen in App Store Connect haben. Wenn Sie diese Berechtigung nicht haben, können Sie den relevanten Personen diesen Artikel zukommen lassen und die folgenden Anweisungen befolgen.
1 — Anmeldung bei App Store Connect.
2 — Auswahl von Benutzer und Zugriff.

3 — Auswahl des Reiter "Integration".

4 — Click Generate API Key or the Add (+) button.

5 — Geben Sie einem Schlüssel einen Namen. Der Name dient nur Ihrer Referenz und ist nicht Teil des Schlüssels selbst.

6 — Unter Zugriff wählen Sie die Rolle für den Schlüssel aus. Die Rollen, die auf Schlüssel angewendet werden, sind dieselben Rollen, die auf Benutzer in Ihrem Team angewendet werden. Siehe Zugriffsrechte. Wir empfehlen, App-Manager.
7 — Klicken Sie auf Generieren.
Ein API Schlüssels Zugriff kann nicht auf bestimmte Apps beschränkt werden.
Der neue Schlüssels Name, Schlüssel-ID, ein Download-Link und weitere Informationen erscheinen auf der Seite.

Hier können Sie alle drei notwendigen Informationen abrufen.
<1> Issue-Nummer.
<2> Schlüssel-Nummer.
<3> Klicken Sie auf "Download API-Schlüssel" zum Herunterladen Ihres API privaten Schlüssels. Der Download-Link erscheint nur, wenn der private Schlüssel noch nicht heruntergeladen wurde. Apple hält keinen Kopie des privaten Schlüssels. Daher können Sie ihn nur einmal herunterladen.
🔴 Speichern Sie Ihren privaten Schlüssel an einem sicheren Ort. Sie sollten Ihre Schlüssel niemals teilen, Schlüssel in einem code-Repository speichern oder Schlüssel in Client-Seiten code einbeziehen.
Verwendung eines App Store Connect API-Schlüssels
Das API-Schlüssel-Datei (p8-Datei, die Sie herunterladen), die Schlüssel-Nummer und die Aussteller-Nummer sind erforderlich, um den JWT-Token für die Autorisierung zu erstellen. Es gibt mehrere Möglichkeiten, diese Informationen in Fastlane einzugeben, indem man sich auf die neue Aktion von Fastlane bezieht. app_store_connect_api_key. Sie können andere Möglichkeiten in Fastlane-Dokumentation. Ich zeige Ihnen diese Methode, weil ich glaube, dass sie die einfachste Möglichkeit ist, um mit den meisten CI auszukommen, wo Sie Umgebungsvariablen setzen können.
Jetzt können wir Fastlane mit dem App Store Connect API-Schlüssel verwalten, großartig!
2. Kopieren Sie Fastlane-Dateien
Fastlane ist eine Ruby-Bibliothek, die zum Automatisieren von mobilen Entwicklungsarbeiten erstellt wurde. Mit Fastlane können Sie benutzerdefinierte "Bahnen" konfigurieren, die eine Reihe von "Aktionen" enthalten, die Aufgaben ausführen, die Sie normalerweise mit Android Studio ausführen würden. Mit Fastlane können Sie eine Menge tun, aber für die Zwecke dieses Tutorials werden wir nur eine Handvoll grundlegender Aktionen verwenden.
Erstellen Sie einen Ordner namens Fastlane im Root Ihres Projekts und kopieren Sie die folgenden Dateien: Fastfile
default_platform(:ios)
DEVELOPER_APP_IDENTIFIER = ENV["DEVELOPER_APP_IDENTIFIER"]
DEVELOPER_APP_ID = ENV["DEVELOPER_APP_ID"]
PROVISIONING_PROFILE_SPECIFIER = ENV["PROVISIONING_PROFILE_SPECIFIER"]
TEMP_KEYCHAIN_USER = ENV["TEMP_KEYCHAIN_USER"]
TEMP_KEYCHAIN_PASSWORD = ENV["TEMP_KEYCHAIN_PASSWORD"]
APPLE_ISSUER_ID = ENV["APPLE_ISSUER_ID"]
APPLE_KEY_ID = ENV["APPLE_KEY_ID"]
APPLE_KEY_CONTENT = ENV["APPLE_KEY_CONTENT"]
GIT_USERNAME = ENV["GIT_USERNAME"]
GIT_TOKEN = ENV["GIT_TOKEN"]
def delete_temp_keychain(name)
delete_keychain(
name: name
) if File.exist? File.expand_path("~/Library/Keychains/#{name}-db")
end
def create_temp_keychain(name, password)
create_keychain(
name: name,
password: password,
unlock: false,
timeout: 0
)
end
def ensure_temp_keychain(name, password)
delete_temp_keychain(name)
create_temp_keychain(name, password)
end
platform :ios do
lane :build do
build_app(
configuration: "Release",
workspace: "./ios/App/App.xcworkspace",
scheme: "App",
export_method: "app-store",
export_options: {
provisioningProfiles: {
DEVELOPER_APP_ID => "#{PROVISIONING_PROFILE_SPECIFIER}"
}
}
)
end
lane :refresh_profiles do
match(
type: "development",
force: true)
match(
type: "adhoc",
force: true)
end
desc "Register new device"
lane :register_new_device do |options|
device_name = prompt(text: "Enter the device name: ")
device_udid = prompt(text: "Enter the device UDID: ")
device_hash = {}
device_hash[device_name] = device_udid
register_devices(
devices: device_hash
)
refresh_profiles
end
lane :closed_beta do
keychain_name = TEMP_KEYCHAIN_USER
keychain_password = TEMP_KEYCHAIN_PASSWORD
ensure_temp_keychain(keychain_name, keychain_password)
api_key = app_store_connect_api_key(
key_id: APPLE_KEY_ID,
issuer_id: APPLE_ISSUER_ID,
key_content: APPLE_KEY_CONTENT,
duration: 1200,
in_house: false
)
match(
type: 'appstore',
git_basic_authorization: Base64.strict_encode64("#{GIT_USERNAME}:#{GIT_TOKEN}"),
readonly: true,
keychain_name: keychain_name,
keychain_password: keychain_password,
api_key: api_key
)
gym(
configuration: "Release",
workspace: "./ios/App/App.xcworkspace",
scheme: "App",
export_method: "app-store",
export_options: {
provisioningProfiles: {
DEVELOPER_APP_ID => "#{PROVISIONING_PROFILE_SPECIFIER}"
}
}
)
pilot(
apple_id: "#{DEVELOPER_APP_ID}",
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
skip_waiting_for_build_processing: true,
skip_submission: true,
distribute_external: false,
notify_external_testers: false,
ipa: "./App.ipa"
)
delete_temp_keychain(keychain_name)
end
lane :submit_review do
version = ''
Dir.chdir("..") do
file = File.read("package.json")
data = JSON.parse(file)
version = data["version"]
end
deliver(
app_version: version,
submit_for_review: true,
automatic_release: true,
force: true, # Skip HTMl report verification
skip_metadata: false,
skip_screenshots: false,
skip_binary_upload: true
)
end
end
Appfile
app_identifier(ENV["DEVELOPER_APP_IDENTIFIER"])
apple_id(ENV["FASTLANE_APPLE_ID"])
itc_team_id(ENV["APP_STORE_CONNECT_TEAM_ID"])
team_id(ENV["DEVELOPER_PORTAL_TEAM_ID"])
Konfigurieren Sie Fastlane match
Fastlane match ist ein neuer Ansatz für die code-Signierung von iOS. Fastlane match erleichtert es Teams, die erforderlichen Zertifikate und Provisioning-Profile für Ihre iOS-Apps zu verwalten.
Erstellen Sie ein neues privates Repository mit dem Namen certificates, zum Beispiel auf Ihrem GitHub persönlichen Account oder Organisation.
Initialisieren Sie Fastlane match für Ihre iOS-App.
fastlane match init
Dann wählen Sie Option #1 (Git-Speicher).
[01:00:00]: fastlane match supports multiple storage modes, please select the one you want to use:1. git2. google_cloud3. s3?
Zuweisen Sie die URL des neu erstellten Repositorys.
[01:00:00]: Please create a new, private git repository to store the certificates and profiles there[01:00:00]: URL of the Git Repo: <YOUR_CERTIFICATES_REPO_URL>
Jetzt haben Sie im Fastlane-Ordner eine Datei mit dem Namen Matchdatei und
_git_url_sollte auf die HTTPS-URL des Zertifikats-Repositories gesetzt werden. Optional können Sie auch SSH verwenden, aber dafür ist ein anderer Schritt erforderlich.
# ios/Matchfilegit_url("https://github.com/gitusername/certificates")storage_mode("git")type("appstore")
Zu nächst gehen wir zur Erstellung der Zertifikate und geben Ihre Anmeldeinformationen ein, wenn Sie dazu aufgefordert werden, mit Fastlane Match.
Sie werden aufgefordert, einen Passwort zu erstellen. Denken Sie daran, es richtig zu speichern, da es später von GitHub-Aktionen zum Entschlüsseln Ihres Zertifikats-Repositories verwendet wird.
fastlane match appstore
Wenn alles gut gelaufen ist, sollten Sie etwas Ähnliches sehen:
[01:40:52]: All required keys, certificates and provisioning profiles are installed 🙌
Wenn Sie bei GitHub und den erforderlichen Berechtigungen Probleme hatten, kann diese Beitrag hilfreich sein, um Authentifizierungstoken für Git zu generieren.
Die generierten Zertifikate und Provisioning-Profile werden in den Ressourcen des Zertifikats-Repositories hochgeladen

Zuletzt öffnen Sie Ihr project in Xcode und aktualisieren Sie das Provisionierungsprofil für die Release-Konfiguration Ihrer App.

Einige Dinge zu beachten 💡
MATCH
Damit der CI/CD die Zertifikate und Provisionierungsprofile importieren kann, muss er Zugriff auf das Zertifikatsrepository haben. Sie können dies tun, indem Sie einen persönlichen Zugriffstoken (der vorher verwendet werden sollte) erstellen, der den Zugriff auf oder das Lesen von privaten Repositories ermöglicht.
In GitHub, gehen Sie zu Einstellungen → Entwickler-Einstellungen → Persönliche Zugriffstoken → klicken Sie Generate New Token → das Kontrollkästchen an repo Zugriff → klicken Sie dann Generate token.

Haben Sie eine Kopie des generierten persönlichen Zugriffstokens. Sie werden es später für die Umgebungsvariable verwenden GIT_TOKEN.
Dann ersetzen Sie Ihr Match-File, das in der Fastlane-Folder generiert wurde, durch Matchfile
CERTIFICATE_STORE_URL = ENV["CERTIFICATE_STORE_URL"]
GIT_USERNAME = ENV["GIT_USERNAME"]
GIT_TOKEN = ENV["GIT_TOKEN"]
FASTLANE_APPLE_ID = ENV["FASTLANE_APPLE_ID"]
git_url(CERTIFICATE_STORE_URL)
storage_mode("git")
type("appstore")
git_basic_authorization(Base64.strict_encode64("#{GIT_USERNAME}:#{GIT_TOKEN}"))
username(FASTLANE_APPLE_ID)
Dies wird von GitHub Actions verwendet, um die Zertifikate und Provisioning-Profile zu importieren. Und die Variable wird in GitHub Secrets gesetzt, anstatt sie in der Datei zu hardcoden
Build-Verarbeitung
In GitHub Actions Sie werden auf die Minuten abgerechnet, die Sie für die Ausführung Ihres CI/CD-Workflows verwendet haben. Aus Erfahrung dauert es etwa 10–15 Minuten, bevor ein Build in App Store Connect verarbeitet werden kann Für private Projekte kann die geschätzte Kosten pro Build bis zu
$0,08/min x 15 min = $1,2 , oder mehr, je nach Konfiguration oder Abhängigkeiten Ihres ProjektsWenn Sie dieselben Bedenken bezüglich der Preise haben wie ich für private Projekte, können Sie die
__CAPGO_KEEP_0__ Actions skip_waiting_for_build_processing zu true.
Was ist der Haken? Sie müssen die Einhaltung Ihrer App in App Store Connect manuell aktualisieren, nachdem die Verarbeitung der Build abgeschlossen ist, damit Sie die Build an Ihre Benutzer verteilen können.
Dies ist nur ein optionaler Parameter, um die Build-Minuten für private Projekte zu sparen. Für kostenlose Projekte sollte das kein Problem sein. Preise.
3. Konfiguration von GitHub
Konfiguration von GitHub-Geheimnissen
Haben Sie sich schon einmal gefragt, wo die Werte der ENV kommen her? Nun, es ist kein Geheimnis mehr – sie kommen aus Ihrem Projekts Geheimnis.

1. APP_STORE_CONNECT_TEAM_ID - die ID Ihres App Store Connect-Teams, wenn Sie in mehreren Teams sind.
2. DEVELOPER_APP_ID - in App Store Connect, gehen Sie zum App → App-Informationen → Scrollen Sie nach unten zur General Information Abschnitt Ihrer App und suchen Sie nach Apple ID.
3. DEVELOPER_APP_IDENTIFIER - Ihrer App-Bundle-Identifikationsnummer.
4. DEVELOPER_PORTAL_TEAM_ID - der ID Ihres Entwickler-Portal-Teams, wenn Sie in mehreren Teams sind.
5. FASTLANE_APPLE_ID - der Apple-ID oder Entwickler-E-Mail, die Sie zum Verwalten der App verwenden.
6. GIT_USERNAME & GIT_TOKEN - Ihren Git-Nutzernamen und Ihren persönlichen Zugriffstoken.
7. MATCH_PASSWORD - die Passphrase, die Sie bei der Initialisierung von match zugewiesen haben, wird zum Entschlüsseln der Zertifikate und Provisioning-Profile verwendet.
8. PROVISIONING_PROFILE_SPECIFIER - match AppStore <YOUR_APP_BUNDLE_IDENTIFIER>, z.B. match AppStore com.domain.blabla.demo.
9. TEMP_KEYCHAIN_USER & TEMP_KEYCHAIN_PASSWORD - Zuweisen Sie einem temporären Schlüsselkartenbenutzer und Passwort für Ihren Workflow.
10. APPLE_KEY_ID - App Store Connect API Schlüssel 🔺Schlüssel-ID.
11. APPLE_ISSUER_ID — App Store Connect API Schlüssel 🔺Issuer ID.
12. APPLE_KEY_CONTENT — App Store Connect API Schlüssel 🔺 Schlüsseldatei oder Schlüsselinhalt von .p8, Bei der App-Flow-Konfiguration müssen Sie Ihren App-Store-Connect-Zugriffsschlüssel und Ihren Issuer-Id bereitstellen. Dieser Schlüssel wird verwendet, um Ihre App im App Store zu veröffentlichen. Der Zugriffsschlüssel ist ein wichtiger Bestandteil der App-Store-Connect-Konfiguration und ermöglicht es Ihnen, Ihre App zu veröffentlichen und zu verwalten.
13. CERTIFICATE_STORE_URL check it https://github.com/***/fastlane_match.git)
https://GitHub.com/***/fastlane_match.git
4. Die GitHub-Workflow-Datei konfigurieren
cd .github/workflows
Erstellen Sie ein __CAPGO_KEEP_0__-Workflow-Verzeichnis. workflow Innerhalb des Verzeichnisses eine Datei mit dem Namen build-upload-ios.ymlerstellen und folgendes hinzufügen.
name: Build source code on ios
on:
push:
tags:
- '*'
jobs:
build_ios:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v6
- name: set Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: npm
- name: Install dependencies
id: install_code
run: npm ci
- name: Build
id: build_code
run: npm run build
- uses: actions/cache@v5
with:
path: ios/App/Pods
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-pods-
- name: Sync
id: sync_code
run: npx cap sync
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.2
- uses: maierj/fastlane-action@v2.3.0
env:
DEVELOPER_APP_IDENTIFIER: ${{ secrets.DEVELOPER_APP_IDENTIFIER }}
DEVELOPER_APP_ID: ${{ secrets.DEVELOPER_APP_ID }}
PROVISIONING_PROFILE_SPECIFIER: match AppStore ${{ secrets.DEVELOPER_APP_IDENTIFIER }}
TEMP_KEYCHAIN_USER: ${{ secrets.TEMP_KEYCHAIN_USER }}
TEMP_KEYCHAIN_PASSWORD: ${{ secrets.TEMP_KEYCHAIN_PASSWORD }}
APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }}
APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }}
CERTIFICATE_STORE_URL: https://github.com/${{ secrets.CERTIFICATE_STORE_REPO }}.git
GIT_USERNAME: ${{ secrets.GIT_USERNAME }}
GIT_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
FASTLANE_APPLE_ID: ${{ secrets.FASTLANE_APPLE_ID }}
MATCH_USERNAME: ${{ secrets.FASTLANE_APPLE_ID }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
APP_STORE_CONNECT_TEAM_ID: ${{ secrets.APP_STORE_CONNECT_TEAM_ID }}
DEVELOPER_PORTAL_TEAM_ID: ${{ secrets.DEVELOPER_PORTAL_TEAM_ID }}
with:
lane: closed_beta
- name: Upload release bundle
uses: actions/upload-artifact@v2
with:
name: ios-release
path: ./App.ipa
retention-days: 60
Diese Workflow sollte nach jedem GitHub-Push ausgelöst werden. Tag, wenn Sie die Automatisierung von Tags benötigen, beziehen Sie sich auf Automatische Erstellung und Veröffentlichung mit GitHub-Aktionen zuerst.
Dann wird diese Workflow Ihre NodeJS-Abhängigkeiten ziehen, sie installieren und Ihre JavaScript-Anwendung bauen.
Jedes Mal, wenn Sie einen neuen Commit senden, wird eine Veröffentlichung in TestFlight erstellt.
Ihre App benötigt nicht zwingend Ionic, nur die Capacitor-Basis ist erforderlich. Sie kann alte Cordova-Module haben, aber die Capacitor-JS-Plugin wird bevorzugt.
5. Auslösen des Workflows
Erstellen Sie einen Commit
Erstellen Sie einen Commit, Sie sollten das aktive Workflow im Repository sehen.
Trigger die Workflow
Pushen Sie die neuen Commits auf die Zweig main oder development oder

gestartet mit Commit

Testflight-Dashboard
Kann man von der lokalen Maschine bereitstellen?
Ja, das geht, und es ist einfach.
Stellen Sie sich vor, Sie haben einen privaten Repository, und Sie haben die Minuten des kostenlosen Plans aufgebraucht und Sie möchten keine neuen Releases bezahlen, oder vielleicht bevorzugen Sie, die Anwendung manuell zu übermitteln.
Los geht's, erstellen wir in mein_project_path/fastlane ein Datei namens .env, genau in demselben Pfad wie Fastfile, um dieselben geheimen Eigenschaften zu finden, die in unserem _GitHub, a_s unten aufgeführt sind:
.env-Datei für die Bereitstellung von der lokalen Maschine
Jetzt können Sie zum Terminal und den Befehl ausführen Fastlane von Ihrem Computer:
fastlane closed_beta
❌ Wichtige Informationen zum .env Datei, da wir diese Daten nicht offenlegen möchten, müssen wir sie in unserer .gitignoreDatei hinzufügen, etwas in dieser Art und Weise: ❌
fastlane/*.env
Es sollte funktionieren, genau wie es auf den Remote-Maschinen mit GitHub Actions geschieht, aber auf Ihrem lokalen Computer. 🍻

Befehlszeile: $ Fastlane closed_beta
Wenn Sie bis hierher gekommen sind, gratuliere ich Ihnen, jetzt haben Sie ein vollautomatisches Verfahren für Ihre iOS-Anwendungen mit Fastlane und GitHub Actions.
Jedes Mal, wenn Sie einen neuen Commit senden, wird eine Veröffentlichung im Google Play-Konsolen, Beta-Kanal erstellt. Ich werde diese Blog-Einträge verbessern, wenn Sie Feedback geben, wenn Sie Fragen oder Vorschläge haben, zögern Sie bitte nicht, mich per E-Mail zu kontaktieren. martin@capgo.app
Auf Ihrem Gerät bauen
Wenn Sie immer noch auf Ihrem Gerät bauen müssen, müssen Sie sie manuell zur Bereitstellung hinzufügen.
Verbinden Sie Ihr Gerät mit Ihrem Mac und öffnen Sie das Gerätemenü
Dann kopieren Sie Ihren Identifikator
Und dann starten Sie den Befehl:
fastlane register_new_device
Es wird Sie auffordern, einen Gerätename und den Identifikator einzugeben:

Wenn Sie Probleme mit dem Entwicklungsgerät haben, können Sie es nicht testen usw., löst das Problem normalerweise.
Es gibt einen magischen Befehl, der Ihnen helfen kann:
__CAPGO_KEEP_0__
fastlane match nuke development
fastlane match development
Dann: Löschen Sie das Projekt, indem Sie die Taste Shift(⇧)+Command(⌘)+K drücken oder 'Produkt' > 'Löschen' wählen (es könnte als 'Clean Build Folder' bezeichnet werden)
Dann versuchen Sie es erneut, die App auf Ihrem Gerät zu starten.
Danke
Dieser Blog basiert auf den folgenden Artikeln:
- Fortlaufende Lieferung für IOS mit Fastlane und GitHub-Aktionen
- Fastlane-Dokumentation
- Dieses GitHub-Nachricht von @mrogunlana
Fortsetzen Sie von der automatischen Capacitor-IOS-Build mit GitHub-Aktionen, die mit match verwendet werden
Wenn Sie __CAPGO_KEEP_0__ verwenden Die automatische Capacitor-IOS-Build mit GitHub-Aktionen, die mit match verwendet werden Um die CI/CD-Automatisierung zu planen, verbinden Sie es mit Capgo-CI/CD zur Produktworkflow in Capgo CI/CD, Capgo Native Builds zur Produktworkflow in Capgo Native Builds, Capgo Integrations zur Produktworkflow in Capgo Integrations, CI/CD-Integration zur Implementierungsdetail in CI/CD-Integration, und GitHub Actions-Integration zur Implementierungsdetail in GitHub Actions-Integration.