Guideline 4.7.4
Guideline 4.7.4 - Design: Missing Universal Link Index for Hosted Software
Our Take
Apple is rejecting your app because it hosts software experiences (mini apps, games, interactive bots) but does not provide a Universal Links index that allows each hosted experience to be individually deep-linked. Guideline 4.7.4 requires that apps hosting software catalog their hosted content through Universal Links so Apple can index and link to specific experiences. This requirement serves two purposes: it enables Apple's Spotlight search and Siri to surface individual mini apps within your platform, and it provides a transparent catalog of hosted content that Apple can monitor for policy compliance. The rejection means your app hosts multiple interactive experiences but they're only accessible by navigating within the app — there's no way to open a specific mini app via a URL. Apple wants every hosted experience to have a corresponding Universal Link. The fastest compliant path is to implement an apple-app-site-association (AASA) file on your domain that maps URLs to each hosted experience, and handle those URLs in your app to navigate directly to the corresponding content.
Resolution Guide
Design your URL scheme
Create a consistent URL pattern for hosted content: https://yourdomain.com/apps/{app-id}, https://yourdomain.com/games/{game-id}, etc. Each hosted experience must have a unique, stable URL.
Create the AASA file
Host an apple-app-site-association file at https://yourdomain.com/.well-known/apple-app-site-association with your app's bundle ID and the URL patterns that should open in your app.
Handle Universal Links in your app
Implement application(_:continue:restorationHandler:) in your app delegate (or the SwiftUI equivalent). Parse the incoming URL and navigate to the corresponding hosted experience.
Create a web fallback
Each Universal Link URL should also work as a regular web page (showing the content or a prompt to install the app). This is required for Universal Links to work.
Maintain the index
As you add new hosted experiences, ensure each one gets a Universal Link. Automate this if possible — when a new mini app is published on your platform, generate its URL entry.
Test the links
Verify Universal Links work from Safari, Messages, Notes, and Spotlight search. Test that they navigate to the correct hosted experience.
Prevention
Example Rejection Email
Before & After
Game platform hosts 50 HTML5 games accessible only through in-app browse and search — no way to link to a specific game from outside the app
Each game has a Universal Link (https://platform.com/games/puzzle-blast), AASA file maps /games/* to the app, and opening the link launches the app directly to that game (or shows a web preview if the app isn't installed)
What changed: Hosted experiences must be individually addressable through Universal Links, enabling deep linking, Spotlight indexing, and content discoverability.
Community Solutions · 0
Sign in to share your solution.
More Guideline 4 (Design) rejections
- Guideline 4.0 - Design: App Does Not Include iOS Features
- 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