Guideline 4.0

Guideline 4.0 - Design: App Does Not Include iOS Features

Medium SeverityMedium FixTypical Fix: 1-2 weeks0 Reports
Also known as:App does not support Dynamic Type or text size accessibility settingsApp does not support Dark Mode and always displays a light interfaceApp does not use standard iOS gestures (swipe-to-go-back, pull-to-refresh)App does not support multitasking or Split View on iPadApp uses completely custom navigation instead of standard UIKit/SwiftUI patterns

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

01

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.

02

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.

03

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.

04

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.

05

Use the system share sheet

Replace custom share implementations with UIActivityViewController or SwiftUI’s .sheet with ShareLink.

06

Add accessibility labels

Ensure all interactive elements have meaningful accessibilityLabel values. Test with VoiceOver enabled.

07

Implement pull-to-refresh

For scrollable content, add UIRefreshControl or SwiftUI’s .refreshable modifier.

08

List integrated features in reviewer notes

Explicitly state which iOS features you’ve added when resubmitting.

Example Rejection Email

From:Apple App Review Team
Subject:Guideline 4.0 - Design: App Does Not Include iOS Feature
We noticed an issue in your app that contributes to a lower quality user experience than Apple users expect: - Your app did not include iOS features. Specifically, your app does not support Dynamic Type, Dark Mode, or standard iOS gestures such as swipe-to-go-back. We encourage you to review the iOS Human Interface Guidelines and consider integrating features that iOS users have come to expect.

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.

Generate Appeal

Before & After

Before — Rejected

// Hardcoded colors and fonts — no Dark Mode or Dynamic Type

Text("Welcome")

.font(.system(size: 24))

.foregroundColor(.black)

.background(Color.white)

After — Approved

// 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.

Before — Rejected

// Custom share with no system integration

Button("Share") {

copyToClipboard(url)

showToast("Link copied!")

}

After — Approved

// 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

View all Guideline 4 rejections