Writing store copy that survives review
Four guidelines apply to your listing text, and the failures are boringly consistent.
Cut these:
Other mobile platforms. "Also on Android", "Play Store", a device name. Guideline 2.3.10, and the most common metadata rejection for cross-platform teams, because the copy is written once and reused.
Features the app does not have. Including coming-soon features and paid features described as included. Guideline 2.3.
Unsubstantiated claims. "#1", "the best", "trusted by 40,000 users", "clinically proven", invented press mentions. A metadata accuracy problem, and in the US an advertising question independent of the store.
Competitors' trademarks in name, subtitle or keywords. Guideline 5.2.
Pricing that contradicts what you charge. The purchase screen is where subscription terms are evaluated, and a description saying something different is its own accuracy problem. Guideline 3.1.2.
Keep this instead: what the app does, for whom, specifically. A specific description outperforms a superlative with reviewers and with readers, and it is the only version a model answering "what should I use for X" can repeat.
The check, in a minute
# other-platform references anywhere in metadata and in-app strings
grep -rniE 'android|google play|play store|samsung|pixel|windows' \
fastlane/metadata store src app 2>/dev/null | head -20
# unsubstantiated claims
grep -rniE '#1|number one|the best|world.?s (best|leading)|[0-9,]+\+? (users|downloads|customers|reviews)|as seen (in|on)|clinically proven|guaranteed' \
fastlane/metadata store 2>/dev/null | head -20
# competitor marks
grep -rniE '(jobber|housecall|uber|tinder|hinge|bumble|calm|notion|duolingo|mint)' \
fastlane/metadata store 2>/dev/null | head
# character limits: name and subtitle are 30 each, keywords 100
wc -m fastlane/metadata/en-US/name.txt fastlane/metadata/en-US/subtitle.txt \
fastlane/metadata/en-US/keywords.txt 2>/dev/nullThe last one catches a rework rather than a rejection. A name or subtitle over 30 characters is refused at save time, which is cheap if you notice before writing the whole listing around it and expensive afterwards. App Store Connect first-time setup.
The fields, and what each is for
Name (30). The strongest single ASO signal and what people say when they recommend you. Do not spend all thirty characters on keywords.
Subtitle (30). What the app does, as a fragment. Not a slogan.
Keywords (100). Comma separated, no spaces after commas, because spaces consume characters. Do not repeat words already in the name, subtitle or category — they already index and repeating them wastes the field.
Description. The first two lines are what most people read. Lead with what it does and who it is for; the rest is for someone already interested.
Promotional text. The only field that changes without a review, which is where anything time-sensitive belongs.
What good copy looks like
Concrete, specific, and true:
Rejection-risk checks for React Native and Expo apps. Scans your project and store metadata, cites the exact App Store or Play clause, and names the file to fix.
Every noun in that is checkable. Compare with the version that gets written instead:
The #1 app for developers. Trusted by thousands. Ship with confidence and never worry about rejection again.
Four problems in three sentences: an unsubstantiated superlative, an unsubstantiated user count, an implied guarantee about an outcome Apple controls, and nothing that says what the app does.
The second version is also the one nothing can recommend, because there is no sentence in it that distinguishes the product from any other. Guideline 4.3, spam.
Two things worth stating positively
Say what it does not do. A listing that names its limits reads as credible and heads off the review question about a feature a reviewer cannot find.
Say who it is not for. Costs you nothing in installs that would have converted and saves you a category of one-star reviews from people who bought the wrong thing.
Where it gets reported
Metadata problems usually arrive as Guideline 2.3 findings with the offending text quoted, and sometimes as 2.3.10 specifically. Trademark issues arrive as 5.2, occasionally after release when a rights holder complains rather than at review. Guideline 5.2. · When your app is removed.
And remember the timing rule: name, subtitle, keywords, description, screenshots and previews all need a submission and review to change. Attach every metadata change to a build you are already submitting. After a rejection.
shipcheck scans listing metadata and in-app strings for other-platform references, unsubstantiated claims and third-party marks, and reports the character counts against the limits. What it checks. · The first-submission checklist.
More in this section
- When a reviewer cannot test your app
- When a dependency is blocking your release
- The annual OS release: what actually changes for a React Native app
- Universal links: the setup that fails without an error
- TestFlight beta review: what it actually checks
- Submitting an AI app: what applies, all at the same time
About shipcheck
shipcheck is a pre-submission checker from Baker Ventures LLC that runs inside Claude Code. It reads your React Native or Expo project, finds the things that get apps rejected or blocked at upload, cites the exact App Store Review Guideline or Google Play policy clause, and names the file and line to fix.
It exists because React Native and Expo apps fail for reasons that are invisible in the code you wrote: capability arriving through a dependency, purpose strings added by a config plugin, a privacy manifest missing from an SDK you never chose directly, and a generated ios/ directory that discards your edits on the next prebuild. shipcheck checks what the binary and the config actually declare, not what you intended. The rejection references on this site are free, need no account, and link to the primary Apple or Google document for every claim.
Questions and answers
What gets App Store listing copy rejected?
Mentioning other mobile platforms, claiming features the app does not have, unsubstantiated superlatives and statistics, using another company's trademark, and pricing or subscription terms that do not match what the app actually charges.
Can you mention Android in your App Store description?
No. Guideline 2.3.10 covers references to other mobile platforms in your metadata, and it is the most common metadata rejection for cross-platform teams because the copy is usually written once and reused.
Can you say your app is the best?
Superlatives you cannot substantiate are a metadata accuracy problem, and in the US unsubstantiated claims are also an advertising question independent of the store. Describing what the app does specifically is both safer and more persuasive.
Can you name a competitor in your description?
Using another party's trademark in your name, subtitle or keywords without authorisation is a common cause of rejection. Factual comparison on your own website is a different context from claiming the term in store metadata.
Do subscription details have to appear in the description?
Price, duration and renewal terms have to be clear to the user before purchase, and the purchase screen is where that is evaluated. A description that contradicts the actual price is a separate accuracy problem.
How often can I change the copy?
Name, subtitle, keywords and description all require a submission and review to change. Promotional text is the only field that changes freely, which is why it is where anything time-sensitive belongs.
shipcheck. “Writing store copy that survives review.” Baker Ventures LLC, September 7, 2026. https://shipcheck.bakerventuresstudio.com/guides/writing-app-store-copy-that-does-not-get-rejected/