Join the waitlistDownload

How to build an iOS app with Claude Code. Project, simulator, skills and tasks

Step by step from an empty folder to a build in the simulator. How Claude Code sees the app's screens, what goes into CLAUDE.md and which SwiftUI mistakes the agent repeats.

In short

Claude Code builds an iOS app on your Mac. It writes SwiftUI, builds the project with xcodebuild, runs it in the iPhone simulator and looks at screenshots. You need a Mac with Xcode 26 or 27 and a Claude Pro plan from $20 a month, since the free plan doesn't include Claude Code. The agent takes project rules from a CLAUDE.md file (Anthropic, October 16, 2026).

What you need first

Claude Code runs in the terminal or in the Claude app for Mac, and Xcode builds the iOS app. So you need a Mac, Xcode and a Claude plan that includes Claude Code.

WhatRequirement as of October 16, 2026
Claude CodemacOS 13 or later, 4 GB of memory or more. Install with curl -fsSL https://claude.ai/install.sh | bash or through Homebrew
PlanPro at $20 a month or $17 billed yearly, Max at $100 or $200. The free plan doesn't include Claude Code
XcodeXcode 26.3 is the last one that installs on macOS Sequoia 15.6. Xcode 27 needs macOS Tahoe 26.6 and an Apple silicon Mac
Apple Developer account$99 a year, needed for TestFlight and publishing, not for the first builds

From the Claude Code docs, Claude pricing and Apple's Xcode version table, checked October 16, 2026.

Claude Code is available only in the countries on Anthropic's supported list, which has applied since May 12, 2026 (anthropic.com).

Your first project, from an empty folder to the simulator

  1. Folder and Git. Create an empty folder, run git init in it and start claude. Git lets you undo a bad change.
  2. The Xcode project. Ask the agent to create a SwiftUI project for iPhone. It's easier when the project is described in a text file and generated by XcodeGen. The agent edits settings in plain text more reliably than inside an Xcode project file.
  3. CLAUDE.md. The /init command writes a starter file with project rules. Extend it right away, there's an example below.
  4. Plan version 1. Turn on plan mode with Shift+Tab. Claude describes the screens and the order of work and doesn't touch the code until you approve the plan.
  5. The first screen. Ask it to build for the simulator, run the app and send a screenshot. If the screenshot shows what you asked for, commit and move on to the next screen.

Keep version 1 to five screens. How to describe it to the agent is in How to brief an AI agent.

How Claude Code sees the simulator

Claude Code sees your app through screenshots. It builds the project, installs it in the simulator, launches it and takes a screenshot, then looks at the image and fixes the code. There are three ways to do it.

  • Xcode commands in the terminal. xcodebuild builds the project, and xcrun simctl boots the simulator, installs and launches the app, takes a screenshot and switches dark mode. All our apps were checked this way.
  • The simulator panel in the Claude app. The Claude app for Mac has an iOS Simulator panel, currently available as a preview. Up to four devices, and Claude taps the screen and takes screenshots itself. It needs a Pro, Max, Team or Enterprise plan and doesn't support a real iPhone (docs, October 16, 2026).
  • Xcode's own tools. Since Xcode 26.3 you can connect Xcode's tools to Claude Code with xcrun mcpbridge. The agent builds the project, runs tests and gets SwiftUI Preview snapshots while the project is open in Xcode (Apple).

There are open-source tools too. MobileBuildMCP from Sentry, formerly XcodeBuildMCP, builds and runs apps in the simulator and has 6,486 stars on GitHub (GitHub, October 17, 2026).

How Claude Code checks a screen of your iPhone appHow Claude Code checks a screen of an iPhone app, one loop per change. 1. Task: one screen or one change in plain words. 2. A SwiftUI code change, with errors shown at once through the swift-lsp plugin. 3. Build with xcodebuild build for the simulator. 4. Run: xcrun simctl boot, install, launch. 5. Screenshot: xcrun simctl io screenshot in light and dark mode. 6. Review and commit: Claude looks at the screenshot, and so do you, and the working version goes to Git. Commands checked on Xcode 27.0 on October 17, 2026.How Claude Code checks a screen of your iPhone appOne loop per change. Xcode commands, checked on Xcode 27.0, October 17, 2026123456TaskCode changeBuildRunScreenshotReview and commitOne screen or one change, in plainwordsSwiftUI, errors show at oncethrough swift-lspxcodebuild build for the simulatorxcrun simctl boot, install, launchxcrun simctl io screenshot, light anddark modeClaude looks at the screenshot, andso do you. A working version goesto Git
Claude Code sees the app only through screenshots, so every loop ends with an image of the screen. Xcode 27.0 commands, checked October 17, 2026.

CLAUDE.md and skills for iOS

CLAUDE.md is a file with project rules that Claude Code reads at the start of every task. Anthropic suggests keeping it under 200 lines (docs). For an iPhone app, four blocks help.

# Project
Native iPhone app in SwiftUI, iOS 18 and later.
No third-party packages unless I ask.

# Build
After every change, build for the iPhone 17 Pro simulator
and send a screenshot of the screen you changed.

# New iOS frameworks
Before using Liquid Glass, StoreKit or Foundation Models,
read the docs that ship with Xcode, not from memory.

# Git
Commit a working version after every screen.

The third block matters more than it seems. Models know the newest iOS frameworks poorly and confidently write calls that don't exist. Xcode, meanwhile, keeps documentation for its own assistant right inside the app. In Xcode 27.0 that's 20 Markdown files, including Liquid Glass for SwiftUI and UIKit, StoreKit updates and Foundation Models (the AdditionalDocumentation folder inside Xcode, checked on our Mac on October 17, 2026). Point the agent to that folder.

Repeated routines go into skills. A skill is a folder .claude/skills/name/ with a SKILL.md file, and Claude loads it when it's relevant or when you type /name (docs). For iOS, a skill usually describes building and checking screens. The official swift-lsp plugin shows the agent compile errors right after each edit, installed with /plugin install swift-lsp@claude-plugins-official (docs).

Bugs that cost us builds

Claude Code writes working SwiftUI, but it repeats some mistakes and doesn't notice them on its own. Here are four from our apps, with dates.

  • A folder named Resources. On August 20, 2026 the folder with the book's chapters in our app Prodam planetu was called Resources, and code signing failed with an error about a neighboring file. It took about four builds to find out that the code signing tool takes such a folder for part of a Mac app. Name the folder something else.
  • Jank in scrolling. On August 22, 2026 the lessons in Solitaire Collection stuttered while scrolling. The cause was .shadow, .clipShape and .mask on views with content, which redraw everything inside on every frame. The simulator doesn't show it, only the phone does.
  • A sheet instead of a screen. In the Matriq IQ test, practice mode opened an empty sheet that couldn't be dismissed. The sheet was shown with a flag while its data was read from separate state. The fix on August 17, 2026 passes the data together with the sheet.
  • The wrong rsync. On October 2, 2026 uploads to App Store Connect started failing with Copy failed. Xcode picked up rsync 3.5.1 from Homebrew instead of the system one. Running the export with the system path fixes it.
Four bugs that cost us buildsFour bugs from Appto apps that cost builds. Prodam planetu, August 20, 2026: a folder named Resources broke code signing, about four builds went into finding it, the folder was renamed. Solitaire Collection, August 22, 2026: .shadow, .clipShape and .mask on content views caused scrolling stutter, visible only on a phone. Matriq: practice mode opened an empty sheet, fixed on August 17, 2026. Upload to App Store Connect, October 2, 2026: Xcode picked up rsync 3.5.1 from Homebrew, the error was Copy failed, and the system path fixed it.Four bugs that cost us buildsAppto apps, July to October 2026. The build passes and the bug staysProdam planetu · Aug 20, 2026Solitaire Collection · Aug 22, 2026Matriq · fixed Aug 17, 2026Upload to App Store Connect · Oct 2, 2026A folder named ResourcesShadows and masks on content viewsA sheet without its datarsync from HomebrewCode signing failed with an error about a neighboring file.About four builds went into finding it. The folder wasrenamed..shadow, .clipShape and .mask redrew everything insideon every frame. The stutter only shows on a phone.Practice mode opened an empty sheet. The data nowtravels together with the sheet.Xcode picked up rsync 3.5.1 instead of the system one, anduploads failed with Copy failed. The system path fixed it.
None of the four stopped the simulator build. They showed up on a phone, with a customer and during upload. Appto registry and notes, dates on the cards.

From a build to the App Store

Once five screens work in the simulator and on your iPhone, Claude Code archives the app and uploads it to App Store Connect. Then come TestFlight for a few people, the App Store page, purchases and submission for review. All eight steps are in How to publish an app on the App Store.

Claude Code does everything around the code only when you ask it to. Appto runs on the same Claude Code on your subscription and adds the rest. Before any code it checks the niche on live App Store data, then designs the screens as live mockups, walks every screen in the simulator itself, makes store screenshots and texts in every language and fills in App Store Connect, asking for your OK before each change. How that differs from Claude Code alone is on Appto vs Claude Code.

Questions

Can Claude Code build an iOS app?

Yes. It writes Swift and SwiftUI, builds the project with xcodebuild, runs it in the simulator and fixes build errors. All 9 Appto apps on the App Store were built with Claude Code (October 13, 2026).

Do I need a Mac for Claude Code and iOS?

For iOS, yes. Claude Code itself runs on Windows and Linux too, but only Xcode builds an iPhone app, and Xcode only runs on macOS. Claude Code's cloud machines run Linux without Xcode.

Can Claude Code use the iOS Simulator?

Yes, through screenshots. It takes them with xcrun simctl, and the Claude app for Mac has a simulator panel where it taps the screen itself (preview, October 16, 2026).

How much does Claude Code cost?

Pro is $20 a month or $17 billed yearly, Max is $100 or $200. The free plan doesn't include Claude Code (claude.com, October 16, 2026).

Can I use Claude Code inside Xcode?

Yes. Since Xcode 26.3 Claude Agent works inside Xcode, and since Xcode 26.3 you can also connect Xcode's tools to Claude Code in the terminal. Details are in our article on AI in Xcode.

Build your own app in Appto

Appto checks the niche on fresh App Store data, designs the screens, writes the code, builds the App Store page and submits to Apple from your account or shows you what to press in App Store Connect. Runs on your own Claude Code or Codex.

Download for Mac