Continuous Delivery für iOS mit Codemagic
Voraussetzungen
Bevor Sie mit dem Tutorial fortfahren…
- Mitgliedschaft im iOS-Entwicklerprogramm.
- Der Wunsch, etwas zu lesen 😆…
Wichtiges zu den Kosten

Der Service ist ‘kostenlos’ bis zu 500 macOS M1 Minuten / Monat, abhängig von der gewählten Maschine.
Wir werden ein macOS M1 Gerät verwenden, Sie können im Screenshot seinen Preis und Grenzen sehen (Preise Stand der Erstellung des Tutorials, sie könnten sich in Zukunft ändern)
🔴 Nachdem Sie über Anforderungen und Preise gewarnt wurden, wenn Sie möchten, gehen wir weiter…
📣 In dem Artikel nehmen wir an, dass wir die App in iTunes Connect erstellt haben, wir haben die Zertifikate des Apple-Ökosystems, alles wird von Codemagic konfiguriert!
Los geht es 🤿
Schritte im Beitrag
- 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
- Übernahme von Fastlane-Dateien
- Konfiguration von Codemagic
1. Verwendung von App Store Connect API mit Codemagic
Ab Februar 2021 ist für alle Benutzer eine zweifaktorale 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 haben.
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 nutzen zu können, benötigt Codemagic drei Daten.
- Zertifikats-ID.
- Zertifikats-Schlüssel-ID.
- Zertifikatsdatei oder Zertifikatsinhalt.
Erstellung eines App Store Connect API-Schlüssels
Um Schlüssel zu generieren, benötigen Sie die Admin-Berechtigung in App Store Connect. 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 — Wählen Sie Nutzer und Zugriff.

3 — Wählen Sie die API Schlüssel-Taste.

4 — Klicken Sie auf Erstellen API Schlüssel oder die (+) Taste.

5 — Geben Sie den Namen für den Schlüssel ein und wählen Sie ein Zugriffsebene. Wir empfehlen, App Manager Zugriffsrechte, erfahren Sie mehr über die Berechtigungen des Apple-Entwickler-Programms hier

6 — 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 finden Sie alle drei notwendigen Informationen:
<1> Issue-ID.
<2> Schlüssel-ID.
<3> Klicken Sie auf "Download API Key" 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 einbetten.
Hinzufügen des App Store Connect API Schlüssels zu Codemagic
-
Öffnen Sie die Einstellungen Ihres Codemagic-Teams
Wählen Sie code Signierungsidentitäten
Und laden Sie das Zertifikat hoch

-
Klicken Sie auf Schlüssel hinzufügen den Button.
-
Geben Sie den
App Store Connect API key name. Dies ist ein menschenlesbares Name für den Schlüssel, der später in den Anwendungs-Einstellungen verwendet wird. -
Geben Sie den
Issuer IDundKey IDWerte ein. -
Klicken Sie auf Wählen Sie ein .p8-File oder ziehen Sie das Datei hoch, um das App Store Connect API-Schlüssel heruntergeladen zu haben.
-
Klicken Speichern.
Jetzt können wir Codemagic mit dem App Store Connect API-Schlüssel verwalten, großartig!
2. Erstellen Sie Zertifikate und Provisioning-Profile
Zertifikate
Öffnen Sie XCode und gehen Sie zu Einstellungen > Abrechnungen > 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 zu Keychain gehen, um das Zertifikat als Datei herunterzuladen. .p12 Um dies zu tun, müssen Sie zu Keychain gehen, auf die Anmelde-
Keychain umschalten und dann die Registerkarte Meine Zertifikate Meine Zertifikate Dann können Sie das Zertifikat auswählen, das Sie herunterladen möchten. (Suchen Sie nach dem Datum des Zertifikats).

Exportieren
Wählen Sie die Dateiformat Persönliche Informationen austauschen (.p12).
__CAPGO_KEEP_0__ __CAPGO_KEEP_1__.
Das wird das Zertifikat als Datei herunterladen. .p12 Datei.
Provisionierungsprofile
Öffnen Apple Developer und wählen Sie das richtige Team.
Erstellen Sie dann ein neues Profil, indem Sie auf +

und wählen Sie App Store Connect.

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

Wählen Sie die richtige Zertifizung, 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 Fortsetzen.

Schließlich 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.

Die Hinzufügung der Code-Signierungszertifizung
Laden Sie code-Zertifikate als PKCS#12-Archive hoch, 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 Zertifikatszahlen (wenn das Zertifikat durch eine Zahlen geschützt ist) sowie eine eindeutige Referenzname, codemagic.yaml Konfiguration, um das spezifische Datei zu laden.
- Hochladen von Zertifikat
- Neues Zertifikat generieren
- Von Developer-Portal abrufen
- Öffnen Sie Ihre Codemagic-Team-Einstellungen, gehen Sie zu codemagic.yaml-Einstellungen > Code-Zertifikatsidentitäten.
- Öffnen iOS-Zertifikate tab.
- Laden Sie das Zertifikatsdatei, indem Sie auf Wählen Sie eine .p12- oder .pem-Datei oder indem Sie sie in den angegebenen Rahmen ziehen.
- Geben Sie das Zertifikatspasswort und wählen Sie ein Referenzname.
- Klicken Sie Zertifikat hinzufügen
Hinzufügen des Provisioning-Profils
Codemagic ermöglicht Ihnen, ein Bereitstellungsprofil hochzuladen, das für die Anwendung verwendet werden kann, oder ein Profil vom Apple Developer Portal abzurufen.
Die Profiltyp, Team, Bundle-ID und Ablaufdatum werden für jedes Profil angezeigt, das in den Code Signieridentitäten hinzugefügt wird. Darüber hinaus wird Codemagic Ihnen mitteilen, ob ein passendes code Signierzertifikat in den Code Signieridentitäten (ein grünes Häkchen im Zertifikats Feld) oder nicht verfügbar ist.
3. Einrichten von Codemagic
Konfigurieren Sie Codemagic-Secrets
Haben Sie sich je gefragt, wo die Werte der ENV herkommen? Nun, es ist kein Geheimnis mehr – sie kommen aus Ihrem Projekts-Secret. 🤦
4. Konfigurieren Sie das Codemagic-Workflow-File
Erstellen Sie ein File mit dem Namen codemagic.yml im Root-Verzeichnis Ihres Projekts und fügen Sie die folgenden Zeilen 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 Workflow sollte manuell oder nach jedem GitHub ausgelöst werden. tagWenn Sie die Automatisierung der Tags benötigen, beziehen Sie sich auf Automatischer Build und Release mit GitHub Aktionen erstens.
Dann wird diese Workflow 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.
Ihre App benötigt nicht zwingend Ionic, nur die Capacitor-Basis ist erforderlich, sie kann alte Cordova-Module haben, aber die 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 den 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.
Zunächst wählen Sie das zu bauende App, dann klicken Sie auf Neues Build starten.

Dann wählen Sie die zu bauende Branch aus.

Und klicken Sie auf Neues Build starten.
Dann gehen Sie zur Baualiste

Und klicken Sie auf das Bauwerk, um das Ergebnis zu sehen.

Sie können von Ihrem lokalen Computer 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
Bleiben Sie bei der automatischen Capacitor IOS-Build mit Codemagic
Wenn Sie " Bleiben Sie bei der automatischen Capacitor IOS-Build mit Codemagic um die CI/CD-Automatisierung zu planen, verbinden Sie sie mit Capgo CI/CD für den Produktworkflow in Capgo CI/CD, Capgo Native Builds für den Produktworkflow in Capgo Native Builds, Capgo Integrations für den Produktworkflow in Capgo Integrations, CI/CD-Integration für die Implementierungsdetails in CI/CD-Integration, und GitHub Aktionen-Integration für die Implementierungsdetails in GitHub Aktionen-Integration.