3 Apply Privacy

This topic describes the systematic instruction to Apply Privacy option.

Apple requirements for Required Reason’s Api and Data Types usage

Note:

This document is for bank’s reference for the Apple’s rejection issue related to “Required Reason’s Api and Data Types usage”.

References:

WWDC 2023 video.

https://developer.apple.com/support/third-party-SDK-requirements/

https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/adding_a_privacy_manifest_to_your_app_or_third-party_sdk#4336740

What’s needs to be done in the application

  1. Since apple has pointed out Cordova as thirds party SDK which needs to add this, we have added “PrivacyInfo.xcprivacy” inside cordova framework and added below items for required reason Api and data types. Bank should delete its existing Cordova.framework and and OBDXframework.framework and add the new one in the patch fix.

    Note:

    We have added as per what we have used inside the application and Apple’s documentation, however Apple’s Email with details will be more useful to target the required keys to be added.
    <?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>NSPrivacyAccessedAPICategoryDiskSpace</string>                       
                             
                <key>NSPrivacyAccessedAPITypeReasons</key>                                   
                <array>                                               
                <string>E174.1</string>                                   
                </array>                       
                </dict>                       
                <dict>                       
                             
                <key>NSPrivacyAccessedAPITypeReasons</key>                                   
                <array>                                               
                <string>C617.1</string>                                   
                </array>                       
                             
                <key>NSPrivacyAccessedAPIType</key>                       
                   <string>NSPrivacyAccessedAPICategoryFileTimestamp</string>                       
                </dict>                       
                <dict>                       
                             
                <key>NSPrivacyAccessedAPITypeReasons</key>                                   
                <array>                                               
                <string>1C8F.1</string>                                   
                </array>                       
                             
                <key>NSPrivacyAccessedAPIType</key>                       
                   <string>NSPrivacyAccessedAPICategoryUserDefaults</string>                       
                </dict>           
              </array>           
                <key>NSPrivacyTracking</key>           
              <false/>           
                <key>NSPrivacyCollectedDataTypes</key>           
              <array>                       
                <dict>                                   
            <key>NSPrivacyCollectedDataType</key>                       
                             
                <string>NSPrivacyCollectedDataTypeDeviceID</string>                       
                             
                <key>NSPrivacyCollectedDataTypeLinked</key>                                   
                <true/>                       
                             
                <key>NSPrivacyCollectedDataTypeTracking</key>                                   
                <false/>                       
                             
                <key>NSPrivacyCollectedDataTypePurposes</key>                                   
                <array>                                               
                <string>App functionality</string>                                   
                </array>                       
                </dict>           
              </array></dict></plist>
  2. Additionally, there is “PrivacyInfo.xcprivacy” file added at Zigbank target level inside Resources folder

    Bank needs to add additional items as per their bank customize code in “PrivacyInfo.xcprivacy” file. They can refer Apple documentation link for further details. Also, Apple’s mail can contain details of what all is missing in the PrivacyInfo.xcprivacy. Those items can be added as per Apple’s doc.

    Note:

    This step is not mandatory but if there any reference of such file in Apple’s mail, bank needs to add privacy items details in application target’s “PrivacyInfo.xcprivacy” file
  3. Once added, build can be archived, and in organizer, right click on the application and Generate Privacy Report. This report will have the only the details of Nutrition label added in the application. Check if all nutrition labels declared in “PrivacyInfo.xcprivacy” file are present in the generated reported.

  4. Generate the application and upload to Appstore for Apple Review.