No beta labels or unfinished UI indicators
Why it matters
Visible Beta, Alpha, Preview, or v0.3.1 labels signal to App Review and Play Console reviewers that the submitter is using the public store as a test environment, which violates Apple Guideline 2.2 (Beta Testing) — TestFlight is the only sanctioned beta channel. Debug overlays, raw JSON error dumps, and ungated developer panels leaking into production builds also trip the same guideline and cause immediate rejection, often with a terse reviewer note that wastes a full resubmission cycle.
Severity rationale
High because beta indicators cause immediate rejection under Apple Guideline 2.2 and Play policy.
Remediation
Strip beta/alpha badges from production UI, bump the user-visible version to 1.0.0 or higher, and gate every debug surface behind a compile-time flag. In React Native use __DEV__; in Flutter use kDebugMode; in Swift use #if DEBUG. Example in src/components/Header.tsx:
{__DEV__ && <DebugPanel />}
Remove any process.env.IS_TESTFLIGHT branches that leave visible artifacts in the App Store build.
Detection
- ID:
no-beta-indicators - 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. Search for visible beta indicators in UI source files: strings like
"Beta","(Beta)","[Beta]","v0.","alpha","preview","experimental"in rendered text. Also look for TestFlight-specific code paths that survive into production builds (e.g.,if (process.env.IS_TESTFLIGHT)blocks that leave visual artifacts), unfinished loading states that show raw JSON or API error objects to users, and development-mode UI that is not properly gated by__DEV__or equivalent. - Pass criteria: No beta labels, alpha indicators, or unfinished UI markers visible in production-bound source code. At least 1 implementation must be verified. Any development overlays or debug panels are properly gated to
__DEV__(React Native),kDebugMode(Flutter), or#if DEBUG(Swift). A partial or placeholder implementation does not count as pass. Report the count even on pass. - Fail criteria: "Beta" or "alpha" labels visible in production UI. Version number showing
0.xin the user-visible app header. Debug overlay components rendered without__DEV__guard. - Skip (N/A) when: Never.
- Detail on fail:
"Beta badge rendered unconditionally in src/components/Header.tsx"or"Version shown to user is '0.3.1-beta' in app header" - Remediation: Reviewers reject apps that appear unfinished.
- Remove or hide all beta/alpha labels before submission
- Gate any developer tools or overlays behind
__DEV__checks:{__DEV__ && <DebugPanel />} - Set the app version to
1.0.0or higher for first public release - Remove TestFlight-specific branches that alter visible UI before building for store submission
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-review-blockers·automated