Starting May 1, 2024, Apple began enforcing new App Store review requirements related to Privacy Manifests. As a result, many apps started receiving the following review warning or error during submission:
ITMS-91053: Missing API declaration
This issue often appears even when no recent code changes were made, which can be confusing at first.
This article explains why this happens and how to fix it correctly.
What ITMS-91053 Means
The error indicates that your app references one or more Required Reason APIs, but does not include the required usage declaration in its privacy manifest.
A common example is:
NSPrivacyAccessedAPICategoryUserDefaults
Even indirect usage—such as through system frameworks or third-party libraries—can trigger this warning.
Apple does not require you to remove these APIs.
Instead, Apple requires you to declare why your app accesses them.
Why This Started Happening
Apple updated its App Store review guidelines to improve transparency around sensitive system APIs.
As part of this change, apps must explicitly declare the purpose of accessing certain APIs in a Privacy Manifest file (PrivacyInfo.xcprivacy).
This applies to new apps and app updates starting May 1, 2024.
Required Reason API Categories
Apple currently defines five categories that require usage justification:
- File timestamp APIs – Accessing file system timestamps
- System boot time APIs – Reading system uptime or boot time
- Disk space APIs – Reading storage or disk information
- Active keyboard APIs – Detecting keyboard state
- User defaults APIs – Reading or writing user preferences
Using any API in these categories requires a corresponding declaration.
Important Clarification: No Code Change Is Required
This is the most common misunderstanding.
ITMS-91053 is not a code error.
It is a metadata and configuration requirement.
You only need to:
- Declare the API usage
- Select an approved reason from Apple’s documentation
How to Fix ITMS-91053 (Step by Step)
Step 1: Create the Privacy Manifest File
- Open Xcode
- Go to File → New → File…
- Select the iOS tab
- Choose App Privacy
- Name the file PrivacyInfo
This creates a PrivacyInfo.xcprivacy file in your project.
Step 2: Declare the Required Reason API
Inside the privacy manifest, add an entry under Privacy Accessed API Types.
Conceptually, the structure looks like this:
Privacy Accessed API Types: [
{
Privacy Accessed API Type: User Defaults
Privacy Accessed API Reasons: [
"CA92.1: Access information from the same app, per documentation"
]
}
]