<!--
{
  "availability" : [
    "iOS: 16.1.0 -",
    "iPadOS: 16.1.0 -",
    "macCatalyst: 16.1.0 -",
    "macOS: 13.0.0 -",
    "tvOS: 18.4.0 -",
    "visionOS: 2.4.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "BackgroundAssets",
  "identifier" : "/documentation/BackgroundAssets/BADownloaderExtension-zuvm",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Background Assets"
    ],
    "preciseIdentifier" : "c:objc(pl)BADownloaderExtension"
  },
  "title" : "BADownloaderExtension"
}
-->

# BADownloaderExtension

An interface for reacting to app life-cycle events and processing concluded asset downloads while your app isn’t running.

```
@protocol BADownloaderExtension <NSObject>
```

## Topics

### Processing downloads

[`- (void) backgroundDownload:(BADownload *) download didReceiveChallenge:(NSURLAuthenticationChallenge *) challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential)) completionHandler;`](/documentation/BackgroundAssets/BADownloaderExtension-zuvm/backgroundDownload:didReceiveChallenge:completionHandler:)

[`- (void) backgroundDownload:(BADownload *) download finishedWithFileURL:(NSURL *) fileURL;`](/documentation/BackgroundAssets/BADownloaderExtension-zuvm/backgroundDownload:finishedWithFileURL:)

[`- (void) backgroundDownload:(BADownload *) download failedWithError:(NSError *) error;`](/documentation/BackgroundAssets/BADownloaderExtension-zuvm/backgroundDownload:failedWithError:)

### Checking for asset updates

[`- (NSSet<BADownload *> *) downloadsForRequest:(BAContentRequest) contentRequest manifestURL:(NSURL *) manifestURL extensionInfo:(BAAppExtensionInfo *) extensionInfo;`](/documentation/BackgroundAssets/BADownloaderExtension-zuvm/downloadsForRequest:manifestURL:extensionInfo:)

[`enum BAContentRequest`](/documentation/BackgroundAssets/BAContentRequest)

A type that indicates the purpose of a content download request.

[`class BAAppExtensionInfo`](/documentation/BackgroundAssets/BAAppExtensionInfo)

### Reacting to extension events

[`- (void) extensionWillTerminate;`](/documentation/BackgroundAssets/BADownloaderExtension-zuvm/extensionWillTerminate)

Informs the extension that its allotted execution time is over and the system is about to stop the process.

## Relationships

### Inherits From

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Inherited By

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

---

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)