xcodebuild auf einer macOS-VM aus und authentifiziert sich mit einem App Store Connect API key, den Sie als Devin Secrets hinterlegen.
Bevor Devin einen Build hochladen kann, müssen Sie:
- Ihre App in App Store Connect einrichten.
- Einen App Store Connect API key erstellen.
- Den Key und Ihre Team ID als Secrets in Devin hinzufügen.
- Sicherstellen, dass Devin die Server von Apple erreichen kann.
Für Uploads nach TestFlight sind macOS-Sitzungen erforderlich. Wenn Sie ein Dedicated-SaaS-Deployment nutzen, wenden Sie sich an Ihr Account-Team, um macOS-VMs aktivieren zu lassen.
Voraussetzungen
App Store Connect einrichten
1
Die neuesten Vereinbarungen akzeptieren
Der Account Holder meldet sich bei App Store Connect an und akzeptiert unter Business alle ausstehenden Vereinbarungen. Uploads schlagen fehl, solange eine erforderliche Vereinbarung aussteht.
2
Die Bundle-ID registrieren
Gehen Sie im Apple Developer Portal zu Certificates, Identifiers & Profiles → Identifiers und registrieren Sie eine App-ID, die zur Bundle-ID Ihres App-Targets passt. Überspringen Sie diesen Schritt, wenn der Identifier bereits vorhanden ist.
3
Den App-Eintrag erstellen
Gehen Sie in App Store Connect zu Apps, klicken Sie auf + und wählen Sie New App. Legen Sie Plattform, Name, Hauptsprache, die Bundle-ID aus dem vorherigen Schritt sowie eine SKU fest. TestFlight-Uploads schlagen fehl, wenn für die Bundle-ID kein App-Eintrag vorhanden ist.
4
Eine Beta-Gruppe erstellen
Öffnen Sie die App, gehen Sie zu TestFlight und erstellen Sie eine Gruppe:
- Internal testing: Tester müssen Nutzer in Ihrem App Store Connect Team sein. Builds stehen zur Verfügung, sobald die Verarbeitung abgeschlossen ist.
- External testing: Tester können beliebige Personen mit einer E-Mail-Adresse oder einem öffentlichen Link sein. Füllen Sie zuerst die Test Information aus (Beschreibung der Beta-App, E-Mail-Adresse für Feedback und Kontaktdaten für das Review). Der erste Build jeder Version durchläuft das Beta App Review.
5
Angaben zur Exportkonformität machen
Für jeden Build muss die Frage zur Exportkonformität beantwortet werden, bevor Tester ihn installieren können. Damit diese Frage nicht bei jedem Build erscheint, setzen Sie
ITSAppUsesNonExemptEncryption in der Info.plist Ihrer App. Setzen Sie den Wert auf NO, wenn die App ausschließlich ausgenommene Verschlüsselung wie HTTPS verwendet.App Store Connect API key erstellen
1
API-Zugriff aktivieren
Gehen Sie in App Store Connect zu Users and Access → Integrations → App Store Connect API. Falls der API-Zugriff noch nicht aktiviert ist, klickt der Account Holder auf Request Access und akzeptiert die Bedingungen.
2
Team Key generieren
Klicken Sie unter Team Keys auf +. Geben Sie einen Namen ein, etwa
Devin TestFlight, und wählen Sie die Rolle App Manager. Zum Generieren eines Keys benötigen Sie die Admin-Rolle. Falls Xcode mit einem App-Manager-Key kein Verteilungszertifikat erstellen kann, generieren Sie stattdessen einen Key mit der Rolle Admin.3
Private Key herunterladen
Klicken Sie neben dem neuen Key auf Download, um
AuthKey_<KEY_ID>.p8 zu speichern. Apple erlaubt den Download der Datei nur ein einziges Mal. Wenn Sie sie verlieren, widerrufen Sie den Key und generieren einen neuen.4
Issuer ID und Key ID kopieren
Die Issuer ID wird oberhalb der Tabelle mit den Keys angezeigt. Die Key ID steht in der Zeile des jeweiligen Keys.
5
Team ID finden
Gehen Sie im Apple Developer Portal zu Membership details und kopieren Sie die Team ID. Es handelt sich um eine 10-stellige Zeichenfolge, zum Beispiel
A1B2C3D4E5.Secrets zu Devin hinzufügen
Führen Sie folgenden Befehl aus, um den Private Key auf einem Mac zu kopieren:
- Organization: Jede Sitzung in Ihrer Organisation kann den Key verwenden. Nutzen Sie diesen Geltungsbereich, wenn das Team Builds mit Devin ausliefert.
- Personal: Nur von Ihnen gestartete Sitzungen können den Key verwenden.
Netzwerkzugriff erlauben
api.appstoreconnect.apple.com sowie die weiteren Apple-Hosts hinzu, die xcodebuild zum Signieren und Hochladen nutzt. Eine Freigabe von *.apple.com deckt sie alle ab.
Ein blockierter Host äußert sich meist als Authentifizierungsfehler, nicht als Netzwerkfehler. Siehe Fehlerbehebung.
Einen Build hochladen
ASC_PRIVATE_KEYmit den Berechtigungen0600nach~/.appstoreconnect/private_keys/AuthKey_$ASC_KEY_ID.p8schreiben.- Die neueste Build-Nummer über die App Store Connect API prüfen und eine höhere wählen.
- Die App mit
xcodebuild archivearchivieren. - Den Build mit
xcodebuild -exportArchivesignieren und hochladen. - Warten, bis die Verarbeitung abgeschlossen ist, und den Build anschließend über die App Store Connect API zur Beta-Gruppe hinzufügen.
destination auf upload gesetzt ist:
-allowProvisioningUpdates ermöglicht es Xcode, das Verteilungszertifikat und das Provisioning-Profil mit dem API key zu erstellen, sodass auf der VM keine Signaturressourcen installiert sein müssen.
Wenn dein Repository bereits ein Release-Skript enthält, etwa eine fastlane-Lane oder ein make-Target, weise Devin an, dieses zu verwenden. fastlane nimmt denselben Schlüssel über app_store_connect_api_key entgegen.
Die Schritte im Blueprint speichern
knowledge im Blueprint deines Repository hinzu:
Fehlerbehebung
No Accounts with App Store Connect Access oder Failed to Use Accounts beim Export. Prüfen Sie zuerst den Netzwerkzugriff. Wenn die VM die Server von Apple nicht erreichen kann, meldet xcodebuild diesen Fehler auch dann, wenn der Key gültig ist. Achten Sie in den Zeilen darüber auf ITunesConnectFoundationErrorDomain Code=-1003. Wenn das Netzwerk in Ordnung ist, prüfen Sie, ob der Key die Rolle App Manager hat.
No profiles for '<bundle ID>' were found. Die Bundle-ID ist nicht für das Team in APPLE_TEAM_ID registriert, oder es existiert kein zugehöriger App-Eintrag in App Store Connect.
The provided entity includes an attribute with a value that has already been used. Die Build-Nummer wurde für diese Version bereits verwendet. Laden Sie erneut mit einer höheren Build-Nummer hoch.
Der Build wird hochgeladen, aber Tester können ihn nicht installieren. Prüfen Sie den Build in App Store Connect → TestFlight. Möglicherweise wird er noch verarbeitet, es fehlen Angaben zur Exportkonformität, oder er wartet auf das Beta App Review.
Xcode kann kein Verteilungszertifikat erstellen. Die Rolle des Keys erlaubt das Verwalten von Zertifikaten nicht. Erzeugen Sie einen Key mit der Rolle Admin, oder lassen Sie einen Admin das Verteilungszertifikat im Apple Developer Portal erstellen.
Umgebungsvariablen sind in der Sitzung leer. Secrets stehen nur in Sitzungen zur Verfügung, die nach dem Hinzufügen gestartet wurden. Starten Sie eine neue Sitzung.
