Apple’s privacy manifest policy requirements
Provides guidelines on Apple's privacy manifest policy requirements.
Read time 6 minutesLast updated a month ago
Apple requires new and updated applications targeted for iOS, iPadOS, macOS, tvOS, and visionOS platforms on the App Store to include privacy manifest files.
The privacy manifest file () lists the types of data your Unity applications, or any third-party SDKs, packages, and plug-ins collect, and the reasons for using certain required reason API categories.
PrivacyInfo.xcprivacyImportant:
- If the use of the required reason APIs by you or third-party SDKs isn't declared in the privacy manifest, your application might be rejected by the App Store.
- The applications targeted for macOS platforms don't require to declare the use of the required reason APIs. For macOS applications, the privacy manifest requirement only applies if you plan to publish your application on the App Store. For more information, visit Apple’s documentation on Describing use of required reason API.
Prepare your Unity applications for Apple’s privacy manifest policy
You must review your native code, C# code, and data collection and tracking practices to understand if Apple's privacy manifest policy applies to you. Follow these guidelines to decide if you need to include a privacy manifest file in your product:
-
If your application includes multiple third-party SDKs, packages, and plug-ins, then these third-party components (if applicable) must provision their own privacy manifest files separately.
-
If your application includes Unity framework implementations of the C# .Net framework APIs that call certain APIs listed in the Apple’s required reason API categories, then you must assess your product for the API usage. For assessing what constitutes as part of data collection and tracking practices, refer to Apple's documentation on privacy manifest files.
Depending on whether you’re using Unity to develop an application or providing your SDKs, packages, and plug-ins to use with Unity applications, the requirement for providing a privacy manifest file might differ.
Privacy manifest for Unity applications
If you’re developing an application using Unity, consider the following steps:
-
Assess if your native application code uses any of the following APIs:
- APIs listed under the required reason API category.
- The C# .Net framework APIs in Unity framework.
-
If you meet one or both of the conditions from step 1, create a privacy manifest file in Xcode and save it in the Assets/Plugins folder of your project.
-
In the privacy manifest file, declare the approved reasons for using the required reason APIs or C# .Net framework APIs, as applicable.
-
Verify if your native application code collects any type of data categorized by Apple and declare those data types in the privacy manifest file as applicable. Any third-party SDKs, packages, and plug-ins used in your application must include their own separate manifest files to declare data collection and the use of any required reason APIs with approved reasons.
Notes:
-
It's your responsibility to check the accuracy of the privacy manifest within the Unity framework and if any third-party components included in your Unity project require any declarations in you privacy manifest. It's recommended that you search these third-party components for any references to a privacy manifest declaration.
-
If you’re developing an application using Unity as a library, check if your native application code collects any of the following information outside of the Unity project:
- Data collection
- Required reason APIs If it does, then you must declare their usage in the your privacy manifest file.
Privacy manifest for third-party SDKs, packages, and plug-ins
If you’re a plug-in, package, or SDK owner, and you provide a service or package to be included within a Unity project as a .framework, follow these steps:
-
Assess if your native code or native library includes any of the following categories of information:
- Any type of data categorized by Apple
- Any APIs listed under required reason API categories
-
Declare the types of data being collected and the approved reasons for using the required reason APIs in the privacy manifest file of your framework (if applicable).
If your product isn't used as a .framework within a Unity project, then consider delivering it as a .framework. If you're unable to do so, then follow these steps:
-
Assess if your native code or native library uses the following APIs:
- Any APIs listed under required reason API categories.
- Any C# .Net framework APIs in Unity framework.
-
If one or both of the API categories are used, then create a privacy manifest file in Xcode and save it in your source code. Make sure to select the iOS platform in the plug-in Inspector window.
-
In the privacy manifest file, declare the use of required reason APIs or C# .Net framework APIs, as applicable with approved reasons.
-
Verify if your native code or native library collects any type of data categorized by Apple and declare those data types in the privacy manifest file as applicable.
C# .Net framework APIs in Unity
The following table provides a list of C# .Net APIs that call the required reason API category named File timestamp API. If your application, SDK, package, or plug-in code calls any of the APIs from this list, declare the reasons for their use in your privacy manifest file following the guidelines specified in Apple’s documentation on required reason API.
Unity Engine privacy manifest
Unity Engine calls the required reason APIs from the following categories and declares these categories with the listed reasons for their use. For more information on the categories, refer to Apple's documentation.
Category | Reason | Description |
|---|---|---|
| File timestamp APIs | 0A2A.1 | Used by C# timestamp APIs |
| File timestamp APIs | C617.1 | Used to check files |
| User defaults APIs | CA92.1 | Used for PlayerPrefs API |
| System boot time APIs | 35F9.1 | Used to calculate time between various events |
| Disk space APIs | E174.1 | Used to check disk space for AssetBundles |