# App does not have a template-generated appearance

- **Pattern:** `ab-000516` (`app-store-review-blockers.risk-indicators.template-generated-appearance`)
- **Severity:** info
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-000516
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-000516)

## Why it matters

Apple's guideline 4.3 (spam) targets apps that are "simply a generic interface without any realistic functionality" — which includes template-generated apps with the default Expo blue-circle icon, placeholder names like "MyApp" or "React Native App," and screens with no purposeful content beyond boilerplate. Apps that look like templates attract heightened review scrutiny on all other guidelines. The ISO 25010:2011 functional-completeness classification applies: an app that hasn't been customized beyond a starter template provides no functional value beyond what the template itself provides.

## Severity rationale

Info because this is a risk-indicator rather than a hard failure — template appearance attracts scrutiny but is not a standalone rejection cause by itself.

## Remediation

Replace default template assets and placeholder strings before generating the submission build.

In `app.json`, verify:

```json
{
  "name": "YourActualAppName",
  "slug": "your-actual-app",
  "icon": "./assets/images/icon.png"
}
```

The `./assets/images/icon.png` file must not be the default Expo solid-blue-circle. Use a 1024×1024 custom icon with your actual branding. In your strings files (`ios/MyApp/Info.plist`, `android/app/src/main/res/values/strings.xml`), replace `app_name = "MyApp"` with your real app name. Search your source for `HomeScreen`, `Screen1`, `MainScreen` and verify each has app-specific content, not boilerplate placeholder text.

## Detection

- **ID:** `template-generated-appearance`
- **Severity:** `info`
- **What to look for:** Count all relevant instances and enumerate each. Look for signs that the app is a minimally-customized template: default app names in strings files (`app_name = "MyApp"`, `app_name = "AppName"`, `app_name = "React Native App"`); icon files that are the default React Native, Expo, or Flutter template icon (the default Expo icon is a recognizable solid blue circle, the default React Native icon is a purple/blue logo); placeholder app descriptions; generic screen names that match common boilerplate (`HomeScreen`, `Screen1`, `MainScreen` with no customization beyond the name). This is informational — reviewers are more likely to scrutinize and reject apps that look like they were generated from a template with minimal effort.
- **Pass criteria:** App has a distinct name, custom icon, and customized content that differentiates it from a starter template. The app's identity is clearly established.
- **Fail criteria:** Not applicable — this is info only. Result is `pass` or `skip` only, never `fail`.
- **Skip (N/A) when:** App clearly has custom branding — skip if custom name, icon, and screens are evident.
- **Detail on fail:** Not applicable — result is `pass` or `skip` only.
- **Remediation:** Template-generated apps with minimal customization are frequently rejected under Apple guideline 4.3 (spam) or for being "not useful."
  1. Replace the default app icon with a custom design before submission
  2. Give the app a distinctive, searchable name in the App Store
  3. Ensure the app's core screens have purposeful, app-specific content
  4. Write a compelling, specific app description that explains what the app does


  Review the configuration in `src/` or `app/` directory for implementation patterns.

---

## External references

- external apple-guideline-4.3-spam — https://developer.apple.com/app-store/review/guidelines/#spam

Taxons: regulatory-conformance, placeholder-hygiene

HTML version: https://auditbuffet.com/patterns/ab-000516
