Guideline 4.0
Guideline 4.0 - Design: App Does Not Include iOS Features
Our Take
Apple rejected your app because it does not leverage iOS platform capabilities. Even if your app is not a web wrapper, Apple may reject it if it ignores standard iOS design patterns, system features, and platform conventions. This includes missing support for features like Dynamic Type, Dark Mode, multitasking on iPad, system share sheets, standard gestures, or accessibility support. Apple wants apps to feel at home on iOS.
Resolution Guide
**Add Dynamic Type support** — Replace hardcoded font sizes with `.preferredFont(forTextStyle:)` in UIKit or `.font(.body)` / `.font(.headline)` in SwiftUI. Test at the largest and smallest text sizes in Settings → Accessibility → Display & Text Size.
**Support Dark Mode** — Use semantic colors (`.label`, `.systemBackground`, `.secondarySystemGroupedBackground`) instead of hardcoded `.white` and `.black`. In SwiftUI, use `Color.primary`, `Color(.systemBackground)`, etc. Test by toggling Appearance in Settings.
**Enable swipe-to-go-back** — If using `UINavigationController`, this works automatically. If you’ve overridden it or use a custom navigation solution, restore the `interactivePopGestureRecognizer`.
**Support multitasking on iPad** — Enable all multitasking orientations in your target’s General settings. Ensure your layouts adapt to Split View and Slide Over sizes using Auto Layout or SwiftUI’s adaptive layout.
**Use the system share sheet** — Replace custom share implementations with `UIActivityViewController` or SwiftUI’s `.sheet` with `ShareLink`.
**Add accessibility labels** — Ensure all interactive elements have meaningful `accessibilityLabel` values. Test with VoiceOver enabled.
**Implement pull-to-refresh** — For scrollable content, add `UIRefreshControl` or SwiftUI’s `.refreshable` modifier.
**List integrated features in reviewer notes** — Explicitly state which iOS features you’ve added when resubmitting.
Example Rejection Email
Consider Appealing
Appeals can work if your app already supports several iOS features and the reviewer missed them. List every iOS feature you support with screenshots or a short video demo. If the rejection is vague, ask for specific details through the Resolution Center before investing in changes.
Before & After
// Hardcoded colors and fonts — no Dark Mode or Dynamic Type
Text("Welcome")
.font(.system(size: 24))
.foregroundColor(.black)
.background(Color.white)
// Semantic colors and Dynamic Type
Text("Welcome")
.font(.title)
.foregroundStyle(.primary)
.background(Color(.systemBackground))
What changed: Using semantic text styles (.title, .body, .caption) enables Dynamic Type automatically. Semantic colors (.primary, .systemBackground) adapt to Dark Mode without any additional code.
// Custom share with no system integration
Button("Share") {
copyToClipboard(url)
showToast("Link copied!")
}
// System share sheet with full iOS integration
ShareLink(item: url) {
Label("Share", systemImage: "square.and.arrow.up")
}
What changed: ShareLink (iOS 16+) presents the standard system share sheet, giving users access to AirDrop, Messages, Mail, and all their installed sharing extensions.
Community Solutions · 0
Sign in to share your solution.
More Guideline 4 (Design) rejections
- Guideline 4.0 - Design: App Looks Like a Website
- Guideline 4.0 - Design: Apple Pay Button Not Following Guidelines
- Guideline 4.0 - Design: Blurry Icons or Low-Resolution Assets
- Guideline 4.0 - Design: Broken Layout on iPad
- Guideline 4.0 - Design: Content Clipped by Notch or Safe Area
- Guideline 4.0 - Design: Crowded or Poor Layout