Fortlaufende Lieferung für iOS mit Codemagic
Voraussetzungen
Bevor Sie mit dem Tutorial fortfahren…
- Mitgliedschaft im iOS-Entwicklerprogramm.
- Wunsch, zu lesen 😆…
Wichtig zu dem Preis

Der Service ist ‘gratis’ bis zu 500 Minuten macOS M1 pro Monat, je nach gewählter Maschine.
Wir werden eine macOS M1 Maschine verwenden, ihr Preis und Grenzen sehen Sie im Screenshot (Preise Stand der Erstellung dieses Tutorials, sie könnten sich in Zukunft ändern).
🔴 Nachdem wir auf die Anforderungen und Preise hingewiesen haben, können wir gerne fortfahren…
📣 In diesem Beitrag gehen wir davon aus, dass wir bereits eine App in iTunes Connect erstellt haben, wir haben die Zertifikate des Apple-Ökosystems und alles wird von Codemagic konfiguriert!
Los geht’s!
Schritte, die wir im Beitrag durchführen:
- Verwendung von App Store Connect API mit Codemagic
- Anforderungen
- Erstellung eines App Store Connect API-Schlüssels
- Verwendung eines App Store Connect API-Schlüssels
- Dateien von Fastlane kopieren
- Codemagic konfigurieren
1. Verwende App Store Connect API mit Codemagic
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 Sicherheitsschicht für Ihren Apple-Konto hilft sicherzustellen, dass Sie der einzige Person sind, die Zugriff auf Ihr Konto hat.
Von Apple-Support
Um mit match anzufangen, müssen Sie Ihre bestehenden Zertifikate widerrufen. Keine Sorge, Sie erhalten das neue direkt.
Anforderungen
Um App Store Connect API mit Codemagic verwenden zu können, benötigt Codemagic drei Dinge.
- Aussteller-ID.
- Sicherheits-ID.
- Sicherheitsdatei oder Sicherheitsinhalt.
Erstellung eines App Store Connect API-Schlüssels
Um Schlüssel 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 Zugriffsrechte.

3 — Auswahl des API-Schlüssel-Tabs.

4 — Klicken Sie auf Erstellen von API-Schlüssel oder auf die Schaltfläche (+) hinzufügen.

5 — Geben Sie dem Schlüssel einen Namen und wählen Sie ein Zugriffsebene. Wir empfehlen, die Zugriffsrechte zu wählen und mehr über die Rolle der Apple-Entwickler-Programm-Berechtigungen zu erfahren App Manager hier App Store Connect __CAPGO_KEEP_0__ Schlüssel erstellen Name

Ein __CAPGO_KEEP_0__ Schlüssels Zugriff kann nicht auf bestimmte Apps beschränkt werden.
An API key’s access cannot be limited to specific apps.
App Store Connect __CAPGO_KEEP_0__ herunterladen

<2> Schlüssel-ID.
<3> Klicken Sie auf "Herunterladen __CAPGO_KEEP_0__ Schlüssel" um Ihren __CAPGO_KEEP_1__ privaten Schlüssel herunterzuladen. Der Download-Link erscheint nur, wenn der private Schlüssel noch nicht heruntergeladen wurde. Apple hält keine Kopie des privaten Schlüssels. Sie können ihn also nur einmal herunterladen.
<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.
🔴 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 einbetten.
Hinzufügen der App Store Connect API-Schlüssel zu Codemagic
-
Öffnen Sie Ihre Codemagic-Team-Einstellungen
Wählen Sie die code-Signaturidentitäten
Und laden Sie das Zertifikat hoch

-
Klicken Sie auf den Hinzufügen der Schlüssel Schaltfläche.
-
Eingeben Sie das
App Store Connect API key nameDies ist eine menschenlesbare Bezeichnung für die Schlüssel, die später in den Anwendungs-Einstellungen verwendet wird. -
Eingeben Sie das
Issuer IDundKey IDWerte. -
Klicken Sie auf Wählen Sie eine .p8-Datei oder ziehen Sie die Datei, um die App Store Connect API-Schlüssel, die zuvor heruntergeladen wurden, hochzuladen.
-
Klicken Sie Speichern.
Jetzt können wir Codemagic mit der App Store Connect API-Schlüssel verwalten, großartig!
2. Erstellen Sie Zertifikate und Provisionierungsprofile
Zertifikate
Öffnen Sie XCode und gehen Sie zu Einstellungen > Accounts > Apple-ID > Teams und wählen Sie Ihr Team.

Klicken Sie auf Zertifikate verwalten > + und wählen Sie Apple Distribution.

Dann können Sie ein neues Zertifikat erstellen.
Dann müssen Sie zum Schlüsselkasten gehen, um das Zertifikat als Datei herunterzuladen. .p12 Dazu müssen Sie zum Schlüsselkasten gehen, auf den Login-Schlüsselkasten umschalten und dann auf die Registerkarte
Meine Zertifikate login keychain My Certificates.

Dann können Sie das Zertifikat auswählen, das Sie herunterladen möchten. (Suchen Sie nach dem Datum des Zertifikats)
Und klicken Sie dann mit der rechten Maustaste auf das Zertifikat und wählen Sie Exportieren.
Wählen Sie die Dateiformat Persönliche Informationen austauschen (.p12).
Das wird das Zertifikat als .p12 Eine Datei herunterladen.
Provisionierungsprofile
Öffnen Apple Developer und wählen Sie das richtige Team.
Dann erstellen Sie ein neues Profil, indem Sie auf +

Und wählen Sie App Store Connect wählen.

Dann müssen Sie die richtige App auswählen, seien Sie vorsichtig, Sie können keine Wildcard verwenden, sonst wird die Signierung fehlschlagen.

Wählen Sie die richtige Zertifizierung, die Sie vorher erstellt haben (suchen Sie nach dem Datum der Ablaufzeit, es sollte der gleiche Tag und Monat wie heute sein) und klicken Sie auf Weiter.

Abschließend geben Sie den Namen des Profils ein und klicken Sie auf Erstellen.
Der Name wird zum Identifizieren des Profils in Codemagic verwendet.

Sie können das Profil als .mobileprovision Datei herunterladen.

Hinzufügen des Code Signierzertifikats
Bei Codemagic können Sie code Signierzertifikate als PKCS#12-Archive hochladen, die sowohl das Zertifikat als auch die private Schlüssel enthalten, die zum Einsatz des Zertifikats erforderlich sind. Wenn Sie hochladen, wird Codemagic Sie um die Zertifikats-Passphrase (wenn das Zertifikat verschlüsselt ist) sowie um eine eindeutige Referenzname, die dann in der codemagic.yaml Konfiguration verwendet werden kann, um das spezifische Datei abzurufen.
- Zertifikat hochladen
- Neues Zertifikat generieren
- Von Entwickler-Portal abrufen
- Öffnen Sie Ihre Codemagic-Team-Einstellungen, gehen Sie zu codemagic.yaml-Einstellungen > Code Signierungsidentitäten.
- Öffnen iOS-Zertifikate Registerkarte.
- Laden Sie das Zertifikat hoch, indem Sie auf Eine .p12- oder .pem-Datei auswählen oder indem Sie es in die angegebene Fensterfläche ziehen.
- Geben Sie die Zertifikatspasswort und wählen Sie ein Bezeichner.
- Klicken Sie Hinzufügen Sie ein Zertifikat
Die Bereitstellung des Profils
Mit Codemagic können Sie ein Bereitstellungsprofil hochladen, das für die Anwendung verwendet werden soll, oder ein Profil vom Apple Developer Portal abrufen.
Der Profiltyp, Team, Bundle-ID und die Ablaufzeit werden für jedes hinzugefügte Profil in den Code Signierungsidentitäten angezeigt. Darüber hinaus wird Codemagic Ihnen mitteilen, ob ein entsprechendes code Signierungszeugnis in den Code Signierungsidentitäten (ein grünes Häkchen im Zertifikat Zertifikat
3. Einrichten Sie Codemagic
Konfigurieren Sie Codemagic-Secrets
Ever wonder woher die Werte von den ENV kommen? Nun, es ist kein Geheimnis mehr – sie kommen aus Ihrem Projektschlüssel. 🤦
4. Konfigurieren Sie die Codemagic-Arbeitsablaufdatei
Erstellen Sie eine Datei mit dem Namen codemagic.yml im Wurzelverzeichnis Ihres Projekts und fügen Sie folgendes hinzu.
workflows:
ionic-capacitor-ios-workflow:
name: Capacitor iOS Workflow
max_build_duration: 120
instance_type: mac_mini_m1
integrations:
app_store_connect: CodeMagic
environment:
ios_signing:
distribution_type: app_store
bundle_identifier: YOUR_BUNDLE_IDENTIFIER
vars:
XCODE_WORKSPACE: ios/App/App.xcworkspace
XCODE_SCHEME: App
APP_STORE_APP_ID: YOUR_APP_STORE_APP_ID
node: v20.14.0
xcode: 15.4
cocoapods: default
triggering:
events:
- tag
tag_patterns:
- pattern: '*'
include: true
scripts:
- name: Install dependencies
script: |
npm install
- name: Cocoapods installation
script: |
cd ios/App && pod install
- name: Update dependencies and copy web assets to native project
script: |
npm run build
npx cap sync ios
- name: Set up code signing settings on Xcode project
script: |
xcode-project use-profiles
- name: Increment build number
script: |
cd $CM_BUILD_DIR/ios/App
LATEST_BUILD_NUMBER=$(app-store-connect get-latest-app-store-build-number "$APP_ID")
agvtool new-version -all $(($LATEST_BUILD_NUMBER + 1))
- name: Build ipa for distribution
script: |
xcode-project build-ipa \
--workspace "$XCODE_WORKSPACE" \
--scheme "$XCODE_SCHEME"
artifacts:
- build/ios/ipa/*.ipa
- /tmp/xcodebuild_logs/*.log
- $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.app
- $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.dSYM
publishing:
email:
recipients:
- YOUR_EMAIL
notify:
success: true # To not receive a notification when a build succeeds
failure: false # To not receive a notification when a build fails
app_store_connect:
auth: integration
# Configuration related to TestFlight (optional)
# Note: This action is performed during post-processing.
submit_to_testflight: true
# Configuration related to App Store (optional)
# Note: This action is performed during post-processing.
submit_to_app_store: false
Dieser Arbeitsablauf sollte manuell oder nach jedem GitHub Tagausgelöst werden, wenn Sie die Automatisierung von Tags benötigen, zitieren Sie bitte zuerst Automatische Build- und Release mit GitHub Aktionen Dann wird dieser Arbeitsablauf Ihre NodeJS-Abhängigkeiten ziehen, sie installieren und Ihr JavaScript-Anwendungsprogramm bauen.
Jedes Mal, wenn Sie einen neuen Tag senden, wird ein Release in TestFlight erstellt.
Jedes Mal, wenn Sie einen neuen Tag senden, wird ein Release in TestFlight erstellt.
Ihre App benötigt nicht Ionic, nur Capacitor Basis ist erforderlich, sie kann alte Cordova-Module haben, aber Capacitor JS-Plugin sollte bevorzugt werden.
5. Workflow auslösen
Workflow auslösen
Pushen Sie die neuen Commits in die Zweig main oder development Um die Workflow auszulösen.

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

Manuell starten
Sie können den Workflow manuell starten.
Wählen Sie zunächst die App aus, die Sie bauen möchten, dann klicken Sie auf Neue Build starten.

Wählen Sie dann die Zweig, den Sie bauen möchten.

Und klicken Sie auf Neue Build starten.
Gehe dann zur Build Liste

Und klicken Sie auf die Build, um das Ergebnis zu sehen.

Kann von lokalem Rechner bereitstellen
Ja, das können Sie, und es ist einfach.
Sie können Xcode verwenden, um Ihre App zu erstellen und zu signieren, wie immer.
Vielen Dank
Dieser Blog basiert auf den folgenden Artikeln:
- Kontinuierliche Lieferung für IOS mit Codemagic und GitHub Aktionen
- Codemagic-Dokumentation
- Dieses GitHub-Nachricht von @mrogunlana
Fahren Sie mit der automatischen Capacitor IOS-Build mit Codemagic fort
Wenn Sie __CAPGO_KEEP_0__ verwenden Die automatische Capacitor IOS-Build mit Codemagic um die CI/CD-Automatisierung zu planen, verbinden Sie es mit Capgo CI/CD für den 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