On Implementing App Tracking Transparency

Dear All

Though my app doesn't implement ATT and has declared Data Not Collected in the privacy section, Apple has rejected its update for many times, saying

The app privacy information you provided in App Store Connect indicates you collect data in order to track the user,

Apple also says:

If your app does not collect user or device data for tracking purposes, please update the information you provided about your app’s privacy practices in App Store Connect.

The point is that the app does not include ATT framework nor the AdSupport framework. It is a paid app and does not include ads sdks either.

I have repeatedly requested Apple to tell me where my app had declared that it would collect user or device data, Apple never answered directly, and finally suggested:

  • Review developer documentation for the AppTrackingTransparency framework.

  • See Frequently Asked Questions about App Tracking Transparency.

  • Ask fellow developers and Apple engineers a question in the Apple Developer Forums.

Since the app does not implement ATT at all, I come here to ask for your help.

Thank you in advance.


Replies

You can remove the details for your app tracking by updating your "App Privacy" section. You should see details with blue edit text beside them. If you click one of the blue edit options it will take you to a series of questions about how you or third parties collect data on the user. You can update this form to reflect your correct your apps details.

Hi shenzyapp,

I'm having the same problem here and apple support can't provide helpful feedback as usual.

Did you solve your problem? If yes, can you tell me how?

Thank you in advance.

I also have had my app declined for the same reason, the answer is to use the new Swift 5.5 API with Async Await version of the ATT

func requestAdsTrackingPermission() async {
    let status = await ATTrackingManager.requestTrackingAuthorization()

    switch status {
    case .authorized:
        // Tracking authorization dialog was shown
        // and we are authorized
        Log(ASIdentifierManager.shared().advertisingIdentifier)

    case .denied:
        // Tracking authorization dialog was
        // shown and permission is denied
    case .notDetermined:
        // Tracking authorization dialog has not been shown
    case .restricted:
        //
    @unknown default:
       //
    }

}

After changing the old completionHandler version of the ATT request my app now correctly requests tracking permission in the simulator.