Guideline 4.7.4

Guideline 4.7.4 - Design: Missing Universal Link Index for Hosted Software

Medium SeverityMedium FixTypical Fix: 1-3 days0 Reports
Also known as:App does not provide Universal Links index for hosted contentHosted software experiences are not individually deep-linkableMissing apple-app-site-association for hosted mini appsHosted content catalog not indexed through Universal LinksMini apps within the platform cannot be individually referenced via URL

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

01

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.

02

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.

03

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.

04

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.

05

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.

06

Test the links

Verify Universal Links work from Safari, Messages, Notes, and Spotlight search. Test that they navigate to the correct hosted experience.

Prevention

  • Build Universal Links into your platform architecture from the start
  • Automate URL generation for new hosted content
  • Include Universal Links testing in your QA process
  • Keep the AASA file in sync with your hosted content catalog
  • Example Rejection Email

    From:Apple App Review Team
    Subject:Guideline 4.7.4 - Design: Missing Universal Link Index for
    Guideline 4.7.4 - Design - HTML5 Games, Bots, etc. Your app hosts multiple software experiences but does not provide a Universal Links index for the hosted content. Apps that host mini apps, games, or other software experiences must provide Universal Links that allow each hosted experience to be individually referenced and deep-linked. Next Steps: Please implement Universal Links for your hosted content by: - Creating an apple-app-site-association file that maps URLs to each hosted experience - Handling Universal Link URLs in your app to navigate to the corresponding content - Ensuring each hosted experience has a unique, stable URL

    Before & After

    Before — Rejected

    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

    After — Approved

    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

    View all Guideline 4 rejections