Contents

Choosing the right functionality for your App Clip

Review frameworks available to App Clips and identify functionality that makes a great App Clip.

Overview

An App Clip is a lightweight version of your app that offers some of its functionality when and where it’s needed, or gives people a way to try a demo version of your app. App Clips offer a focused feature set, and are designed to launch instantly, protect user privacy, and preserve resources. As a result, an App Clip comes with some limitations. Before you create your App Clip, first review the technology available, and identify the functionality that makes a great App Clip.

Keep your App Clip within size limitations

To ensure a fast launch experience, App Clips must be small. Aim to keep your App Clip binary well below the applicable limit:

iOS version

Maximum size of the uncompressed App Clip binary

iOS 15 and earlier

10 MB

iOS 16 and earlier

15 MB

iOS 17 and later

100 MB, with additional requirements and limitations (see below)

On devices running iOS 17 and later, the uncompressed App Clip binary can be up to 100 MB in size if you meet the following conditions:

  • The App Clip only supports digital invocations — for example, from your website or Spotlight search.

  • The App Clip doesn’t support physical invocations such as App Clip Codes, QR codes, or NFC tags.

  • People use your App Clip in situations where a reliable internet connection is likely; for example, at home.

  • Your App Clip doesn’t support iOS 16 and earlier.

Additionally, you can use the App Clip demo link that App Store Connect generates to use the 100 MB size limit and support physical invocations from App Clip Codes, NFC tags, and QR codes.

For more information, refer to Configuring App Clip experiences and Verify the size of your App Clip.

If your App Clip needs to download additional assets; for example, if you offer a demo version of your game; use Background Assets to download additional assets. For more information, refer to Download additional assets.

Review available frameworks and APIs

App Clips make use of SwiftUI and UIKit, and have access to the same frameworks as your full app. However, the following frameworks provide no functionality at runtime: App Intents, Assets Library, Background Tasks, CallKit, CareKit Contacts, Contacts UI, Core Motion, EventKit, EventKit UI, File Provider, File Provider UI, HealthKit, HomeKit, Media Player, Messages, Message UI, Nearby Interaction, PhotoKit, CareKit, SensorKit, and Speech.

For most unavailable frameworks, using them in an App Clip doesn’t result in compile-time errors, but their APIs return values that indicate unavailability, empty data, or error codes at runtime. For example, HealthKit’s isHealthDataAvailable() returns false when you call it from an App Clip.

App Clips can’t perform background activity. For example, they can’t make use of:

Some frameworks are available to App Clips but offer only limited functionality, or using them requires special consideration:

Advanced networking features and low-level networking APIs

Advanced networking features like Bonjour and low-level networking APIs like CFSocket or POSIX functions aren’t available to App Clips. Instead, use URLSession or the Network framework.

App extensions

App Clips can’t include app extensions, but they can include a widget extension to offer Live Activities. For more information, refer to Offering Live Activities with your App Clip.

Core Telephony

Functionality provided by Core Telephony is available to App Clips. However, they can’t provision cellular plan eSIMs or use functionality that carrier apps with suitable entitlements use. For example, an App Clip can’t use CTCellularPlanProvisioning and CTCellularPlanProvisioningRequest.

CloudKit

CloudKit isn’t available to App Clips in iOS 14 or 15. Starting with iOS 16, App Clips can read their public iCloud database. However, App Clips can’t write data to a public database or use private or shared containers. Additionally, they can’t use iCloud Documents or iCloud key-value storage. To learn more about using CloudKit in your App Clip, refer to the Access your public iCloud database section of Sharing data between your App Clip and your full app.

Face ID

App Clips can’t use Face ID because the NSFaceIDUsageDescription entitlement isn’t available to them. However, you can use the Local Authentication framework to authenticate people with Touch ID.

Note that App Clips may configure Wi-Fi networks using the Hotspot Configuration Entitlement. Additionally, to connect to an authentication provider, they may initialize an ASWebAuthenticationSession using doc://com.apple.documentation/documentation/authenticationservices/aswebauthenticationsession/init(url:callback:completionhandler:).

Preserve user privacy

App Clips come with limitations that help to protect user privacy and prevent user tracking across apps and App Clips, for example:

To help protect user data, App Clips can’t access:

  • Apple Music and Media

  • Data from apps like Calendar, Contacts, Files, Health, Messages, Reminders, and Photos

  • Motion and fitness data

Reserve certain functionality for your full app

App Clips that aren’t demo versions of full apps provide an in-the-moment experience and focus on offering the quickest possible solution to an everyday task, so some functionality works best in your full app. If your App Clip offers an in-the-moment experience, reserve the following functionality for the full app:

  • App extensions

  • Customization and settings, for example, creation of a settings bundle

  • Data handoff and document opening

  • In-app purchases

  • Low-level UNIX functionality, for example, BSD notifications

  • Multiple scenes on iPad

  • On-demand resources and Background Assets

  • Promoting other apps

  • Registration of custom URL schemes

  • Requests for reviews of the full app by using StoreKit’s requestReview(in:) method

  • Searching for paired Bluetooth devices

See Also

Essentials