01Schmerzpunkte: gym OK, Upload scheitert, Webhook stumm
Release-Fenster setzen Erfolg auf exit code 0—ohne dokumentierte Speicher-Peaks und Upload-Schwellen wiederholt sich derselbe Nachtschicht-Fehler.
- Schmerzpunkt 1: SSH bricht ab; nur ein Fragment der xcodebuild-Ausgabe bleibt—Code Signing wirkt wie Zufall.
- Schmerzpunkt 2: TestFlight „wird verarbeitet“, während OpenClaw gateway und ein zweiter Build auf M4 16 GB laufen—Swap frisst Minuten.
- Schmerzpunkt 3: CI leitet nur exit code weiter; Webhook ohne strukturierte
summary—On-Call braucht über 30 Minuten.
02Budget-M4 16 GB: Speicher-Peak bei Fastlane gym
Feldwerte auf vuzcloud (ein Scheme, Release, inkl. dSYM). Parallel openclaw gateway: ca. 1,5 GB Reserve einplanen. Vor dem ersten Archive sysctl hw.memsize und Activity Monitor-Screenshot für die Beschaffung dokumentieren—so rechtfertigen Sie später 24 GB statt 16 GB.
| Phase | Peak 16 GB | Schwelle / Stabilität |
|---|---|---|
| DerivedData-Warmup | 6–8 GB | Einzel-Lane stabil |
| gym-Archive-Spitze | 10–12 GB | Kein Simulator parallel |
| Swap-Risiko | >14 GB dauerhaft | 24 GB oder zweiter Lease |
03gym/xcodebuild: Log-Felder für OpenClaw-Slicing
Empfehlung: bundle exec fastlane gym --verbose 2>&1 | tee ~/build-logs/gym.log—OpenClaw extrahiert JSON-Felder für CI:
| Feld | Anker in der Log-Datei | Entscheidung |
|---|---|---|
| exit_signal | ARCHIVE FAILED / ** ARCHIVE SUCCEEDED ** |
Build vs. Signatur-Phase |
| signing_hint | Code Sign error, Provisioning profile |
Schlüsselbund / Profil |
| target_line | Erste error:-Zeile |
Webhook-Titel |
| duration_sec | ▸ Archive bis Ende |
Timeout gym 90 min |
Zusätzlich scheme und export_method aus dem Fastfile in dieselbe JSON-Datei schreiben. So unterscheidet der Webhook einen Signaturfehler von einem Compilerfehler, ohne die komplette xcodebuild-Ausgabe in Slack zu spammen. Bei wiederholten Läufen dieselbe Log-Datei rotieren, damit OpenClaw immer das letzte Segment mit requestUUID oder Apple-Fehlercode findet.
04TestFlight-Upload: Vorab-Checkliste mit Schwellen
Vor jedem TestFlight-Upload diese Schwellen abhaken—ein einzelner Compliance-Fehler kostet oft mehrere Stunden Wartezeit in App Store Connect.
- Version:
CFBundleShortVersionStringgegen Connect; Build-Nummer +1. - Compliance: Export compliance, Verschlüsselung, Datenschutz-URL gesetzt.
- Artefakt: IPA < 4 GB; dSYM im Archive.
- Signatur: Distribution gültig;
security find-identity -v -p codesigningzeigt gültige ID. - Pfad:
fastlane pilot uploadoder Transporter-Runbook—nicht mischen. - API-Key: App Store Connect API-Key mit „Developer“-Rolle; JWT-Gültigkeit unter 20 Minuten erneuern.
- Netz: Upload nur starten, wenn freier Systemspeicher über 30 GB und Median-RTT zum Connect-Endpunkt stabil unter 250 ms liegt.
05OpenClaw-Gateway: Webhook bei Fehlern (Mindest-JSON)
Gateway starten (siehe OpenClaw-Install-Matrix). Bei Fehler HTTPS-POST mit:
pipeline:fastlane_gym|testflight_uploadnode_region: hk | sg | uswsummary: max. 280 Zeichen inkl.signing_hintundtarget_linelog_tail_url: isolierter Pfad oder Presigned URL—ohne Secrets
06HK/SG vs. US-West: RTT-Kurztabelle (Interaktion und Upload)
P90-Richtwerte für Ostasien-Terminals—im eigenen Netz messen; Hintergrund: APAC-US-West-RTT-Matrix.
| Pfad | HK/SG-Knoten | US-West-Knoten |
|---|---|---|
| SSH-Interaktion | 15–45 ms | 120–200 ms |
| Connect-Upload | Transpazifik schwankt | Große IPA stabiler (Off-Peak) |
| Split-Schwelle | Interaktion P90 > 200 ms → Build US-West, Review HK/SG | |
07Gesamtabnahme: gym bis TestFlight-Verarbeitung
Schritt 1: Auf kaufen.html M4 16 GB und Region wählen; SSH per hilfe.html; mindestens 30 GB frei.
Schritt 2: gym mit verbose-Log; ARCHIVE SUCCEEDED und IPA-Pfad im Fastfile-Output.
Schritt 3: Vorab-Liste abhaken; pilot upload oder Transporter—Upload-Timeout 45 min.
Schritt 4: OpenClaw-Webhook mit pipeline:testflight_upload; Build in Connect sichtbar.
Schritt 5: IAP-Regression: StoreKit-2-Matrix; Beschaffung mit Peak- und RTT-Screenshot dokumentieren.
Zitierbar: gym-Timeout 90 min, Upload 45 min; nach drei Backoffs mit Jitter Webhook senden—kein Alert-Spam bei Jitter.
Stabilität: Bei SSD über 65 Prozent während Archive pausieren; VNC auf 16 GB schließen.
Kosten: Ab fünf abrechenbaren Tagen Wochen-Tier auf preise.html prüfen.
08FAQ: Signatur, Timeout, Webhook
gym-Timeout auf Remote-Mac? Gesperrter Schlüsselbund, langsames DerivedData-Sync, Swap auf 16 GB—Cache vorwärmen, zweite Lane stoppen, ggf. 24 GB.
gym OK, TestFlight nein? Vorab-Liste, dann pilot- oder Transporter-Log per OpenClaw slicen.
Kein Webhook? Gateway-Port, TLS, Body-Limit; curl-POST manuell testen.
Provisioning profile does not match? Bundle-ID in Fastfile, Xcode-Projekt und Connect-App-Eintrag angleichen; auf dem Lease-Mac nur ein Distribution-Profil pro Bundle aktiv halten.
Budget-M4 mieten und Release-Pipeline reproduzierbar machen
Vertiefen Sie Transporter-Praxis und StoreKit-2-Sandbox; Startseite für das Gesamtangebot, preise.html für Budget-M4-Pakete.