iOS Manifest Information

Starting May 1st, iOS will mandate privacy manifests for all new app builds on the Apple App Store. For more information, see:

This means, any app utilizing third-party SDKs must integrate the relevant privacy manifest information into their submission for App Store review. This can be achieved by integrating a new version of 3rd party SDKs that includes the privacy manifest information as per Apple's requirements. The Zendrive SDK also uses third-party SDKs such as the AWS SDK and SQLite SDK. These SDKs now offer new versions that include the necessary privacy manifest information.

This impacts all our applications planning to make any new app release to the App store after 1st May, after this date apps are likely to be rejected by iOS if they do not have the updated privacy manifest information. From 1st April onwards, developers have been seeing warnings from iOS when submitting apps.

Zendrive suggests a few approaches to fulfil this requirement:

Zendrive has released iOS SDK 10.0.4 to support the manifest requirement. This SDK has also updated the AWS & SQL Lite SDKs to the latest versions, including the manifest information. For more information, see Zendrive SDK v10.0.4 Release Notes.

  • AWS SDK version: 2.34.2, available through Cocoapods, Carthage , and SPM.

  • SQL Lite version: 0.15.1, available through Cocoapods, Carthage , and SPM.

AWScore and AWSSQS will be downloaded automatically when using Cocoapods along with Zendrive SDK. Reach out to [email protected] for any assistance or questions.

During Zendrive testing, this approach is still causing warnings during app review. To avoid these warnings, we recommend developers to copy paste the privacy manifest file in method 2 into their plist file even when following method 1.

2. Add privacy manifest file manually:

Developers can manually update the privacy manifest file with the information that Zendrive will provide. This will cover the Zendrive SDK and the dependent SDKs. The exact manifest information is available below:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>NSPrivacyAccessedAPITypes</key>
	<array>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>C617.1</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>35F9.1</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>E174.1</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>1C8F.1</string>
			</array>
		</dict>
	</array>
</dict>
</plist>

Sample Xcode screenshot:

Known Issues related to Privacy Manifest:

  • Privacy manifest should be placed at root(“/”) in the bundle.

  • Privacy manifest has to be added to the Target app.

This is a workaround that seems to be working currently, but this is not as per the documentation released by Apple. Hence, this approach may still lead to app rejections or warnings after May 1st.

Was this helpful?