← AIAP Tool GuidesAll programsHomeSearch
AIAP Tool Guides·AI for Design·59:46

Shipping a Web App to the iOS App Store with Expo and Claude Code: WebView Wrapper, EAS Build and Submit, App Store Connect and TestFlight

Amlan Designer, "a fellow builder and designer" with entrepreneurial stints; builds one expense-management app (FinLit India) across the series

The short version

  1. Claude Code wraps the hosted web app in a React Native WebView and builds it in Expo's cloud (EAS) - no Xcode; needs a free expo.dev account and a paid Apple Developer account (0:00-0:22).
  2. Errors are pasted back to Claude Code (empty app.json fields, a parent git repo); the submit step failed until an outdated Paid Applications Agreement was accepted under Business (0:06-0:31).
  3. Store listing fields, a lean first build (no login, no paywall) to validate demand, an icon from ChatGPT, queued builds, and TestFlight invites (0:34-0:59).

At a glance, three clicks deep

Skim here first: the closed row is the glance, open is the study card with the key points and timestamps, and the ↓ link drops to that concept's full write-up below.

01WebView wrapper plus EAS: an iOS app without XcodePackage the existing web app in a React Native WebView and let Expo Application Services build, sign and su…›

Package the existing web app in a React Native WebView and let Expo Application Services build, sign and submit it from the cloud.

Choices (0:02-0:04)

Login and init (0:04-0:11)

Build and signing (0:11-0:21)

↓ Full write-up of this concept

02Submitting to App Store Connect - and the contract blockerIf app creation fails on "contract state", look for an outdated Paid Applications Agreement under Business…›

If app creation fails on "contract state", look for an outdated Paid Applications Agreement under Business and accept it.

Blocker (0:22-0:28)

Submit (0:28-0:31)

Add build and TestFlight (0:52-0:59)

↓ Full write-up of this concept

03Listing fields and a lean first build to validate demandFill every listing field, but ship the first build without login or paywall to speed review and test intere…›

Fill every listing field, but ship the first build without login or paywall to speed review and test interest in the store page.

Listing (0:34-0:40)

Strategy (0:39)

Icon and new build (0:40-0:52)

↓ Full write-up of this concept

The concepts in full

01

WebView wrapper plus EAS: an iOS app without Xcode

how-to

Don't rewrite the app - wrap it.

Claude Code creates a blank Expo project and drives the terminal: EAS login (interactive; Google-sign-in users must set an Expo password), eas init (fixed by removing empty app ID and team ID fields in app.json), production build (Apple login with two-factor code, reuse the distribution certificate, new provisioning profile), then an isolated git repo when the parent repo pulled in another app's files. Free-tier builds queue (15-20 minutes; submission up to an hour); the paid EAS Starter was quoted at about $45.

Do it in this order
Why it matters

The cheapest path from a working web app to TestFlight.

02

Submitting to App Store Connect - and the contract blocker

how-to

An app on the dashboard is not a finished submission - the build still has to be added.

Claude first suggested creating the app record manually; the real cause was a renewed agreement that no longer showed a banner on the home page. After accepting (with another 2FA code), the submit reused the App Store Connect API key and the app appeared as "Prepare for Submission". Later: App Store Connect > version 1.0 > Add build; TestFlight invites by email code (Redeem) or public link and tester groups.

Do it in this order
Why it matters

The non-code blocker most first-timers hit.

03

Listing fields and a lean first build to validate demand

"I do not add any complexity in the first build."

Fields: name, subtitle, age rating, screenshots per device size, promotional text, description ("very critical... searchable"), support URL (mandatory), release mode (manual, so you approve before go-live). The trainer claims "a 99.99% chance" of rejection if fields are incomplete and that no login or paywall "will fast track my review". He adds login and payments only after "a couple of thousands" of visitors. The icon came from ChatGPT using Apple's icon guidelines; Expo resizes it for every device.

Why it matters

Validates the idea before building the expensive parts.

Tools referenced

ToolCoverageMomentContext
Claude Codedemonstrated
Expodemonstrated
EASdemonstrated
App Store Connectdemonstrated
TestFlightdemonstrated
ChatGPTdemonstrated
React Nativeexplained
Vercelmentioned
Xcodementioned

Action items

    Resources mentioned

    Resources
    • docLesson page on the platform

    Extraction notes

    This page was built from an auto-generated transcript, which garbles product and people's names. Those were corrected silently in everything above and logged here for transparency. The warnings flag claims that were true on the recording day but change fast.

    Transcript corrections applied

    The transcript saysThe trainer actually means
    Cloud Code / blog codeClaude Code
    ES / easinit / es.jsonEAS / eas init / eas.json
    kid triplegit repo
    Finlet / FinliteFinLit India

    True on recording day — verify before relying