<!--
{
  "documentType" : "article",
  "framework" : "Security",
  "identifier" : "/documentation/Security/secure-download",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Secure Download"
}
-->

# Secure Download

Implement Apple’s Secure Download System in macOS.

## Discussion

The `Security.SecureDownload` API provides access to Apple’s Secure Download System. This API is only useful for certain specialized apps. Because of this, you must import this API explicitly:

```objc
#import <Security/SecureDownload.h>
```

## Topics

### Download Creation

[`SecureDownloadCreateWithTicket`](/documentation/Security/SecureDownloadCreateWithTicket)

Creates a secure download object for use during the download process.

[`SecureDownloadTrustEvaluateCallback`](/documentation/Security/SecureDownloadTrustEvaluateCallback)

Optionally queries the user how to handle a failed trust evaluation.

[`SecureDownloadTrustSetupCallback`](/documentation/Security/SecureDownloadTrustSetupCallback)

Determines whether trust for a particular signer should be evaluated.

[`SecureDownloadTrustCallbackResult`](/documentation/Security/SecureDownloadTrustCallbackResult)

A flag used to indicate whether or not a signer should be evaluated.

[`SecureDownloadRef`](/documentation/Security/SecureDownloadRef)

An opaque type representing a secure download object.

### Download Settings

[`SecureDownloadGetDownloadSize`](/documentation/Security/SecureDownloadGetDownloadSize)

Returns the size of the expected download.

[`SecureDownloadCopyCreationDate`](/documentation/Security/SecureDownloadCopyCreationDate)

Returns download ticket’s creation date.

[`SecureDownloadCopyName`](/documentation/Security/SecureDownloadCopyName)

Returns the printable name of the download ticket.

[`SecureDownloadCopyTicketLocation`](/documentation/Security/SecureDownloadCopyTicketLocation)

Copies the ticket location from a secure download URL.

[`SecureDownloadCopyURLs`](/documentation/Security/SecureDownloadCopyURLs)

Returns a list of URLs from which the data can be downloaded.

### Receiving Data

[`SecureDownloadUpdateWithData`](/documentation/Security/SecureDownloadUpdateWithData)

Checks data received during download for validity.

### Download Completion

[`SecureDownloadFinished`](/documentation/Security/SecureDownloadFinished)

Concludes the secure download process.

[`SecureDownloadRelease`](/documentation/Security/SecureDownloadRelease)

Releases the memory associated with a secure download object.

### Result Codes

[Secure Download Result Codes](/documentation/Security/secure-download-result-codes)

Result codes specific to the secure download API.



---

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)