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
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.
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.
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
- PassedOpen the cart.
- PassedEnter the promo code BIGSAVE50 and apply it.
- PassedCheck that the total reads $21.00.
- PassedTap Go to checkout.
Nothing on screen changed, so the test still passes.
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.
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.
- You make the call.Track it and Pie re-checks it on every run, or dismiss it.
- No back-and-forth.It says what should have happened and what did, in plain words.
- Proof at every step.Each step keeps its iPhone screenshot. The failed one shows in red.
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 checking | Simulator | Real iPhone |
|---|---|---|
| Sign-in, forms, checkout logic | Yes | Yes |
| Layouts across models and iOS versions | Yes | Only those you own |
| Face ID | Simulated | Real sensor |
| Camera, Bluetooth, cellular signal | No | Yes |
| Battery and heat | No | Yes |
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.
“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.”
“After evaluating multiple vendors, Pie was the only solution that consistently executed our most complex end‑to‑end workflows with reliability across builds.”
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.