App is not spam or a near-duplicate of another app in the store
Why it matters
Apple guideline 4.3 and Google Play's Repetitive Content policy target apps that dilute store quality without adding value — commodity utilities (tip calculators, flashlights, unit converters) with no differentiator, and near-duplicate submissions from the same developer. Beyond rejection, being flagged as spam can result in removal of existing apps from the same developer account. The store algorithms also deprioritize apps from accounts with spam history, reducing organic discoverability even after policy issues are resolved.
Severity rationale
High because spam and near-duplicate flags attach to the developer account, not just the single submission, and can suppress discoverability or accelerate future rejections across the entire account.
Remediation
Identify the single sharpest differentiator your app offers over the top three free alternatives in the same category — if you cannot name one, build one before submitting. Make that differentiator front-and-center in the app name, first screen, and store description.
For second-version apps, update the existing listing rather than creating a new one:
# Correct: update version in existing app.json
# app.json
{ "expo": { "version": "2.0.0", "ios": { "buildNumber": "20" } } }
# Wrong: creating a new app with bundleIdentifier com.example.myapp2
Commodity utilities in crowded categories need a design system distinction, a workflow integration, or a community feature — cosmetic reskins do not satisfy the differentiation requirement.
Detection
-
ID:
no-spam-duplicate -
Severity:
high -
What to look for: Count all relevant instances and enumerate each. Before evaluating, extract and quote any relevant configuration or UI text found. Examine the app's core concept and feature set. Look for signs of minimal differentiation: (1) A calculator, flashlight, QR code scanner, tip calculator, unit converter, or other commodity utility that provides identical functionality to hundreds of existing free apps with no differentiation; (2) An app that appears to be the same app as another published app from the same developer (check
bundleIdentifierdomain — does it look likecom.example.appname2?); (3) A template-generated app with minimal customization (default icons, generic screen names likeHomeScreen,Screen1, boilerplate copy). Inapp.json, look forexpo.namevalues like "My App", "React Native App", "App", or other generic names. Check if the app'sdescriptionfield in store metadata meaningfully differentiates the app's value proposition from existing apps. Apple guideline 4.3 and Google Play's Repetitive Content policy prohibit spam and near-identical apps. -
Pass criteria: The app has a distinctive concept, name, and feature set that sets it apart from commodity apps in its category. At least 1 implementation must be verified. Or it is a commodity utility with a clear, specific differentiator (design, workflow, integration, community). A partial or placeholder implementation does not count as pass.
-
Fail criteria: App is a commodity utility (tip calculator, flashlight, QR scanner) with no differentiation from free apps; app appears to be a near-identical copy of another app from the same developer; app name is generic ("My App", "App 2"); app is clearly template-generated with minimal customization.
-
Skip (N/A) when: Never — originality must always be evaluated.
-
Detail on fail:
"App is a tip calculator with no differentiating features — identical in scope to hundreds of existing free apps"or"App name 'My Budget App 2' and bundle ID 'com.example.budgetapp2' suggest a duplicate of a prior submission" -
Remediation: Apple and Google both reject apps that don't provide unique value.
- Identify your app's core differentiator — what does it do that the top 3 free alternatives do not?
- If the differentiator exists, make it prominent in the app name, description, and first screen
- If the app is a second version of an existing app, update the existing app rather than submitting a new one
- Commodity utilities (calculators, converters, flashlights) need a compelling hook: a unique design system, deep integration with another service, or a community feature
Review the configuration in
src/orapp/directory for implementation patterns.
External references
- external · apple-guideline-4.3 — App Store Review Guidelines 4.3 — Spam
- external · google-play-repetitive-content — Google Play Developer Policy — Repetitive Content
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-policy-compliance·automated