ITMS-91053 Missing API declaration - Privacy
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.
Introduction
In today’s app development landscape, privacy and security remain pivotal considerations. An oversight in these areas can lead to severe implications for user trust and regulatory compliance. One of the common issues developers face concerning privacy in iOS app development is the ITMS-91053 warning: "Missing API Declaration - Privacy." This issue occurs when an app uses private APIs or accesses device data without properly declaring the usage in its `Info.plist` file. This article explores the ITMS-91053 warning, its implications, and how developers can effectively address it.
Understanding ITMS-91053
The ITMS-91053 warning is issued by Apple during the app submission review process on the App Store Connect. This notification alerts developers that their application accesses private APIs or system features without adequate disclosure to users.
Why Does ITMS-91053 Occur?
The warning predominantly occurs due to the following reasons:
- Private API Usage: If an app calls upon Apple’s private APIs, which are generally undocumented and intended for internal use, the app will likely face rejection due to privacy violations or stability risks.
- Missing Privacy Usage Descriptions: Apps need to declare the use of sensitive data or resources in their `Info.plist` file. If your app accesses sensitive information without providing the appropriate usage description, the ITMS-91053 warning may be triggered.
Commonly Affected Privacy Sensitive Features
- Location Services
- Camera
- Microphone
- Contacts
- Photo Library
Technical Explanation
Private API Usage
Private APIs are those that are not part of the public SDK. Using these can lead to unpredictable behavior and is a major violation of Apple's App Store Review Guidelines. To check if your app incorporates private APIs, scrutinize your codebase and any third-party frameworks for calls to undocumented methods or classes.
Privacy Usage Descriptions
Apple mandates that apps which access certain system resources provide a privacy usage description. This is managed by including the appropriate keys in your app’s `Info.plist` file. The structure typically appears as follows:
Related reading
- Java - sending HTTP parameters via POST method easily
- Java 8 How do I work with exception throwing methods in streams?
- Java 8 Lambda-Streams, Filter by Method with Exception
- Java 8 Stream and operation on arrays
- Java 8 Streams - collect vs reduce
- Java 8 Streams multiple filters vs. complex condition
- Java HTTPS client certificate authentication
- Java List.contains(Object with field value equal to x)

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.