How to find missing PrivacyManifest declaration warning reasons

Hi,

I just received a new email from AppStore Review while submitting our app for review. This time I got informed, that I need to declare two NSPrivacyAccessedAPITypes: NSPrivacyAccessedAPICategorySystemBootTime and NSPrivacyAccessedAPICategoryFileTimestamp. I tried to find where we make use of APIs falling under these categories, but I couldn't find any in our app code. I searched within our SwiftPM checkout folder too, seeing if there is an SDK missing the PrivacyInfo.xcprivacy file itself or the required declaration, again no luck. In another thread is described how a link map could help to find the source of my problem, but this file doesn't help me at all. I can find occurrences of the API names as string, but not all of them are API calls (e.g. creationDate which is a custom property).

So my question is now, how can I find the source of these warnings? I dislike the idea of blindly adding both declarations with all options on.

Best, Thomas

Replies

You have to access the documentation link with the reasons code, and in your privacy file you put the reason code for example:

<!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>3B52.1</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyAccessedAPIType</key>
			<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
			<key>NSPrivacyAccessedAPITypeReasons</key>
			<array>
				<string>CA92.1</string>
			</array>
		</dict>
	</array>
</dict>
</plist>
  • Sure, I could add the two API types, but first I want to know which code is requiring this. At this moment, this is a blind spot for me and because of that I can not define the right reason code. I also have no chance to remove the code when possible.

Add a Comment

I can find occurrences of the API names as string, but not all of them are API calls (e.g. creationDate which is a custom property).

So you're saying that you have your own objC / swift class with a property called creationDate, and that seems to trigger the warning email? That's worrying. You have a few choices:

  1. File a bug, ha ha ha.
  2. Rename your creationDate property. (I've always used a different capitalisation style than Apple's in order to avoid issues like this.)
  3. Just add one of the innocuous reason codes to your privacy manifest.
  • | So you're saying that you have your own objC / swift class with a property called creationDate, and that seems to trigger the warning email?

    Thats only guessing for now.

    I hope someone from the Apple AppStore Review team can give some feedback.

Add a Comment

I hope someone from the Apple AppStore Review team can give some feedback.

No, that won't happen. You need to sort this out yourself.