Zum Inhalt springen
WebViewGold Vibe Coding in den App Store
Deutsch
WebViewGold holen

Claude Code

Ein Claude Code Subagent, der deine App gegen die Regeln von App Store und Google Play prüft

Ein Subagent ist eine Markdown-Datei in .claude/agents/ mit eigenen Anweisungen, eigener Tool-Liste und eigenem Kontextfenster. Gib ihm die Store-Regeln, an denen webbasierte Apps scheitern, und er prüft deine Web-App und beide WebViewGold-Projekte wie ein strenger Kollege aus dem App-Review, bevor Apple oder Google es tun. Unten findest du die komplette Agent-Datei, wie du sie startest und wie du mit ihrem Bericht weiterarbeitest.

Ab $109 einmalig pro Plattform, oder unser Team erledigt alles ab $698.

  • Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen
  • Kein Programmieren nötig
  • Einmalzahlung, kostenlose Updates
  • 24/7 Support von echten Menschen
  • Made in Germany seit 2014 · ISO 27001

Warum ein Subagent besser ist als ein langer Review-Prompt

Du könntest eine Review-Checkliste einfach in deine Haupt-Session von Claude Code einfügen. Das klappt einmal, dann zeigen sich drei Probleme. Das Review liest Dutzende Dateien (Routen, Auth, Preise, Info.plist, AndroidManifest.xml) und füllt damit den Kontext, den du für den eigentlichen Fix brauchst. Die Session, die den Code geschrieben hat, benotet ihn auch selbst, also erklärt sie eher ihre eigenen Entscheidungen, statt sie anzumerken. Und die Checkliste lebt in deiner Zwischenablage, nicht im Repository.

Ein Subagent löst alle drei Probleme. Claude Code startet ihn mit einem frischen Kontextfenster, übergibt ihm nur die Aufgabe und bekommt nur den Bericht zurück. In seiner tools-Zeile kannst du Edit und Write weglassen, damit der Reviewer nicht nebenbei still Dinge "repariert". Und weil die Datei in .claude/agents/ liegt, bekommt jeder, der das Repository klont, auch eine Cloud-Session oder ein CI-Job, denselben Reviewer mit denselben Regeln.

Halte die Arbeitsteilung klar: Deine CLAUDE.md sagt Claude, wie es im Alltag Store-kompatiblen Code schreibt; der Subagent beurteilt auf Abruf einen Release-Kandidaten.

Die komplette Agent-Datei

Speichere sie als .claude/agents/store-review-checker.md. Die Pfade native/ios und native/android gehen davon aus, dass die WebViewGold-Projekte neben deiner Web-App liegen; passe sie an deine Struktur an. Alles unterhalb der zweiten ----Zeile wird zum System-Prompt des Subagents. Die Anweisungen bleiben auf Englisch, das funktioniert auch dann zuverlässig, wenn du selbst auf Deutsch mit Claude sprichst.

markdown
---
name: store-review-checker
description: Strict pre-submission reviewer for the Apple App Store and Google Play. Reviews this web app and its WebViewGold iOS and Android projects against the store rules that reject web-based apps and returns a prioritized report. Use proactively before every store submission, after changes to login, payments, account settings, legal pages or native config, and whenever the user asks whether the app will pass review. Read-only, it reports and never edits.
tools: Read, Grep, Glob, Bash, WebFetch
model: inherit
color: orange
---

You are a senior App Store and Google Play reviewer. You review a web app that is
published as native iOS and Android apps with WebViewGold, a native shell that loads
the production URL of this web app in a WKWebView (iOS) or Android WebView.
Your job: find what would get the next submission rejected, before Apple or Google do.

## Ground rules
- You are read-only. Never create, edit or delete files. Use Bash only for read-only
  commands such as git log, git diff, git show, git tag and ls. Never install, build,
  deploy, commit or push.
- Every finding needs evidence: a file path and line, a route, or a file that is missing.
  If you cannot verify something from the repository, put it under "Needs a human check"
  instead of guessing.
- Do not invent WebViewGold settings or URL schemes. The sources of truth are the pages
  under https://www.webviewgold.com/docs/ and https://www.webviewgold.com/llms-full.txt.
- Store rules change. When a finding depends on the exact current wording of a guideline
  (external purchase links, target API level, account deletion details), name the
  guideline to re-check instead of presenting the rule as permanent.

## Where to look
1. CLAUDE.md and docs/store-review.md first: app facts, demo account notes, review history.
2. Web app: routes, auth flows, settings, pricing and checkout, legal pages, error and
   empty states, and everything gated by isNativeApp() or the WebViewGold user agent token.
3. iOS project in native/ios: Config.swift (host, webviewurl, useragent_iphone,
   useragent_ipad, feature switches), Info.plist (usage descriptions, display name),
   entitlements.
4. Android project in native/android: Config.java (HOST, HOME_URL, USER_AGENT, require*
   flags), AndroidManifest.xml (permissions, intent filters), app/build.gradle
   (applicationId, targetSdk, versionCode, versionName).
5. If a release tag exists, review git diff <last-release-tag>..HEAD with extra care.

## What to check

Apple App Store
- 4.2 Minimum functionality: the app offers more than the website in a browser tab.
  Push, offline handling, the share sheet, biometrics or similar are actually wired in.
  A marketing site or a list of links as the main experience is a blocker.
- 2.1 App completeness: no placeholder text, lorem ipsum, "coming soon", dead buttons,
  404 links or test data. Everything behind a login is reachable with a demo account.
- 2.3 Accurate metadata: in-app wording matches the app name; no "Get it on Google Play"
  or other platform references inside the iOS app.
- 3.1.1 and 3.1.2 Payments: digital goods and subscriptions used in the app go through
  in-app purchase in the native app. Flag every web checkout, price and external payment
  link visible inside the app. US storefront rules for external purchase links have
  changed since 2025: mark those findings "decide with the current guideline text".
- 4.8 Login services: if Google, Facebook or another third-party login exists, an
  equivalent privacy-focused option such as Sign in with Apple is offered.
- 5.1.1 Privacy: a privacy policy route that describes real data practices; account
  deletion inside the app (not only by email) when users can create accounts; every
  usage description in Info.plist belongs to a feature that is used and states a
  specific purpose.
- 5.1.2 Tracking: ads or cross-app tracking only after the App Tracking Transparency prompt.
- 1.2 User-generated content (posts, chat, shared AI output): report, block, filtering
  and a published contact.
- 4.0 Design: safe-area padding on fixed bars, tap targets of at least 44 pt, no
  horizontal scrolling at 320 px width, no hover-only controls.

Google Play
- Minimum functionality and webview spam: the same substance test as Apple 4.2.
- User Data policy and Data safety: list every SDK and endpoint that receives user data
  and compare it with the privacy policy; mismatches with the Data safety form are blockers.
- Account deletion: an in-app path plus a public web URL for deletion requests.
- Permissions: every permission in AndroidManifest.xml is used; unused require* flags
  in Config.java are false.
- Target API level: report targetSdk and tell the user to compare it with Google's
  current requirement.
- Impersonation and intellectual property: no brand names, logos or screenshots the
  developer does not own.
- Families: if children could be part of the audience, flag it as a human decision.

WebViewGold configuration
- Config.swift and Config.java point to the production domain over HTTPS, never to
  localhost, a LAN address, 10.0.2.2, a tunnel or a preview deployment.
- The user agent token the web app checks for is set in useragent_iphone,
  useragent_ipad and USER_AGENT.
- askforpushpermissionatfirstrun is false if the web app asks later with registerpush://.
- deletecache (iOS) and CLEAR_CACHE_ON_STARTUP (Android) are false unless the user
  wants a logout on every launch.

## Report format
Return exactly these four parts and nothing else.

### Verdict
One sentence: "Ready to submit", "Ready after fixing N blockers" or "Not ready".

### Findings
| # | Severity | Store | Guideline | Evidence | Fix | Where to fix |
Severity: Blocker (likely rejection), Risk (rejection possible), Polish.
Where to fix: web app, WebViewGold config, store console, or human decision.
Sort by severity, merge duplicates, at most 15 rows.

### Needs a human check
What you could not verify from the repository: device behavior, App Store Connect
metadata, screenshots, Data safety answers.

### Review notes draft
Three to six sentences for App Review: what the app does, which native features to try,
where the demo account is provided. Never include passwords.

Was die einzelnen Teile der Datei bewirken

name und description

Über den name rufst du ihn auf (@agent-store-review-checker). Die description liest Claude, wenn es selbst entscheidet, ob es delegiert. Deshalb zählt sie die auslösenden Situationen auf: vor einer Einreichung, nach Änderungen an Login, Zahlungen oder nativer Config und die Frage, ob die App durchs Review kommt.

tools

Read, Grep und Glob, um Dateien zu durchsuchen, Bash für Git-Befehle, die nur lesen, und WebFetch, um den aktuellen Wortlaut der Richtlinien oder die WebViewGold-Docs nachzuschlagen. Kein Edit und kein Write: Der Reviewer berichtet, du entscheidest, was sich ändert.

model und color

inherit nutzt das Modell, mit dem deine Session gerade läuft. Setze opus für einen langsameren, gründlicheren Durchlauf bei einer großen Codebasis oder sonnet für schnelle Checks. color ändert nur, wie der Agent im Terminal angezeigt wird.

Grundregeln (Ground rules)

Ohne Beleg kein Befund: Jeder Befund braucht Datei und Zeile, sonst landet er unter "Needs a human check". Allein diese Regel beseitigt die meisten vagen Warnungen, die automatische Reviews sonst nutzlos machen.

Die Prüfungen

Nach Store gruppiert und jeweils an eine Richtlinie oder Policy gebunden, sodass jeder Befund nachvollziehbar bleibt. Der WebViewGold-Block fängt Konfigurationsfehler ab, die in einem Review der reinen Web-App nie auftauchen würden.

Berichtsformat

Eine feste Tabelle mit Schweregrad und "Where to fix" (Web-App, WebViewGold-Config, Store-Konsole, menschliche Entscheidung). Eine feste Ausgabe macht Durchläufe vergleichbar, und du kannst sie direkt in eine Fix-Session einfügen.

Großartige Möglichkeit, eine Web-App in eine native App zu verwandeln! Schnelle Umsetzung und ein toller Weg, Apps in die App Stores zu bringen, ohne eine komplett native App entwickeln zu müssen!

Kevin Joling · FlightConnections & TrainConnections · Trustpilot

Gib ihm die Fakten, die er nicht aus dem Code lesen kann

Manches steht nicht im Repository: was du verkaufst, welche Features du in den nativen Projekten eingeschaltet hast, wie sich der Reviewer anmeldet, was Apple beim letzten Mal gesagt hat. Schreib das in eine kurze Datei, die der Agent zuerst liest. Echte Passwörter gehören nicht hinein; die trägst du in App Store Connect unter App-Review-Informationen und in der Play Console im Formular App-Zugriff ein.

markdown
# Store review facts (read first by the store-review-checker subagent)

## App
- Store name: Example App
- iOS bundle ID: com.example.app / Android applicationId: com.example.app
- Production URL loaded by both apps: https://app.example.com
- User agent token checked by the web app: WebViewGoldApp

## Native features switched on in WebViewGold
- iOS: OneSignal push (kPushEnabled), QR scanner, Face ID via bioauth://
- Android: OneSignal push (PUSH_ENABLED), QR scanner, biometrics via bioauth://
- Not used: location, microphone, contacts, AdMob

## Money
- Pro subscription. Web: Stripe checkout. Native apps: in-app purchase via RevenueCat only.

## Accounts
- Email sign-up and Google login; Sign in with Apple offered on iOS.
- Reviewer demo account: credentials are entered in App Store Connect (App Review
  Information) and in the Play Console (App access). Role: regular user with sample data.

## Review history
- 1.0 rejected under Guideline 4.2 (no native features). 1.1 added push and QR check-in.
- 1.2 approved on both stores.

Installieren und das erste Review starten

Rund zehn Minuten, die meiste Zeit davon liest du den ersten Bericht.

  1. Die Agent-Datei anlegen

    Führe im Root des Repositorys mkdir -p .claude/agents aus, speichere die Datei oben als .claude/agents/store-review-checker.md und committe sie. Claude Code beobachtet den Ordner und übernimmt spätere Änderungen innerhalb von Sekunden; nur wenn der Ordner agents ganz neu ist, muss die Session einmal neu starten.

  2. Die Faktendatei ergänzen

    Speichere docs/store-review.md mit den echten Fakten deiner App und deiner Review-Historie. Aktualisiere sie nach jedem Review-Ergebnis, ob Freigabe oder Ablehnung; genau der Abschnitt zur Historie verhindert, dass derselbe Fehler zweimal passiert.

  3. Das Review starten

    Füge den Prompt unten ein oder ruf den Agenten direkt mit @agent-store-review-checker prüfe den Release-Kandidaten auf. Claude Code delegiert auch von selbst, wenn du etwa fragst "Kommt das durchs App-Review?", weil die description genau das vorsieht.

  4. Erst das Fazit lesen, dann die Blocker

    Fang mit der Verdict-Zeile an, dann kommen die Blocker-Zeilen. Jede Zeile sagt, wo der Fix hingehört. Fixes an der Web-App gehen zurück in deine Haupt-Session, Fixes an der WebViewGold-Config sind kleine Änderungen in Config.swift oder Config.java, und Punkte für die Store-Konsolen werden zu deiner To-do-Liste für App Store Connect und die Play Console.

  5. Fixen, dann erneut prüfen

    Lass die Haupt-Session die Blocker einzeln beheben, mit je einem Commit, und starte den Subagent danach noch einmal. Ein sauberer zweiter Durchlauf auf demselben Commit ist dein Signal zum Bauen.

  6. Auch die Live-Site prüfen

    Der Subagent liest Code. Lass den kostenlosen App-Store-Readiness-Check und den Play-Store-Readiness-Check über deine Produktions-URL laufen, um zu finden, was nur die deployte Site zeigt, und teste den Build danach auf einem echten Handy.

Der Review-Prompt

Ersetze Version, Tag und Dateinamen durch deine. Der letzte Absatz hält die Haupt-Session davon ab, mit Änderungen loszulegen, bevor du den Bericht gelesen hast.

In Claude Code im Projekt-Root einfügen
Nutze den Subagent store-review-checker, um dieses Projekt zu prüfen, bevor wir Version 1.3 im App Store und bei Google Play einreichen.

Umfang: die gesamte Web-App plus native/ios und native/android. Das letzte freigegebene Release ist als v1.2.0 getaggt, schau dir die Commits nach diesem Tag also besonders genau an. App-Fakten, Hinweise zum Demo-Account und unsere Review-Historie stehen in docs/store-review.md.

Wenn der Subagent fertig ist, zeig mir seinen Bericht genau so, wie er ihn geschrieben hat. Schlag dann einen Fix-Plan nur für die Blocker-Zeilen vor, gruppiert nach: Änderungen an der Web-App, Änderungen an der WebViewGold-Config, Aufgaben in den Store-Konsolen. Bearbeite keine Datei, bevor ich den Plan bestätigt habe.

Fallstricke, die den Reviewer weniger nützlich machen

  • Ihm Schreibrechte geben. Ein Reviewer mit Edit und Write fängt an, Dinge zu reparieren, und seine Befunde gehen in einem Diff unter. Halte die tools-Zeile rein lesend und erledige die Fixes in der Haupt-Session.
  • Bash für harmlos halten. Der Subagent folgt deinen normalen Berechtigungsregeln, seine Shell-Befehle fragen also weiterhin nach Freigabe, sofern du sie nicht erlaubt hast. Soll er gar keine Befehle ausführen, streich Bash aus der tools-Zeile; lesen kann er trotzdem jede Datei.
  • Regeln fest einbauen, die sich bewegen. Die Regeln für Zahlungslinks im US-Storefront haben sich seit 2025 verschoben, Google hebt das Ziel-API-Level jedes Jahr an, und die Details zur Kontolöschung werden laufend präzisiert. Die Datei weist den Agenten an, die erneut zu prüfende Richtlinie zu nennen, statt eine Regel als dauerhaft darzustellen. Lies die Agent-Datei selbst einmal im Jahr neu.
  • Erwarten, dass er die App sieht. Er sieht weder gerenderte Screens noch deine Metadaten in App Store Connect oder deine Screenshots. Füge die Texte deines Store-Eintrags in die Faktendatei ein, wenn er sie prüfen soll, und teste auf Geräten.
  • Berichte ohne Grenzen. Ohne das Limit von 15 Zeilen und die Skala für den Schweregrad bekommst du vierzig Hinweise der Sorte "könnte man verbessern". Kurze Berichte werden gelesen.
  • Falsche Pfade. Liegt dein iOS-Projekt in ios/ statt in native/ios, passe die Datei an, sonst meldet der Agent die nativen Prüfungen als "not found".

Bevor du einem sauberen Bericht vertraust

  • Der Bericht nennt die Dateien, die er gelesen hat: Routen der Web-App, Config.swift, Config.java, Info.plist und AndroidManifest.xml.
  • Der Demo-Account aus der Faktendatei funktioniert heute auf der Produktions-URL.
  • /privacy, /terms und /delete-account laden auf der Produktionsdomain, nicht nur in der Entwicklung.
  • Beide Config-Dateien zeigen auf die HTTPS-Produktionsdomain.
  • Jeder Berechtigungstext in Info.plist gehört zu einem Feature, das du vorführen kannst.
  • Du hast den Build auf einem echten iPhone und einem echten Android-Handy geöffnet, einmal davon im Flugmodus.
  • Deine Review-Notizen folgen dem Template für Review-Notizen.

Häufig gestellte Fragen

Wo liegen die Subagent-Dateien von Claude Code?

Projekt-Subagents liegen in .claude/agents/ im Repository und werden über Git geteilt. Persönliche Subagents, die in jedem Projekt funktionieren sollen, gehören nach ~/.claude/agents/. Jede Datei ist Markdown mit YAML-Frontmatter; name und description sind Pflicht, alles andere ist optional.

Nutzt Claude Code den Subagent auch, ohne dass ich darum bitte?

Das kann passieren. Claude entscheidet anhand des Felds description; deshalb nennt das Beispiel konkrete Auslöser und sagt "use proactively". Wenn du sichergehen willst, nenn den Subagent im Prompt oder erwähne ihn per @.

Welches Modell sollte der Review-Subagent nutzen?

inherit ist ein vernünftiger Standard. Stell die model-Zeile vor einem großen Release auf opus, wenn du einen langsameren, gründlicheren Durchlauf willst, oder auf sonnet, wenn du ihn oft bei kleinen Änderungen laufen lässt.

Kann er meinen Eintrag in App Store Connect und meine Datenschutzangaben prüfen?

Nicht direkt, denn er sieht nur das Repository. Kopiere Beschreibung, Keywords und deine Antworten zu App Privacy und Data safety in eine Datei wie docs/store-listing.md, dann vergleicht der Agent sie mit dem, was der Code tatsächlich erhebt.

Heißt ein sauberer Bericht, dass Apple und Google die App freigeben?

Nein. Er beseitigt die vorhersehbaren Probleme, aber Reviewer testen die laufende App, und Richtlinien ändern sich. Für den Rest gibt dir WebViewGold ein Sicherheitsnetz: Lehnen Apple oder Google die App aus Gründen ab, die nichts mit deinen Inhalten zu tun haben, kannst du innerhalb von 14 Tagen nach dem Kauf eine Erstattung der Lizenz beantragen.

Kann ich denselben Subagent in CI oder in Claude Code im Web nutzen?

Ja. Cloud-Sessions und die Claude Code GitHub Action arbeiten in einem Checkout deines Repositorys, die committete Agent-Datei ist dort also ebenfalls verfügbar. Der Guide zu GitHub Actions zeigt einen Workflow, der bei jedem Pull Request ein Store-Readiness-Review ausführt.

Drei Wege, deine App in die Stores zu bringen

Gleiches Ergebnis, unterschiedlich viel Arbeit auf deiner Seite. Alle drei kommen mit Genehmigungsgarantie und 24/7 Support von echten Menschen.

Selbst machen

$109 pro Plattform, einmalig

Die WebViewGold-Lizenz: ein fertiges Xcode- oder Android-Studio-Projekt. URL einfügen, Name und Icon setzen, Features einschalten, bauen und einreichen. Kostenlose Updates für immer.

Pakete auf der Hauptseite ansehen

Full Service

$698 pro Plattform $798

Schick uns deine URL und dein Icon. Unser Team konfiguriert, baut und liefert deine App innerhalb von 72 Stunden, White-Label, inklusive Quellprojekten. Beide Plattformen für $1,158.

Full-Service-Details Powered by WeSetupYourWebViewApp

Winter-Sale-Preise gültig bis 31. Dezember 2026.

Bereit, deine App zu veröffentlichen?

App Store & Google Play Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen

Lieber abgeben? Full Service: Wir konfigurieren, bauen und liefern innerhalb von 72 Stunden, ab $698 pro Plattform. Fragen? Chatte mit uns – 24/7.

Erstattungen erfolgen zu den in unseren FAQ genannten Bedingungen: eine nicht inhaltsbedingte Ablehnung durch Apple und/oder Google, geltend gemacht innerhalb von 14 Tagen nach dem Kauf.