<!--
{
  "availability" : [
    "iOS: 26.0.0 - 26.4.0",
    "iPadOS: 26.0.0 - 26.4.0",
    "macCatalyst: 26.0.0 - 26.4.0",
    "macOS: 26.0.0 - 26.4.0",
    "tvOS: 26.0.0 - 26.4.0",
    "visionOS: 26.0.0 - 26.4.0"
  ],
  "documentType" : "symbol",
  "framework" : "BackgroundAssets",
  "identifier" : "/documentation/BackgroundAssets/AssetPackManager/ensureLocalAvailability(of:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Background Assets"
    ],
    "preciseIdentifier" : "s:16BackgroundAssets16AssetPackManagerC23ensureLocalAvailability2ofyAA0cD0V_tYaKF"
  },
  "title" : "ensureLocalAvailability(of:)"
}
-->

# ensureLocalAvailability(of:)

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

```
func ensureLocalAvailability(of assetPack: AssetPack) async throws
```

## Parameters

`assetPack`

The asset pack the local availability of which to ensure.

## Discussion

This method checks whether the asset pack is currently downloaded. If it isn’t, then the system schedules it to be downloaded and waits for the download to complete. It’s guaranteed that the requested asset pack will be available locally once this method returns without throwing. If the method throws, then the asset pack *isn’t* guaranteed to be available locally. You can optionally monitor download progress by awaiting status updates from [`statusUpdates`](/documentation/BackgroundAssets/AssetPackManager/statusUpdates) or [`statusUpdates(forAssetPackWithID:)`](/documentation/BackgroundAssets/AssetPackManager/statusUpdates(forAssetPackWithID:)) in a separate task.

> Throws: When the asset pack can’t be downloaded.

---

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)