<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: 26.0.0 -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "BackgroundAssets",
  "identifier" : "/documentation/BackgroundAssets/AssetPackManager",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Background Assets"
    ],
    "preciseIdentifier" : "s:16BackgroundAssets16AssetPackManagerC"
  },
  "title" : "AssetPackManager"
}
-->

# AssetPackManager

An actor that manages asset packs.

```
actor AssetPackManager
```

## Overview

The first time that your code refers to the shared manager, Background Assets considers that your app is opting into automatic system management of your asset packs.

> Important: When using the asset-pack manager, make sure that you also adopt the corresponding managed extension protocol, ``doc://com.apple.backgroundassets/documentation/BackgroundAssets/ManagedDownloaderExtension`` (for self-hosted asset packs) or `StoreDownloaderExtension` from StoreKit (for Apple-hosted asset packs). Not doing so is a programmer error.

## Topics

### Getting the shared manager

[`shared`](/documentation/BackgroundAssets/AssetPackManager/shared)

The shared manager.

### Tracking downloads

[`statusUpdates`](/documentation/BackgroundAssets/AssetPackManager/statusUpdates)

An asynchronous sequence of download-status updates for all asset packs.

[`statusUpdates(forAssetPackWithID:)`](/documentation/BackgroundAssets/AssetPackManager/statusUpdates(forAssetPackWithID:))

Returns an asynchronous sequence of download-status updates for the asset pack with the specified ID.

[`AssetPackManager.DownloadStatusUpdate`](/documentation/BackgroundAssets/AssetPackManager/DownloadStatusUpdate)

Statuses of an asset-pack download.

### Accessing asset packs

[`manifest`](/documentation/BackgroundAssets/AssetPackManager/manifest)

The manifest of asset packs that are available to download.

[`AssetPackManifest`](/documentation/BackgroundAssets/AssetPackManifest)

A manifest of asset packs that are available to download.

[`allAssetPacks`](/documentation/BackgroundAssets/AssetPackManager/allAssetPacks)

The asset packs that are available to download.

[`assetPack(withID:)`](/documentation/BackgroundAssets/AssetPackManager/assetPack(withID:))

Returns the asset pack with the given ID.

### Accessing asset contents

[`contents(at:searchingInAssetPackWithID:options:)`](/documentation/BackgroundAssets/AssetPackManager/contents(at:searchingInAssetPackWithID:options:))

Returns the contents of an asset file at the specified relative path.

[`contents(at:asLocalizedFor:options:)`](/documentation/BackgroundAssets/AssetPackManager/contents(at:asLocalizedFor:options:))

Returns the contents of a localized asset file at the specified relative path.

[`descriptor(for:searchingInAssetPackWithID:)`](/documentation/BackgroundAssets/AssetPackManager/descriptor(for:searchingInAssetPackWithID:))

Opens and returns a file descriptor for an asset file at the specified relative path.

[`descriptor(for:asLocalizedFor:)`](/documentation/BackgroundAssets/AssetPackManager/descriptor(for:asLocalizedFor:))

Opens and returns a file descriptor for a localized asset file at the specified relative path.

[`url(for:)`](/documentation/BackgroundAssets/AssetPackManager/url(for:))

Returns a URL for the specified relative path.

[`url(for:asLocalizedFor:)`](/documentation/BackgroundAssets/AssetPackManager/url(for:asLocalizedFor:))

Returns a URL for the specified relative path.

### Managing asset packs

[`checkForUpdates()`](/documentation/BackgroundAssets/AssetPackManager/checkForUpdates())

Gets the latest asset-pack information from the server, updates outdated asset packs, and removes obsolete asset packs.

[`ensureLocalAvailability(of:requireLatestVersion:)`](/documentation/BackgroundAssets/AssetPackManager/ensureLocalAvailability(of:requireLatestVersion:))

Ensures that an asset pack is available locally, performing a download if necessary.

[`ensureLocalAvailability(of:requireLatestVersions:)`](/documentation/BackgroundAssets/AssetPackManager/ensureLocalAvailability(of:requireLatestVersions:))

Ensures the specified asset packs are available locally, performing a batch download if necessary.

[`assetPackIsAvailableLocally(withID:)`](/documentation/BackgroundAssets/AssetPackManager/assetPackIsAvailableLocally(withID:))

Checks whether an asset pack is available locally.

[`status(relativeTo:)`](/documentation/BackgroundAssets/AssetPackManager/status(relativeTo:))

Checks the current status relative to a particular asset pack.

[`localStatus(ofAssetPackWithID:)`](/documentation/BackgroundAssets/AssetPackManager/localStatus(ofAssetPackWithID:))

Checks an asset pack’s local status.

[`AssetPack.Status`](/documentation/BackgroundAssets/AssetPack/Status)

The status of an asset pack.

[`remove(assetPackWithID:)`](/documentation/BackgroundAssets/AssetPackManager/remove(assetPackWithID:))

Removes the specified asset pack from the device.

[`status(ofAssetPackWithID:)`](/documentation/BackgroundAssets/AssetPackManager/status(ofAssetPackWithID:))

Checks an asset pack’s status.

[`ensureLocalAvailability(of:)`](/documentation/BackgroundAssets/AssetPackManager/ensureLocalAvailability(of:))

Ensures that the specified asset pack is available locally, performing a download if necessary.

### Inspecting language support

[`locallyAvailableLanguages`](/documentation/BackgroundAssets/AssetPackManager/locallyAvailableLanguages)

The languages used by asset packs that are localized and are available locally.

[`resolvedLanguage`](/documentation/BackgroundAssets/AssetPackManager/resolvedLanguage)

The language that best matches current preferences and for which the system automatically makes localized asset packs available locally.

[`reconcilePreferredLanguages()`](/documentation/BackgroundAssets/AssetPackManager/reconcilePreferredLanguages())

Reconciles the set of locally available asset packs with the current preferred languages.

### Handling errors

[`AssetPackManager.LocalAvailabilityError`](/documentation/BackgroundAssets/AssetPackManager/LocalAvailabilityError)

An error that provides information about local asset pack availability, distinguishing between successes and failures.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)