iOS-Apps mit einem Coding-Agent
Automatisch aus dem Englischen übersetzt.
Auf Englisch lesenEin Coding-Agent kann die Registrierung deiner App so testen, wie ein Mensch es tun würde: sie bauen, im iOS Simulator ausführen, das Formular mit einer Testadresse von Proxy Mail QA ausfüllen und dann den Code eingeben oder den Link aus der E-Mail öffnen. Proxy Mail QA gibt dem Agent die Adresse und den Code oder Link aus der E-Mail; die eigenen Tools des Agents steuern den Simulator.
Jedes Setup unten beginnt damit, dass Proxy Mail QA mit dem Agent verbunden ist: Füge das Setup mit einem Prompt ein oder verbinde den MCP server von Hand.
Um es auszuprobieren, bevor du einen Agent auf deine eigene App ansetzt, nutze das iOS-Beispiel: eine kleine Registrierung mit E-Mail-Aktivierung und ohne Server. Die Aktivierungs-E-Mail sendest du selbst, von deinem eigenen E-Mail-Konto, und der Agent bekommt den Code von Proxy Mail QA.
Bereich iOS Simulator in Claude Code Desktop
Abschnitt betitelt „Bereich iOS Simulator in Claude Code Desktop“Claude Code Desktop auf einem Mac kann deine App in einem Simulator neben der Unterhaltung ausführen, sich durch sie tippen und den Bildschirm lesen (Anleitung von Anthropic). Dafür braucht es Xcode mit installierter iOS-Plattform, und du erlaubst Claude einmal pro Simulator den Zugriff.
Öffne dein iOS-Projekt in einer Claude Code-Desktop-Sitzung mit verbundenem Proxy Mail QA und frag:
Baue die App und führe sie im Simulator aus. Registriere dich mit einer neuen Proxy Mail QA-Testadresse und dem Passwort, das sie dir gibt, gib dann den Bestätigungscode aus der E-Mail ein und prüfe, dass die App das Konto als bestätigt anzeigt.
Claude macht dann Folgendes:
- Baut die App und startet sie im Simulator.
- Ruft
create_addressmitpassword: trueauf, um eine neue Adresse und ein Passwort zu bekommen. - Tippt in das Registrierungsformular und gibt beides ein.
- Ruft
wait_for_code(oderwait_for_link) auf, um den Code oder Link aus der E-Mail zu bekommen. - Gibt den Code ein oder öffnet den Link im Simulator, damit die App ihn verarbeitet. Das Öffnen eines Links folgt dem Berechtigungsmodus deiner Sitzung.
Für einen Link, der die App öffnen soll, frag nach genau diesem Link: „Öffne den Bestätigungslink aus der E-Mail in der App“. Enthält die E-Mail sowohl einen Weblink als auch einen App-Link (myapp://…), kommt der Weblink zuerst; wait_for_link mit app: true (oder app=true von REST API) fragt nach dem App-Link. iOS fragt „In deiner App öffnen?“, bevor ein App-Link sie öffnet, und Claude tippt auf Öffnen.
Der Bildschirm des Simulators kann einen Schritt etwas verzögert anzeigen. Deshalb prüft Claude per Screenshot, ob das Eingetippte zu sehen ist, bevor es auf den Button tippt, und macht einen weiteren, bevor es einen Schritt als fehlgeschlagen wertet.
Die Screenshots aus dem Simulator-Bereich werden wie der Rest der Unterhaltung an Anthropic gesendet. Verwende auf diesem Simulator also nur Testkonten. Proxy Mail QA-Adressen und -Passwörter sind von vornherein Testkonten.
Claude Code oder Codex mit den Tools von Xcode
Abschnitt betitelt „Claude Code oder Codex mit den Tools von Xcode“Xcode kann seine Build- und Projekt-Tools über den eigenen MCP server von Xcode mit einem Agenten teilen, den du außerhalb davon ausführst (Anleitung von Apple):
-
Wähle in Xcode Xcode → Settings → Intelligence und aktiviere unter Model Context Protocol die Option Allow external agents to use Xcode tools.
-
Füge dem Agent die Tools von Xcode hinzu:
claude mcp add --transport stdio xcode -- xcrun mcpbridgeFür Codex:
codex mcp add xcode -- xcrun mcpbridge -
Öffne dein Projekt in Xcode und gib dem Agent dann den Prompt wie oben.
Wenn beide Server verbunden sind, baut der Agent über Xcode und bekommt die Testadresse und die E-Mail über Proxy Mail QA.
Die eigenen Agents von Xcode
Abschnitt betitelt „Die eigenen Agents von Xcode“Die integrierten Agents von Xcode (Claude Agent, Codex und Gemini) können zusätzliche MCP-Server aus ihren Konfigurationsordnern unter ~/Library/Developer/Xcode/CodingAssistant/ (ClaudeAgentConfig, codex und gemini) laden und Agent-Plug-ins aus Intelligence settings → Plug-ins → Add Plug-in installieren (Anleitung von Apple).
Unser Plugin für Claude Code bündelt den MCP server und einen Skill, der den Registrierungsablauf beschreibt. Wenn du es dort über seine URL hinzufügst, sollte der Claude Agent von Xcode dieselben Tools bekommen. Die Plug-in-Unterstützung von Xcode haben wir noch nicht getestet. Falls es nicht funktioniert, nutze stattdessen Claude Code oder Codex zusammen mit Xcode.
Was du noch erfragen kannst
Abschnitt betitelt „Was du noch erfragen kannst“Egal, wie der Agent verbunden ist, er kann mehr vom Ablauf abdecken:
- Ein auf Felder aufgeteilter Code. Viele Apps zeigen ein Feld pro Ziffer. Der Agent tippt in das erste Feld und gibt den ganzen Code ein, den die meisten Apps auf die Felder verteilen. Dann prüft er, ob jede Ziffer angekommen ist, bevor er weitermacht: Ein unvollständiger Code zählt als Fehlversuch.
- Ein längeres Registrierungsformular. Für ein Formular, das auch einen Benutzernamen mit Regeln, ein Geburtsdatum oder ein Land abfragt, liefert
form_valuesfür jedes Feld einen Wert aus einer eigens dafür erstellten neuen Adresse. - Die E-Mail selbst. Wenn der Code oder Link angekommen ist, prüft
check_emailmitexpect_host, gesetzt auf die Domain, die die Links deiner App öffnen (etwa ihre Universal-Link-Domain), ob der Link dorthin führt, außerdem SPF, DKIM, DMARC und eine angegebene Gültigkeitsdauer.count_emailserkennt eine versehentlich gesendete zweite E-Mail. - Ein Dev-Server auf deinem Mac. Der Simulator erreicht deinen Mac unter
localhost, Links eines Dev-Builds auflocalhost:3000sind also zu erwarten. Bitte den Agent, ihn als Dev-Umgebung zu markieren (mark_dev_host), oder füge ihn in den Projekteinstellungen hinzu. Dann lässtcheck_emaildiese Links durchgehen, statt sie als Fehler zu werten. - Dasselbe Konto beim nächsten Mal. Bitte den Agent, beim Erstellen festzuhalten, wo das Konto verwendet wird (
environment, etwastaging, und Tags wieios), damitlist_addresseses wiederfindet. Mit einem API-Schlüssel, der gespeicherte Passwörter lesen darf, liefertget_sign_indas Konto und sein Passwort in einem Aufruf. - Ein Bericht. Frag nach einem Laufbericht: Der Agent ruft zuerst
start_runund am Endefinish_runauf, das den Bericht in Markdown zurückgibt.
Angebote und Marketing-E-Mails
Abschnitt betitelt „Angebote und Marketing-E-Mails“Dieselben Tools testen, was die App nach der Registrierung sendet:
- Der Gutschein. Nach der Registrierung für ein Angebot in der App wartet der Agent mit
wait_for_codeundkind: coupon, das den Gutschein mit Rabatt und Enddatum zurückgibt und angibt, wie lange es gedauert hat (after_seconds). Er gibt den Gutschein in das Aktionscode-Feld der App ein, aufgeteilt auf Felder wie bei einem Code. - Checkout, nur in der Sandbox. Nutze StoreKit-Tests in Xcode oder den eigenen Testmodus der App, nie eine echte Karte oder einen echten Kauf. Der Agent hält mit
record_coupon_resultfest, was die App getan hat:accepted,rejectedodererror, mit der Meldung der App. Ein erneuter Versuch mit demselben Code prüft, ob ein Einmalcode abgelehnt wird. - Ein Gutschein als Link, der die App öffnet, etwa
myapp://redeem?code=…:wait_for_linkmitapp: truegibt ihn zurück, und der Agent öffnet ihn im Simulator mitxcrun simctl openurl bootedund dem Link. - Ein Angebot pro Person. Eine erneute Registrierung mit einer Variante derselben Adresse (
get_address_variantslistet sie auf, etwaname+promo1@…) und danncheck_offerszeigen, ob die App das Angebot zweimal vergeben hat. - Schwierige Namen und Passwörter.
get_name_variantsundget_password_variantsliefern Werte für die anderen Felder des Formulars (Apostrophe, Akzente, andere Schriften, jede Symbolklasse, die Grenzen des Felds); der Agent gibt jeden ein und berichtet, was die App gemacht hat. - Einwilligung. Schalter bei der Registrierung und Benachrichtigungseinstellungen: Der Agent hält mit
record_consentfest, was er gewählt hat (und ob der Schalter anfangs aktiv war), undcheck_emailbewertet das folgende Marketing nach den Regeln am Wohnort der Persona. - Abmelden, über den Einstellungsbildschirm der App oder den im Simulator geöffneten Link aus der E-Mail: Der Agent ruft dann
mark_unsubscribedauf, und später listetcheck_unsubscribealle Marketing-E-Mails auf, die danach kamen. Belege sollten weiterhin ankommen.
Stattdessen als Test schreiben
Abschnitt betitelt „Stattdessen als Test schreiben“Für Android siehe Android-Apps mit einem Coding-Agent.
Um die Prüfung als UI-Test zu behalten, der in CI läuft, siehe iOS (XCUITest) oder Maestro für einen Ablauf, der auch Android abdeckt. Ihre Helfer tun dasselbe in einem Test: die E-Mails prüfen und zählen, sich mit einem gespeicherten Konto anmelden oder eines ausleihen und jeden Test zum Bericht des Pull Requests hinzufügen.
Eine Frage zu dieser Seite?
Frag in jeder Sprache. Die Doku kann dir sofort antworten oder deine Frage an das Team von Proxy Mail QA schicken, das auf Englisch antwortet.