Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Tutorial: Apple-Codesigning mit Fastlane bei der CodeBuild Verwendung von S3 für die Zertifikatsspeicherung
Fastlane
Voraussetzungen
Um dieses Tutorial abzuschließen, müssen Sie zunächst Folgendes eingerichtet haben:
-
Und AWS-Konto
-
Ein S3-Bucket zum Speichern von Zertifikaten
-
Fastlane ist in Ihrem Projekt installiert — Anleitung
zur Installation von Fastlane
Schritt 1: Richten Sie Fastlane Match mit S3 auf Ihrem lokalen Computer ein
Fastlane Match
In dieser Beispielkonfiguration richten Sie einen Amazon S3-Bucket für die Speicherung ein und verwenden ihn.
-
Initialisieren Sie Match in Ihrem Projekt:
fastlane match init -
Wenn Sie dazu aufgefordert werden, wählen Sie S3 als Speichermodus.
-
Aktualisiere dein `Matchfile`, um S3 zu verwenden:
storage_mode("s3") s3_bucket("your-s3-bucket-name") s3_region("your-aws-region") type("appstore") # The default type, can be: appstore, adhoc, enterprise or development
Schritt 2: Richten Sie Ihr Fastfile ein
Erstellen oder aktualisieren Sie Ihr `Fastfile` mit der folgenden Spur.
Nein CodeBuild, Fastlane Match muss jedes Mal ausgeführt werden, wenn du deine App erstellst und signierst. Der einfachste Weg, dies zu tun, besteht darin, die match Aktion zu der Lane hinzuzufügen, auf der Ihre App erstellt wird.
default_platform(:ios) platform :ios do before_all do setup_ci end desc "Build and sign the app" lane :build do match(type: "appstore", readonly: true) gym( scheme: "YourScheme", export_method: "app-store" ) end end
Anmerkung
Stellen Sie sicher, dass setup_ci Sie den before_all Abschnitt erweitern, Fastfile damit die Match-Aktion ordnungsgemäß funktioniert. Dadurch wird sichergestellt, dass ein temporärer Fastlane-Schlüsselbund mit den entsprechenden Berechtigungen verwendet wird. Ohne dies zu verwenden, kann es zu Build-Fehlern oder inkonsistenten Ergebnissen kommen.
Schritt 3: Führen Sie den Befehl fastlane match aus, um die entsprechenden Zertifikate und Profile zu generieren
Der Fastlane-Match-Befehl für den angegebenen Typ (d. h. Entwicklung, Appstore, Adhoc, Unternehmen) generiert das Zertifikat und das Profil, falls sie nicht im Remote-Store verfügbar sind. Die Zertifikate und Profile werden von Fastlane in S3 gespeichert.
bundle exec fastlane match appstore
Die Befehlsausführung erfolgt interaktiv und Fastlane fordert Sie auf, eine Passphrase für die Entschlüsselung der Zertifikate festzulegen.
Schritt 4: Erstellen Sie die Anwendungsdatei für Ihr Projekt
Erstellen Sie die für Ihr Projekt geeignete Anwendungsdatei oder fügen Sie sie hinzu.
-
Erstellen Sie Gymfile
, Appfile, Snapfile, Deliverfile oder fügen Sie es hinzu , basierend auf Ihren Projekt-Build-Anforderungen. -
Übernehmen Sie die Änderungen in Ihr Remote-Repository
Schritt 5: Erstellen Sie Umgebungsvariablen in Secrets Manager
Erstellen Sie zwei Geheimnisse zum Speichern des Fastlane-Sitzungscookies und der passenden Passphrase. Weitere Informationen zum Erstellen von Geheimnissen im Secrets Manager finden Sie unter Ein AWS Secrets Manager Geheimnis https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html erstellen.
-
Greifen Sie wie folgt auf Ihr Fastlane-Sitzungscookie zu.
-
Geheimer Schlüssel -
FASTLANE_SESSION -
Geheimer Wert — Sitzungscookie, das durch die Ausführung des folgenden Befehls auf Ihrem lokalen Computer generiert wurde.
Anmerkung
Dieser Wert ist nach der Authentifizierung in einer lokalen Datei verfügbar:
~/.fastlane/spaceship/my_appleid_username/cookie.fastlane spaceauth -u <apple account>
-
-
Fastlane Match-Passphrase — Damit Fastlane Match die im S3-Bucket gespeicherten Zertifikate und Profile entschlüsseln kann, müssen Sie die Verschlüsselungspassphrase, die Sie im Einrichtungsschritt Match konfiguriert haben, zu den Umgebungsvariablen des Projekts hinzufügen. CodeBuild
-
Geheimer Schlüssel -
MATCH_PASSWORD -
Geheimer Wert -
<match passphrase to decrypt certificates>. Die Passphrase wird beim Generieren der Zertifikate in Schritt 3 festgelegt.
-
Anmerkung
Denken Sie beim Erstellen der oben genannten Geheimnisse im Secrets Manager daran, einen geheimen Namen mit dem folgenden Präfix anzugeben: /CodeBuild/
Schritt 6: Erstellen Sie eine Computerflotte
Erstellen Sie die Rechenflotte für Ihr Projekt.
-
Gehen Sie in der Konsole zu CodeBuild und erstellen Sie eine neue Rechenflotte.
-
Wählen Sie „macOS“ als Betriebssystem und wählen Sie einen geeigneten Rechnertyp und ein entsprechendes Image aus.
Schritt 7: Erstellen Sie ein Projekt in CodeBuild
Erstellen Sie Ihr Projekt in CodeBuild.
Öffnen Sie die AWS CodeBuild Konsole unter https://console.aws.amazon.com/codesuite/codebuild/home
. -
Erstellen Sie ein Build-Projekt. Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt (Konsole) und Ausführen eines Build (Konsole).
-
Richten Sie Ihren Quellanbieter ein (z. B. GitHub, CodeCommit). Dies ist das Quell-Repository für iOS-Projekte und kein Zertifikat-Repository.
-
In Environment (Umgebung):
-
Wählen Sie Reservierte Kapazität.
-
Wählen Sie für Flotte die oben erstellte Flotte aus.
-
Geben Sie den Namen der Servicerolle ein, die für Sie erstellt CodeBuild wird.
-
Geben Sie die folgenden Umgebungsvariablen an.
-
Name:
MATCH_PASSWORD, Wert:<secrets arn>, Typ: Secrets Manager (Secrets ARN wurde in Schritt 5 für MATCH_PASSWORD erstellt) -
Name:
FASTLANE_SESSION, Wert:<secrets arn>, Typ: Secrets Manager (Secrets ARN wurde in Schritt 5 für FASTLANE_SESSION erstellt)
-
-
-
Fügen Sie in Buildspec Folgendes hinzu:
version: 0.2 phases: install: commands: - gem install bundler - bundle install build: commands: - echo "Building and signing the app..." - bundle exec fastlane build post_build: commands: - echo "Build completed on date" artifacts: files: - '*/.ipa' name: app-$(date +%Y-%m-%d)
Schritt 8: IAM-Rolle konfigurieren
Stellen Sie nach der Erstellung des Projekts sicher, dass die CodeBuild Servicerolle Ihres Projekts über Berechtigungen für den Zugriff auf den S3-Bucket verfügt, der die Zertifikate enthält. Fügen Sie der Rolle die folgende Richtlinie hinzu:
Schritt 9: Führen Sie den Build aus
Führen Sie den Build aus. Sie können den Build-Status überprüfen und sich anmelden CodeBuild.
Sobald der Job abgeschlossen ist, können Sie das Protokoll des Jobs einsehen.
Fehlerbehebung
-
Wenn Sie Probleme beim Abrufen von Zertifikaten haben, stellen Sie sicher, dass Ihre IAM-Berechtigungen für den S3-Zugriff korrekt eingerichtet sind.
-
Wenn Probleme beim Entschlüsseln von Zertifikaten auftreten, stellen Sie sicher, dass Sie in der Umgebungsvariablen MATCH_PASSWORD die richtige Passphrase festgelegt haben.
-
Stellen Sie bei Problemen mit der Codesignatur sicher, dass Ihr Apple Developer-Konto über die erforderlichen Zertifikate und Profile verfügt und dass die Bundle-ID in Ihrem Xcode-Projekt mit der in Ihrem Bereitstellungsprofil übereinstimmt.
Sicherheitsüberlegungen
Im Folgenden finden Sie Sicherheitsüberlegungen für dieses Tutorial.
-
Stellen Sie sicher, dass Ihr S3-Bucket über die entsprechenden Sicherheitseinstellungen verfügt, einschließlich der Verschlüsselung im Ruhezustand. Stellen Sie insbesondere sicher, dass der Bucket keinen öffentlichen Zugriff hat, und beschränken Sie den Zugriff nur CodeBuild auf das System, das Zugriff haben muss.
-
Erwägen Sie, AWS Secrets Manager zum Speichern vertraulicher Informationen MATCH_PASSWORD und FASTLANE_SESSION zu verwenden.
Dieses Beispiel bietet eine Einrichtung für die iOS-Codesignatur mit Fastlane bei der CodeBuild Verwendung von Amazon S3 für die Zertifikatsspeicherung. Möglicherweise müssen Sie einige Schritte an Ihre spezifischen Projektanforderungen und Ihre CodeBuild Umgebung anpassen. Dieser Ansatz nutzt AWS Dienste für mehr Sicherheit und Integration innerhalb des AWS Ökosystems.