What is the BAEssentialDownloadAllowance key?

I'm using the BackgroundAssets framework to download data for my app. Since updating to the iOS 16.4 SDK, Apple is rejecting my app from being uploaded to testflight with the following error:

Missing Info.plist value. The extension at <app extension> requires the BAInitialDownloadRestrictions.BAEssentialDownloadAllowance key to be present in the app's Info.plist.

Unfortunately, the BAEssentialDownloadAllowance key doesn't exist in the documentation for BackgroundAssets seen here: https://developer.apple.com/documentation/bundleresources/information_property_list/bainitialdownloadrestrictions

Does anyone know what this key is for? I can't find any info online

Post not yet marked as solved Up vote post of johnwillard Down vote post of johnwillard
537 views

Replies

The header docs in BAAppExtensionInfo.h reference this key:

/// @brief The number of bytes remaining that can be scheduled if the total download size of optional assets is restricted.
/// @discussion When a download is restricted, your extension can only schedule up to its `BAEssentialDownloadAllowance`
/// defined in your app's `Info.plist`. This result tells you the number of bytes remaining that can be scheduled
/// before the application is launched. Once the application is launched, this restriction is removed.
/// @result The result is `nil` if downloads are not restricted. It returns a valid number with the remaining available download size otherwise.
@property (readonly, strong, nullable) NSNumber *restrictedEssentialDownloadSizeRemaining

Judging by this, it seems like this key indicates the total number of bytes of downloads that your app deems as essential to its operation.

Hopefully we get clarification from Apple on this soon given it's a hard requirement.