<!--
{
  "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/AssetPackManifest",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Background Assets"
    ],
    "preciseIdentifier" : "s:16BackgroundAssets17AssetPackManifestV"
  },
  "title" : "AssetPackManifest"
}
-->

# AssetPackManifest

A manifest of asset packs that are available to download.

```
struct AssetPackManifest
```

## Topics

### Creating an asset pack manifest

[`init(contentsOf: URL, appGroupID: String) throws`](/documentation/BackgroundAssets/AssetPackManifest/init(contentsOf:appGroupID:))

Creates a manifest in memory given a URL to the manifest’s representation as a JSON file on disk.

[`init(from: Data, appGroupID: String) throws`](/documentation/BackgroundAssets/AssetPackManifest/init(from:appGroupID:))

Creates a manifest in memory given JSON-encoded data.

### Accessing downloads

[`func allDownloads(for: BAContentRequest?) -> Set<BADownload>`](/documentation/BackgroundAssets/AssetPackManifest/allDownloads(for:))

Creates download objects for every applicable asset pack in this manifest, which can be scheduled with the download manager.

### Getting asset packs

[`let assetPacks: Set<AssetPack>`](/documentation/BackgroundAssets/AssetPackManifest/assetPacks)

The asset packs in this manifest that are available to download.

[`func assetPack(withID: String) -> AssetPack?`](/documentation/BackgroundAssets/AssetPackManifest/assetPack(withID:))

Returns the asset pack in this manifest with the given ID.

### Getting localized asset packs

[`var localizedAssetPacks: Set<AssetPack>`](/documentation/BackgroundAssets/AssetPackManifest/localizedAssetPacks)

The subset of asset packs in this manifest that best match the current preferred languages.

[`func localizedAssetPacks(for: Locale.Language) -> Set<AssetPack>`](/documentation/BackgroundAssets/AssetPackManifest/localizedAssetPacks(for:))

Returns the subset of asset packs in this manifest that are available to download and that best match the specified language.

### Inspecting asset pack localization

[`var primaryLanguage: Locale.Language?`](/documentation/BackgroundAssets/AssetPackManifest/primaryLanguage)

The app’s primary language as configured in App Store Connect.

[`var availableLanguages: [Locale.Language]`](/documentation/BackgroundAssets/AssetPackManifest/availableLanguages)

The languages for which asset packs in this manifest are localized.

[`var resolvedLanguage: Locale.Language?`](/documentation/BackgroundAssets/AssetPackManifest/resolvedLanguage)

The language that best matches current preferences and for which a localized asset pack is available locally.

### Supporting types

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

A structure that includes information for decoding an asset-pack manifest.

## Relationships

### Conforms To

[`DecodableWithConfiguration`](/documentation/Foundation/DecodableWithConfiguration)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Encodable`](/documentation/Swift/Encodable)

---

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)