Agentic iOS App Testing · iPhone & iPad Simulator

Ship the App,
Not the Bug.

Know what’s broken before Apple or your users ever see it. Pie tests your iOS app the way a user would, with no XCUITest to write.

Fi
Tilt
Red Points
Dick's Sporting Goods
Lumo
Prado
Focal
Fairway
Teams shipping with Pie
More customers →

Why iOS is different

You Can Pause a Release. You Can’t Pull One Back.

Catch the bug before you submit and nobody sees it. After that, anyone who has the update keeps it until your fix clears App Review.

Pick the day you find the bug

The numbers are Apple’s, from its phased release schedule and App Review. Anyone can still update by hand during a phased release. Skip it and the update goes to everyone at once.

10%

of users on automatic updates can already have the bug

  • Pause the release. They keep the update.
  • Fix it, build it and submit again.
  • Wait for App Review. Apple typically reviews 90% of submissions in under 48 hours.

Your release week

Three Days by Hand. A Few Hours With Pie.

Hand the iOS test pass to Pie and your team gets its release week back. Slide the numbers to see what that’s worth.

hours a month on the iOS pass today
48
what that costs a year
$37,440

Book a demo → We’ll walk through your numbers with you.

h
h
How we count

A pass = devices × hours on each.

Hours a month = a pass × releases.

A year = hours a month × 12 × hourly cost.

The hours with Pie are the calls Pie leaves to your team: which failures matter, what gets fixed first and when it ships, on each release. They’re based on our clients’ outcomes and what they’ve experienced.

The other defaults are three iPhones and iPads, eight hours on each and two releases a month. Change any of them to match your team. This is arithmetic on your numbers, not a promise of results, and we quote Pie separately.

No XCUITest to maintain

Your Script Needs an Identifier. Pie Only Needs the Screen.

Stop fixing tests that broke for no reason. Write the test in plain English and Pie works from what’s on screen, so a renamed identifier breaks nothing.

A developer renames the button’s identifier go_to_checkout start_checkout

XCUITest · CartTests.swift

FailedNo matches found for “go_to_checkout”. The app is fine, and the test fails anyway.

PassedFinds the button by its identifier.

A sample app

The same test in Pie

  1. PassedOpen the cart.
  2. PassedEnter the promo code BIGSAVE50 and apply it.
  3. PassedCheck that the total reads $21.00.
  4. PassedTap Go to checkout.

Nothing on screen changed, so the test still passes.

XCUITest is free, native and runs on real iPhones, and it gives you full control. It also needs someone who writes Swift to keep it alive. Here’s how it compares with Appium and with Maestro.

How it runs

One Zipped Build. No Simulators to Babysit.

Hand Pie a build and the simulators are its problem. It runs your suite on the iPhone, iPad and iOS version you pick, from iOS 16 to iOS 27.

  • Build for the Simulator

    Zip the .app, because an .ipa won’t run on the Simulator. Here’s how, and for React Native.

  • Upload It or Send It From Your Pipeline

    Upload the zip in Pie, or let a GitHub Action or the API send each build.

  • Pick What Starts the Run

    A schedule, a call from your CI, or a new build once we’ve set that trigger up with you.

Pie Runs Every Test

On the devices you pick. Nobody has to watch it.

A sample run

The Report Is Waiting

37 passed3 failed1 issue

What broke, with the steps and a screenshot of each.

For a quick check on a new build, use smoke testing. For one change before a merge, use pull request testing. For everything before a release, use regression testing.

What comes back

Not a Failed Assertion. A Bug You Can Hand Over.

Pie writes up every failure, steps and screenshots included. Your iOS developer starts on the fix, not the repro.

The basics

New to iOS App Testing? Start Here.

Get up to speed in eight short answers, from how to test an iOS app to when you still need a real iPhone. The guides go deeper.

iOS app testing checks that your app works on the iPhones, iPads and iOS versions your users run, before they download it.

It goes from small to large. Unit tests check the code, UI tests check the screens, a beta puts the app in front of real people, and a final pass walks the flows that matter most.

Our mobile app testing guide covers each layer.

Run unit tests in XCTest on every change. Cover your key flows with UI tests, written in XCUITest or handed to an agent like Pie. Send a beta through TestFlight so real people find what you didn’t think of. Then check what only hardware can show on a real iPhone.

These mobile testing best practices go through it in order.

Use both, for different jobs. The Simulator is quick to run across models and iOS versions. A real iPhone is the only place to check the hardware.

What you’re checkingSimulatorReal iPhone
Sign-in, forms, checkout logicYesYes
Layouts across models and iOS versionsYesOnly those you own
Face IDSimulatedReal sensor
Camera, Bluetooth, cellular signalNoYes
Battery and heatNoYes

Our guide to real devices, emulators and simulators shows how to split them.

XCUITest is Apple’s own framework, free and native, for iOS alone. Appium drives iOS and Android from one codebase. Maestro writes tests as readable YAML flows. All three need someone to write the tests and keep them working.

Compare XCUITest and Appium, Maestro and XCUITest, or see the wider field of frameworks.

TestFlight gets a beta to real people, and automated tests don’t need it.

Building takes a Mac, because Xcode only runs on macOS. After that, testing doesn’t. Pie takes your simulator build and runs it for you, and your team reads the report in Pie.

The App Store has no undo. You can pause a phased release for up to 30 days, but anyone who has the update keeps it.

The fix is a new build, and it goes back through App Review. You can ask Apple to expedite it.

A server-side flag can hide a feature if you built one in, and React Native teams can push JavaScript fixes over the air. Anything native waits for review.

Start with what costs you most when it breaks, usually sign-in, onboarding and checkout. A single test can walk the whole journey.

Then add what iOS brings with it, such as permission prompts, push notifications, deep links, Face ID and upgrades from your last version. Each guide says what you can automate.

Apple makes every iPhone and reviews every build, so you have fewer models to cover and less control over when a fix goes out. Android has far more devices.

The builds differ too. Pie takes a simulator .app for iOS, an .apk for Android and a URL for the web, and each platform gets its own suite.

Here are the differences between iOS and Android testing.

Customers

Mobile Teams That Moved It Off the Calendar.

Days → Hoursrelease testing
“As we scale our products and offerings it’s really important to make sure we don’t ship something that breaks the existing experience for our users.”
Jonathan Bensamoun Jonathan BensamounCEO, Fi
Read the Fi case study →
0 Manual Regression5 apps · 3 markets
“After evaluating multiple vendors, Pie was the only solution that consistently executed our most complex end‑to‑end workflows with reliability across builds.”
Anil Kumar LekkalapudiDirector of QA & Automation, Tilt
More customer stories →

Security

Yes, Security Will Ask. Here’s What to Tell Them.

  • You Pick the Test Account.Pie signs in with the test login you give it, and you choose the environment your build points at.
  • We Never Use Your Source Code to Train AI Models.Source code here means the files and code changes in your repositories.
  • Logins Reach Pie’s Agents Only While a Test Runs.You keep them in Pie’s credential settings.
  • Pie Has a SOC 2 Type 2 Report.Our most recent report is available on request. Data is encrypted in transit.
Security at Pie →

FAQ

Did we miss a question?
Email us directly →

Does Pie Run on Real iPhones?

Standard runs use the iOS Simulator, on the iPhone and iPad models and iOS versions you pick. Real devices are an option at a higher cost, so ask about them when we talk.

These runs don’t stand in for real hardware. Check the camera, Bluetooth and cellular signal on a real iPhone.

What Build Do You Need From Us?

A simulator build, which is a .app zipped with ditto. In Xcode, pick an iOS Simulator as the destination, build, and zip the result. There’s no distribution profile to share.

An .ipa won’t work, because device builds don’t run on the Simulator. Here are the steps for Swift and Objective-C apps and React Native apps.

Can Pie Test Our TestFlight Build?

Not directly. TestFlight builds are device builds, and Pie needs a simulator build. Build the same code for the Simulator and upload that.

We Already Have XCUITest. Where Does Pie Fit?

Hand Pie the UI pass and retire the scripts your team is tired of fixing. Your XCTest unit tests stay where they are.

Describe each flow in plain English and Pie drafts the test. If you keep written test cases, we import them when you start with Pie.

Do We Have to Write the Tests?

No. Describe a test in plain English and Pie drafts it, or give Pie a build and it explores your app and generates tests. Your team confirms them, and there are no scripts or locators to maintain.

How Long Does a Run Take?

Results in hours, not weeks. The exact time depends on your suite and your test environment.

A bigger suite takes longer, and a full checkout takes longer than a sign-in check. A failed test runs once more to rule out a fluke.

Pie runs tests in parallel, so the biggest factor is how many can run at once. Login limits on your side can hold that down, and more test logins open it back up.

Can It Handle Sign-In and Face ID?

Sign-in runs on a test login you store in Pie, with a fixed test code if the account asks for one.

Face ID works on the Simulator as a simulated match. Keep failure and lockout cases in your own suite.

Can It Test Subscriptions and Apple Pay?

Subscription flows need a test backend, which we build with you.

Apple Pay sits outside a standard Simulator run, so check the payment sheet on a real iPhone.

Where Do the Results Go?

To your report in Pie, steps and screenshots included. Connect Jira for issues and Slack for run status and alerts.

With Fix PRs, Pie opens proposed fixes as pull requests in repositories you connect, and merging stays your team’s call.

Pie also works with GitHub, GitLab, Linear, Asana, Bitbucket, CircleCI, Jenkins and Bitrise, and has an API and an MCP server.

How Is It Priced?

Book a demo. We’ll walk through your app and release schedule and give you a quote.

Read What Broke. Then Hit Submit.

Pie takes the iOS test pass. Your team takes the next release.