/ Verzeichnis / Playground / XcodeBuild
● Offiziell getsentry ⚡ Sofort

XcodeBuild

von getsentry · getsentry/XcodeBuildMCP

Schließen Sie den Feedback-Loop für iOS/macOS AI-Coding — bauen Sie, testen Sie, führen Sie auf dem Simulator aus, erfassen Sie Protokolle und Screenshots, alles aus dem Chat.

XcodeBuildMCP (von Sentry, ehemaliger Getsentry-Organisationsmitglied Cameron) wraps xcodebuild, xcrun simctl und die Simulator-Laufzeit. Ermöglicht es einem Agent, ein Projekt zu kompilieren, Tests auszuführen, einen Simulator zu starten, die App zu installieren, sie zu steuern und Protokolle oder Screenshots zurück zu lesen — der fehlende Feedback-Loop für AI-erstellten iOS-Code.

Warum nutzen

Hauptfunktionen

Live-Demo

In der Praxis

xcodebuild.replay ▶ bereit
0/0

Installieren

Wählen Sie Ihren Client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "xcodebuild": {
      "command": "npx",
      "args": [
        "-y",
        "xcodebuildmcp@latest"
      ]
    }
  }
}

Öffne Claude Desktop → Settings → Developer → Edit Config. Nach dem Speichern neu starten.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "xcodebuild": {
      "command": "npx",
      "args": [
        "-y",
        "xcodebuildmcp@latest"
      ]
    }
  }
}

Cursor nutzt das gleiche mcpServers-Schema wie Claude Desktop. Projektkonfiguration schlägt die globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "xcodebuild": {
      "command": "npx",
      "args": [
        "-y",
        "xcodebuildmcp@latest"
      ]
    }
  }
}

Klicken Sie auf das MCP-Servers-Symbol in der Cline-Seitenleiste, dann "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "xcodebuild": {
      "command": "npx",
      "args": [
        "-y",
        "xcodebuildmcp@latest"
      ]
    }
  }
}

Gleiche Struktur wie Claude Desktop. Windsurf neu starten zum Übernehmen.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "xcodebuild",
      "command": "npx",
      "args": [
        "-y",
        "xcodebuildmcp@latest"
      ]
    }
  ]
}

Continue nutzt ein Array von Serverobjekten statt einer Map.

~/.config/zed/settings.json
{
  "context_servers": {
    "xcodebuild": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "xcodebuildmcp@latest"
        ]
      }
    }
  }
}

In context_servers hinzufügen. Zed lädt beim Speichern neu.

claude mcp add xcodebuild -- npx -y xcodebuildmcp@latest

Einzeiler. Prüfen mit claude mcp list. Entfernen mit claude mcp remove.

Anwendungsfälle

Praxisnahe Nutzung: XcodeBuild

Überprüfen Sie, dass AI-generierter iOS-Code tatsächlich auf einem Simulator erstellt und ausgeführt wird

👤 iOS-Entwickler, die Claude für Feature-Arbeit und SwiftUI-Prototyping verwenden ⏱ ~15 min intermediate

Wann einsetzen: Claude hat gerade SwiftUI-Views geschrieben oder bearbeitet. Bevor Sie 'fertig' sagen, möchten Sie kompilieren, auf dem Simulator ausführen und einen Screenshot machen.

Voraussetzungen
  • Xcode installiert — Xcode 15+ aus dem Mac App Store; bestätigen Sie mit xcodebuild -version
  • Ein startbarer Simulator — Xcode → Einstellungen → Plattformen → iOS Simulator heruntergeladen
Ablauf
  1. Entdecken Sie das Projekt und erstellen Sie es
    Finden Sie das Xcode-Projekt in /Users/me/Projects/MyApp. Erstellen Sie das Scheme 'MyApp' für das iOS Simulator-Ziel 'iPhone 16'. Melden Sie alle Fehler oder Warnungen.✓ Kopiert
    → Build erfolgreich, oder spezifische Fehler mit Datei:Zeile
  2. Starten Sie den Simulator, installieren und starten Sie die App
    Starten Sie einen iPhone 16-Simulator, falls nicht bereits gestartet. Installieren Sie die erstellte App und starten Sie sie. Machen Sie einen Screenshot nach 3 Sekunden.✓ Kopiert
    → App läuft; Screenshot erfasst
  3. Steuern Sie die Funktion
    Tippen Sie auf die Schaltfläche 'Sign Up', geben Sie '[email protected]' in das E-Mail-Feld ein, tippen Sie auf 'Absenden'. Screenshot nach jedem Schritt.✓ Kopiert
    → Folge von Screenshots, die den Ablauf zeigen; oder eine klare Tap-fehlgeschlagen-Fehlermeldung

Ergebnis: Vorher-/Nachher-Screenshots, die beweisen, dass die Funktion funktioniert, zusammen mit dem Code committiert.

Fallstricke
  • Das Tippen nach Koordinaten ist fragil über verschiedene Gerätegroßen hinweg — Bevorzugen Sie zugänglichkeitsetikett-basierte Taps, wenn das MCP sie unterstützt; verwenden Sie Koordinaten nur als Fallback
  • Der Simulator-Build verwendet eine andere Architektur als ein echtes Gerät — Für architektur-sensitive Code bauen Sie auch mindestens einmal für ein physisches Gerät, bevor Sie mergen
Kombinieren mit: filesystem · github

Führen Sie Ihre Xcode-Unit- und UI-Tests aus dem Chat aus und triagieren Sie Fehler

👤 iOS-Entwickler, die schnelles Test-Feedback ohne Wechsel zu Xcode möchten ⏱ ~10 min beginner

Wann einsetzen: Sie haben eine Änderung vorgenommen, möchten das ⌘U-Äquivalent ausführen und lassen Claude Fehler auswerten.

Ablauf
  1. Tests ausführen
    Führen Sie alle Tests für das Scheme 'MyApp' auf dem Ziel 'iPhone 16' aus. Zeigen Sie mir alle Fehler mit Datei, Zeile und Erwartung.✓ Kopiert
    → Bestandenes Zählen plus Fehlerliste mit Standorten
  2. Konzentrieren Sie sich auf einen Fehler
    Lesen Sie für den ersten Fehler die Quelldatei und sagen Sie mir, ob der Test falsch oder der Code falsch ist. Seien Sie spezifisch.✓ Kopiert
    → Klare Diagnose, nicht 'es könnte beides sein'
  3. Beheben und erneut ausführen
    Wenden Sie den Fix an. Führen Sie nur den fehlgeschlagenen Test erneut aus, um grün zu bestätigen.✓ Kopiert
    → Grüne Wiederholung

Ergebnis: Tests wieder grün mit einer fokussierten Wiederholung, nicht mit einer ganzen Suite-Wiederholung.

Fallstricke
  • xcodebuild test ist bei kalten Caches langsam — Verwenden Sie das Flag -only-testing: zum Eingrenzen; das MCP macht dies über test-by-identifier verfügbar
Kombinieren mit: github

Diagnose eines rätselhaften Xcode-Build-Fehlers

👤 iOS-Entwickler, die auf eine 'Linker-Fehler / fehlender Framework / Signierung'-Mauer treffen ⏱ ~20 min intermediate

Wann einsetzen: xcodebuild schlägt fehl und die Fehlerausgabe besteht aus 4000 Zeilen Rauschen.

Ablauf
  1. Erstellen Sie und erfassen Sie den rohen Fehler
    Erstellen Sie das Scheme 'MyApp' und geben Sie nur die Zeilen zurück, die 'error:' oder 'warning:' enthalten, plus 3 Kontextzeilen um jede.✓ Kopiert
    → Fokussierte Fehlerliste ohne Rauschen
  2. Erklären Sie den ersten Fehler
    Erklären Sie den ersten Fehler in menschlichen Worten. Worüber beschwert sich Xcode eigentlich, und was sind die Top 3 Ursachen?✓ Kopiert
    → Klartext-Diagnose mit wahrscheinlichen Ursachen
  3. Wenden Sie den Fix an und erstellen Sie neu
    Wenden Sie den wahrscheinlichsten Fix an (überprüfen Sie Info.plist/Berechtigungen/Package.swift nach Bedarf), erstellen Sie neu und bestätigen Sie, dass der Fehler behoben ist.✓ Kopiert
    → Sauberer Build

Ergebnis: Befreien Sie sich von der Build-Mauer ohne ein 2-Stunden-Stack Overflow-Kaninchenloch.

Fallstricke
  • Einige Fehler sind DerivedData-Veraltung — Wenn alles andere fehlschlägt: Bereinigen Sie DerivedData über das MCP-Clean-Tool und erstellen Sie dann neu
Kombinieren mit: filesystem

Erfassen Sie einen App-Absturz auf einem Simulator und finden Sie die Grundursache

👤 iOS-Entwickler, die einen reproduzierbaren Absturz jagen ⏱ ~20 min advanced

Wann einsetzen: Ihre App stürzt auf einen bestimmten Ablauf im Simulator ab, und Sie möchten, dass Claude das Absturz-Protokoll liest.

Ablauf
  1. Reproduzieren Sie mit Protokollerfassung
    Starten Sie MyApp auf dem iPhone 16-Simulator. Starten Sie die Protokollerfassung. Führen Sie diesen Ablauf aus: öffnen Sie Einstellungen, tippen Sie auf 'Cache löschen'. Stoppen Sie die Protokollerfassung, wenn die App beendet wird.✓ Kopiert
    → Absturz reproduziert, Protokolle gespeichert
  2. Analysieren Sie den Absturz
    Finden Sie den Absturz in den erfassten Protokollen. Symbolizieren Sie bei Bedarf. Sagen Sie mir den fehlgeschlagenen Thread, die Top 5 Stack-Frames und die wahrscheinliche Zeile in unserem Code.✓ Kopiert
    → Symbolisierte Stack-Trace zeigt auf eine spezifische Quelldatei
  3. Schlagen Sie den Fix vor
    Basierend auf der Stack-Trace und dem umgebenden Code, was ist die minimale Änderung, um es zu beheben? Wenden Sie es an.✓ Kopiert
    → Gezielter Fix, nicht ein großer Umbau

Ergebnis: Ein behobener Absturz mit symbolisiertem Beweis, den Sie in die PR einfügen können.

Fallstricke
  • Release-Config-Abstürze symbolizieren nicht ohne dSYMs — Verwenden Sie die Debug-Konfiguration für die Reproduktion; testen Sie Release separat, um den Fix zu bestätigen
Kombinieren mit: sentry · github

Kombinationen

Mit anderen MCPs für 10-fache Wirkung

xcodebuild + filesystem

Swift bearbeiten → erstellen → Screenshot → iterieren, ganz im einen Chat

Bearbeiten Sie ContentView.swift, um einen Dark-Mode-Umschalter hinzuzufügen. Erstellen Sie MyApp für iPhone 16, führen Sie es aus, machen Sie Screenshots im hellen und dunklen Modus.✓ Kopiert
xcodebuild + github

Beheben Sie ein Problem, überprüfen Sie auf dem Simulator, öffnen Sie ein PR mit einem Screenshot

Problem #42 sagt, dass die Login-Schaltfläche im Querformat falsch ausgerichtet ist. Reproduzieren Sie auf dem iPad-Simulator, beheben Sie das SwiftUI-Layout, fügen Sie Vorher-/Nachher-Screenshots zum PR an.✓ Kopiert
xcodebuild + sentry

Reproduzieren Sie einen von Sentry gemeldeten Absturz auf einem Simulator mit identischen Bedingungen

Sentry-Absturz iOS-113 trat unter iOS 18.1 mit Benutzergebietsschema fr-FR auf. Starten Sie einen passenden Simulator, reproduzieren Sie und beheben Sie.✓ Kopiert

Werkzeuge

Was dieses MCP bereitstellt

WerkzeugEingabenWann aufrufenKosten
discover_projects directory: str Finden Sie heraus, was in einem Repo erstellt werden soll, ohne Pfad-Eingaben free
build_project project: str, scheme: str, destination: str, configuration?: 'Debug'|'Release' Erstellen Sie ein .xcodeproj oder .xcworkspace für ein Ziel free
build_spm_package path: str Erstellen Sie ein Swift Package (kein .xcodeproj) free
test_project project, scheme, destination, only_testing?: str[] Führen Sie die Testsuite aus; verwenden Sie only_testing zum Eingrenzen free
list_simulators (keine) Sehen Sie, welche Simulatoren vorhanden sind und welche gestartet sind free
boot_simulator simulator_id or name: str Starten Sie einen Simulator, bevor Sie Apps installieren free
install_app simulator_id: str, app_path: str Installieren Sie die erstellte .app auf einem gestarteten Simulator free
launch_app simulator_id: str, bundle_id: str Starten Sie die installierte App free
tap_at / type_text / send_url simulator params Steuern Sie die UI free
screenshot simulator_id: str, path?: str Erfassen Sie den visuellen Status free
start_log_capture / stop_log_capture simulator_id Erfassen Sie Konsolen-/Systemprotokolle für eine Sitzung free
clean project, scheme? Löschen Sie DerivedData für dieses Projekt, wenn Builds seltsam werden free

Kosten & Limits

Was der Betrieb kostet

API-Kontingent
Keine — alles läuft lokal über xcodebuild/simctl
Tokens pro Aufruf
Build-Protokolle können riesig sein. Bevorzugen Sie Filterung auf Fehler/Warnungen anstelle von vollständigen Protokoll-Dumps
Kosten in €
Kostenlos (erfordert einen Mac mit Xcode, was selbst ein Preis ist)
Tipp
Führen Sie standardmäßig inkrementelle Builds aus, nicht saubere Builds. Bereinigen Sie nur, wenn DerivedData seltsam wird.

Sicherheit

Rechte, Secrets, Reichweite

Credential-Speicherung: Keine Anmeldeinformationen auf der MCP-Ebene. Code-Signing-Anmeldeinformationen befinden sich wie üblich in Ihrem Mac-Schlüsselbund.
Datenabfluss: Keine vom MCP. xcodebuild kann Abhängigkeiten (SPM, CocoaPods) aus ihren üblichen Quellen abrufen.
Niemals gewähren: Lassen Sie nicht zu, dass der Agent Code-Sign-Identitäten oder Provisioning Profile ohne Bestätigung ändert

Fehlerbehebung

Häufige Fehler und Lösungen

xcodebuild: Befehl nicht gefunden

Xcode Command Line Tools fehlen oder sind nicht ausgewählt. Führen Sie xcode-select --install aus und dann sudo xcode-select -s /Applications/Xcode.app/Contents/Developer.

Prüfen: xcodebuild -version
Kein solches Ziel 'iPhone 16'

Simulator mit diesem Namen ist nicht für die aktive Xcode heruntergeladen. Öffnen Sie Xcode → Einstellungen → Plattformen → iOS Runtime herunterladen. Oder verwenden Sie list_simulators und wählen Sie einen vorhandenen.

Prüfen: xcrun simctl list devices
Build erfolgreich, aber App wird nicht gestartet — 'NSException'

Überprüfen Sie App-Protokolle über start_log_capture direkt vor dem Starten. Oft fehlender Schlüssel in Info.plist oder Berechtigungskonflikt.

Tests hängen auf einer SwiftUI-Vorschau fest

SwiftUI-Vorschauen können in seltenen Fällen xcodebuild test deadlocken. Deaktivieren Sie Preview-Helfer in Test-Schemes oder führen Sie mit -disable-concurrent-testing aus.

Alternativen

XcodeBuild vs. andere

AlternativeWann stattdessenKompromiss
Direct shell MCP running xcodebuildSie möchten maximale Flexibilität und akzeptieren den Sicherheits-Tradeoff eines rohen Shell-MCPKeine Ergonomie; Claude muss jedes xcodebuild-Flag kennen
JetBrains MCP (AppCode is EOL)Sie sind in einer JetBrains IDE — gilt nicht mehr für iOSHeute keine iOS-Alternative
Fastlane via shellSie benötigen signierte Builds und TestFlight-Uploads, nicht nur Simulator-VerifikationViel schwerer; außerhalb des Geltungsbereichs für Inner-Loop-Entwicklung

Mehr

Ressourcen

📖 Offizielle README auf GitHub lesen

🐙 Offene Issues ansehen

🔍 Alle 400+ MCP-Server und Skills durchsuchen