Automatische iOS-Builds mit GitHub Actions mithilfe von Match
Die Einrichtung von CI/CD für Capacitor-Anwendungen kann komplex und zeitaufwändig sein. Hier ist, was Sie wissen müssen:
Empfohlen für neue Builds: Verwenden Sie Capgo Build
Wir empfehlen nun die Verwendung von Capgo Build mit der Capgo CLI für native Capacitor-Builds. Dieser Fastlane Match-Leitfaden wird für Teams erhalten bleiben, die bestehende GitHub-Actions-Pipelines weiterhin unterhalten, aber neue iOS-Builds sollten die Capgo CLI verwenden, damit Sie keine Fastlane, Match-Repository, Xcode-Runner, Zertifikate und Upload-Skripte selbst pflegen müssen.
Capgo Build für CI/CD durch Capgo
Vermeiden Sie die Wartung 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öser Capgo Build von GitHub Actions, GitLab CI, Jenkins oder lokalen Skripten nach Ihrem Web-Build und
npx cap sync. - Signierung aus CI-Secrets: Halten Sie App Store Connect-Schlüssel, Zertifikate, Bereitstellungsprofile, Passwörter und Team-IDs in Ihren eigenen CI-Secrets.
- : __CAPGO_KEEP_0__ Build stellt gepflegte Apple-Build-Umgebungen bereit, daher müssen Sie macOS-Runner, Xcode-Bilder, Fastlane oder Match-Repositories nicht mehr verwalten.: Capgo Build provides maintained Apple build environments, so you do not have to manage macOS runners, Xcode images, Fastlane, or Match repositories.
- : Laden Sie signierte Artikel für QA oder übermitteln Sie Release-Builds über die __CAPGO_KEEP_0__ __CAPGO_KEEP_1__.: Download signed artifacts for QA or submit release builds through the Capgo CLI.
: __CAPGO_KEEP_0__-Pläne beginnen bei 12 $/Monat.
- Capgo plans start at $12/month
- : Zusätzliche Build-Minuten werden durch Minuten über Kredite abgerechnet
- : Einrichten Sie __CAPGO_KEEP_0__ Build in CI/CD
: Capgo-Pläne beginnen bei 12 $/Monat
Handanleitung
Hier sind die Schritte:
Continuous Delivery für iOS mit Fastlane und GitHub Aktionen mit match
Voraussetzungen
Bevor Sie mit dem Tutorial fortfahren...
- Stellen Sie sicher, dass Sie Fastlane installiert haben
- auf Ihrem Entwicklungsrechner.
- Mitgliedschaft im iOS-Entwicklerprogramm.
- Wunsch, etwas zu lesen 😆… Ein Team aus vielen Entwicklern, andernfalls empfehlen wir die Verwendung von fastlane cert zum einfacheren Workflow.
Wichtig über den Preis.

https://github.com/features/actions
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.
🔴 Einmal gewarnt vor Anforderungen und Preisen, 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 im Beitrag zu folgen sind.
- Mit App Store Connect API verwenden mit Fastlane Match
- Anforderungen
- Erstellung eines App Store Connect API-Schlüssels
- Verwendung eines App Store Connect API-Schlüssels
- Fastlane-Dateien kopieren
- Fastlane match konfigurieren
1. Mit App Store Connect API verwenden mit Fastlane Match
Ab Februar 2021 ist für alle Benutzer eine zweifaktorische Authentifizierung oder eine zweistufige Überprüfung erforderlich, um sich bei App Store Connect anzumelden. Diese zusätzliche Sicherheitsstufe für Ihren Apple-ID hilft sicherzustellen, dass Sie der einzige Person sind, die Zugriff auf Ihr Konto hat.
Von Apple-Support
Um mit match zu beginnen, müssen Sie Ihre bestehenden Zertifikate widerrufen. Keine Sorge, Sie erhalten den neuen direkt.
Anforderungen
To können Sie App Store Connect API nutzen, benötigt Fastlane drei Dinge. 3 Dinge.
- Zertifikats-ID.
- Zertifikats-ID.
- Zertifikatsdatei oder Zertifikatsinhalt.
Erstellung einer App Store Connect API-Zertifikatsdatei
Um Zertifikate zu generieren, müssen Sie in App Store Connect Administratorrechte 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 von "Benutzer und Zugriff" 4 — Auswahl von "Benutzer und Zugriff".

3 — Wählen Sie die Integrationsoption.

4 — Klicken Sie auf Erstellen API-Schlüssel oder das (+) -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 auf Ihrem Team angewendet werden. Siehe Rollenberechtigungen. Wir empfehlen die Auswahl App-Manager.
7 — Klicken Sie auf Erstellen.
An API key’s access cannot be limited to specific apps.
Der Name des neuen Schlüssels, die Schlüssel-ID, ein Download-Link und weitere Informationen erscheinen auf der Seite.

Hier können Sie alle drei notwendigen Informationen finden.
1. Issue-ID.
2. Schlüssel-ID.
<3> Click “Download API Key” to download your API private key. The download link appears only if the private key has not yet been downloaded. Apple does not keep a copy of the private key. So, you can download it only once.
🔴 Store your private key in a safe place. You should never share your keys, store keys in a code repository, or include keys in client-side code.
Using an App Store Connect API Key
The API Key file (p8 file that you download), the key ID, and the issuer ID are needed to create the JWT token for authorization. There are multiple ways that these pieces of information can be input into Fastlane using Fastlane’s new action, app_store_connect_api_keySie können weitere Möglichkeiten in der Fastlane-DokumentationDa ich denke, dass dies der einfachste Weg ist, mit den meisten CI-Tools zu arbeiten, bei denen Sie Umgebungsvariablen einstellen können.
Jetzt können wir Fastlane mit dem App Store Connect-Schlüssel API verwalten, großartig!
2. Kopieren Sie die Fastlane-Dateien
Fastlane ist eine Ruby-Bibliothek, die automatisierte Aufgaben im mobilen Entwicklungsprozess erleichtert. Mit Fastlane können Sie benutzerdefinierte 'Bahnen' konfigurieren, die eine Reihe von 'Aktionen' enthalten, die Aufgaben ausführen, die Sie normalerweise mit Android Studio durchführen würden. Mit Fastlane können Sie eine Vielzahl von Aufgaben durchführen, aber für den Zweck dieses Tutorials werden wir nur eine Handvoll grundlegender Aktionen verwenden.
Erstellen Sie einen Fastlane-Ordner am 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 eine neue Ansicht der code-Signierung für 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 Konto oder Organisation.
Initialisiere Fastlane match für deine iOS-App.
fastlane match init
Wähle dann 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 Repositories.
[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 ein Datei namens Matchfile und
_git_url_Der Wert 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")
Als Nächstes 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 eingeben. Denken Sie daran, es richtig zu speichern, da es später von GitHub-Actions 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, vielleicht hilft Ihnen dieser Beitrag wird Ihnen helfen, Authentifizierungstoken für Git zu generieren.
Erzeugte Zertifikate und Provisioning-Profile werden in den Zertifikats-Repository-Ressourcen hochgeladen.

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

Einige Dinge, die beachtet werden sollten 💡
MATCH
Damit die CI/CD die Zertifikate und Provisioning-Profile importieren kann, muss sie Zugriff auf das Zertifikats-Repository haben. Sie können dies tun, indem Sie einen persönlichen Zugriffstoken (der vorher verwendet werden sollte) generieren, der die Berechtigung hat, private Repositories zu lesen oder zu bearbeiten.
In GitHub, gehen Sie zu Einstellungen → Entwickler-Einstellungen → Persönliche Zugriffstoken → klicken Generate New Token → das Häkchen setzen repo Zugriffsberechtigung → dann klicken Generate token.

Haben Sie eine Kopie des generierten persönlichen Zugriffstokens. Sie werden es später für die Umgebungsvariable verwenden GIT_TOKEN.
Ersetzen Sie dann 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 var wird in GitHub Secrets gesetzt, anstatt sie in der Datei hartcodiert zu haben
Build-Verarbeitung
In GitHub Actions Sie werden nach den 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 → klicken
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 Projekts.
Wenn Sie die gleichen Bedenken bezüglich der Preise haben wie ich für private Projekte, können Sie den 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 der Build verarbeitet wurde, damit Sie den 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. Siehe Preise.
3. Einrichten von GitHub Actions
Konfigurieren von GitHub Geheimnissen
Kennen Sie sich jemals gefragt, wo die Werte der ENV herkommen? Nun, es ist kein Geheimnis mehr – es kommt aus Ihrem Projekts Geheimnis. 🤦

1. APP_STORE_CONNECT_TEAM_ID - die ID deines App Store Connect-Teams, wenn du in mehreren Teams bist.
2. DEVELOPER_APP_ID - in App Store Connect, gehe zu der Anwendung → Anwendungsinformationen → Scrollen Sie nach unten zur General Information Abschnitt deiner Anwendung und suchen Sie nach Apple ID.
3. DEVELOPER_APP_IDENTIFIER - der Paket-Identifizierer deiner Anwendung.
4. DEVELOPER_PORTAL_TEAM_ID - die ID deines Entwickler-Portal-Teams, wenn du in mehreren Teams bist.
5. FASTLANE_APPLE_ID - die Apple-ID oder Entwickler-E-Mail, die du zum Verwalten der Anwendung verwendest.
6. GIT_USERNAME & GIT_TOKEN - Deinen Git-Nutzernamen und deinen persönlichen Zugriffstoken.
7. MATCH_PASSWORD - den Passwort, das du bei der Initialisierung von match zugewiesen hast, 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 - einem temporären Schlüsselkartenbenutzer und -passwort für Ihre Workflow.
10. APPLE_KEY_ID — App Store Connect API Schlüssel 🔺Schlüssel-ID.
11. APPLE_ISSUER_ID — App Store Connect API Schlüssel 🔺Aussteller-ID.
12. APPLE_KEY_CONTENT — App Store Connect API Schlüssel 🔺 Schlüsseldatei oder Schlüsselinhalt von .p8, überprüfen Sie es
13. CERTIFICATE_STORE_URL — Die Repository-URL Ihres Match-Schlüssels (z.B.: https://github.com/***/fastlane_match.git)
4. Konfigurieren Sie den GitHub Workflow-File
Erstellen Sie einen GitHub Workflow-Ordner.
cd .github/workflows
Innerhalb des workflow Ordner erstellen Sie ein Datei mit dem Namen build-upload-ios.ymlund fügen Sie folgendes hinzu.
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
Dieses Workflow sollte nach jedem GitHub Tagausgelöst werden, wenn Sie die Automatisierung von Tags benötigen, beziehen Sie sich bitte auf Automatische Build und Release mit GitHub Aktionen zuerst.
Dann wird dieses Workflow Ihre NodeJS-Abhängigkeiten ziehen, sie installieren und Ihre JavaScript-Anwendung bauen.
Jedes Mal, wenn Sie einen neuen Commit senden, wird eine Release in TestFlight erstellt.
Für Ihre App ist es nicht erforderlich, Ionic zu verwenden, nur die Capacitor-Basis ist erforderlich. Es kann auch alte Cordova-Module haben, aber die Capacitor-JS-Plugin wird bevorzugt.
5. Auslösen des Workflows
Erstelle einen Commit
Mache einen commitSie sollten das aktive Workflow in dem Repository sehen.
Auslösen Sie den Workflow
Drücken Sie die neuen Commits in die Zweig main oder development Um den Workflow auszulösen

Nach einigen Minuten sollte das Build in Ihrem App Store Connect-Dashboard verfügbar sein.

Kann man von der lokalen Maschine bereitstellen?
Ja, das geht, und es ist einfach.
Stellen Sie sich vor, Sie haben ein privates Repository, und Sie haben die Minuten des kostenlosen Plans aufgebraucht und möchten keine neuen Releases bezahlen, oder vielleicht bevorzugen Sie es, die Anwendung manuell zu übermitteln.
Los geht's!
Ok, erst müssen wir in meinem Projektverzeichnis ein Verzeichnis namens fastlane erstellen und in diesem Verzeichnis eine Datei namens .env anlegen, genau in demselben Verzeichnis wie das Verzeichnis mit dem Namen Fastfile, um die gleichen geheimen Eigenschaften wie in unserem _GitHub, wie unten gezeigt, zu erstellen.
.env-Datei für die Bereitstellung von der lokalen Maschine
Jetzt können Sie zum Terminal gehen und den Terminal und den Fastlane von Ihrer Maschine aus starten:
fastlane closed_beta
❌ Wichtige Informationen über die .env-Datei da wir diese Daten lieber nicht offenlegen, müssen wir sie in unserer .gitignore-Dateihinzufügen, etwas in dieser Art und Weise: ❌
fastlane/*.env
Es sollte funktionieren, genau wie es auf der Remote-Maschine mit den GitHub-Actions passiert, aber auf Ihrer lokalen Maschine. 🍻

Befehlszeile-Ausführung: $ Fastlane closed_beta
Wenn Sie bis hier gekommen sind, meine Glückwünsche, jetzt haben Sie einen vollautomatisierten Prozess für Ihre iOS-Anwendungen mit Fastlane und GitHub Actions.
Jedes Mal, wenn Sie einen neuen Commit senden, wird ein Release im Google Play-Konsolen, Beta-Kanal erstellt. Ich werde diese Blog-Einträge verbessern, wenn Sie Feedbacks haben, 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 noch immer auf Ihrem Gerät bauen müssen, müssen Sie sie manuell zur Provisionierung 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 um einen Gerätennamen und den Identifikator bitten:

Wenn Sie Probleme haben
Wenn Sie ein Problem mit einem Entwicklungsgerät haben, das nicht getestet werden kann, usw., löst es sich normalerweise dadurch.
Dort ist ein Zauberwort, das Ihnen helfen kann:
fastlane match nuke development
fastlane match development
Dann: Löschen Sie das Projekt, indem Sie Shift(⇧)+Befehl(⌘)+K drücken oder Produkt > Löschen (es könnte als „Löschen des Build-Ordners“ beschriftet sein)
Dann versuchen Sie es erneut, die App auf Ihrem Gerät zu starten.
Dankeschön
Dieser Blog basiert auf den folgenden Artikeln:
- Kontinuierliche Lieferung für iOS mit Hilfe von Fastlane und GitHub-Aktionen
- Fastlane-Dokumentation
- Dieses GitHub-Nachricht von @mrogunlana
Fortsetzen Sie mit der automatischen Capacitor-iOS-Build mit GitHub-Aktionen, die mit match verwendet werden
If Sie __CAPGO_KEEP_0__ verwenden Automatischer GitHub IOS-Build mit Capacitor-Aktionen mithilfe von match um die CI/CD-Automatisierung zu planen, verbinden Sie es mit Capgo CI/CD Capgo CI/CD für den Produktworkflow in Capgo CI/CD Capgo Native Builds Capgo Native Builds für den Produktworkflow in Capgo Native Builds Capgo Integrations Capgo Integrations für den Produktworkflow in Capgo Integrations CI/CD-Integration __CAPGO_KEEP_0__ Actions-Integration GitHub Actions Integration Für die Implementierungsdetails in GitHub Actions-Integration.