Guideline 2.2: Beta & unfinished software
Apple thinks you submitted a beta, demo, or trial, often just because 'beta' or 'v0.1' appears in your app's name or description.
What Apple sent you
Guideline 2.2 - Performance - Beta Testing Your app appears to be a pre-release, beta, demo, or trial version and is not appropriate for the App Store. Demos, betas, and trial versions of your app don't belong on the App Store – use TestFlight instead. Next Steps If you would like to distribute your app for beta testing, we recommend using TestFlight. Once you have completed testing and are ready to release your app, please remove all references to the app being a beta, demo, trial, or test version and resubmit for review.
What it actually means
Apple's rule is one sentence: "Demos, betas, and trial versions of your app don't belong on the App Store – use TestFlight instead." The App Store is for finished software. Anything that presents itself as unfinished (in its name, its description, its version label, or its own screens) gets rejected under 2.2.
The catch is that "presents itself as unfinished" is often just wording. Your app can be perfectly stable and still get this rejection because the name is "TaskFlow Beta," the description says "early version, more features coming!", or an in-app banner says "demo mode." The reviewer isn't judging your code; they're reading your words and taking them at face value.
TestFlight, in plain terms, is Apple's separate app for pre-release testing. You upload a build, invite testers by email or a public link, and they install it through the TestFlight app instead of the App Store. Builds expire after a while, testers know they're testing, and, importantly, you can't charge testers or accept any compensation for TestFlight access.
Why AI-built apps hit this
Founders shipping their first app tend to hedge. It feels honest to call the release "v0.1" or write "this is an early beta, please be patient" in the description, and AI tools reinforce it, since prompts like "build me an MVP" or "create a demo" leak straight into generated app names, splash screens, and About pages. Some templates ship with placeholder text like "Test App" or "Demo Project" still buried in a screen nobody rechecked.
The reviewer sees the word "beta" and stops there. What you meant as humility, Apple reads as a declaration that the app isn't ready.
How to fix it
- Decide which release this actually is. If the app genuinely isn't ready for strangers, stop here and use TestFlight; that's what it's for, and it needs no App Store approval to start testing with invited users. If the app works and you'd stand behind it, continue.
- Purge the vocabulary. Remove "beta," "demo," "trial," "test," "preview," "early access," "MVP," and "work in progress" from the app name, subtitle, description, keywords, screenshots, and promotional text in App Store Connect.
- Check inside the app. Search every screen (splash, onboarding, settings, about) for the same words. Ask your AI tool to find and remove any leftover placeholder or demo text it generated.
- Reframe "more coming soon." Describing your roadmap is fine; describing the current app as incomplete is not. "Focused on X today" works; "many features are still missing" doesn't.
- Use a confident version number. Ship as 1.0. A version like 0.1 signals pre-release to a reviewer scanning for exactly that.
What to write in Resolution Center
Adapt this to what you actually changed; don't send it unmodified:
Hello,
Thank you for the feedback. The app is a complete, fully functional
release. The beta wording was a labeling mistake on our part, not a
reflection of the app's state.
We have:
- Removed all references to beta/demo/trial from the app name,
description, and metadata
- Removed [specific in-app text, e.g. the "beta" label on the splash
screen]
- Updated the version to [1.0]
All features described in the listing are implemented and working. We'd
appreciate a second look.
Thank you,
[Your name]
How to avoid it next time
Keep two tracks and never mix them: TestFlight is where unfinished builds live, the App Store is where finished ones do. Test on TestFlight for as long as you like, and when you submit to the App Store, submit as a 1.0 you'd defend, with no hedging language anywhere a reviewer can see it. Before each submission, search your metadata and your app's screens for the words "beta," "demo," "test," and "trial."
Related guides: 2.1: App completeness (the app actually is unfinished: crashes, placeholders, broken features) and 4.2: Minimum functionality (the app works but does too little to justify being an app).