Skip to content

App tracking transparency request(PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY) is returning denied #823

@jwoodmansey

Description

@jwoodmansey

Bug summary

We are calling request(PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY) and immediately logging the result for tracking purposes. Since iOS 17 we are seeing a large increase in these logs returning denied. According to the flowchart in this repo the request call should only return granted/blocked?

image

Library version

3.10.1

Environment info

System:
    OS: macOS 13.5.2
    CPU: (8) arm64 Apple M1 Pro
    Memory: 98.44 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 16.13.0 - /var/folders/w7/87j7w3155m79j7lzh_pxqr8r0000gn/T/yarn--1699288369076-0.3305727072937681/node
    Yarn: 1.22.17 - /var/folders/w7/87j7w3155m79j7lzh_pxqr8r0000gn/T/yarn--1699288369076-0.3305727072937681/yarn
    npm: 8.1.0 - ~/.nvm/versions/node/v16.13.0/bin/npm
    Watchman: 2022.03.21.00 - /opt/homebrew/bin/watchman
  Managers:
    CocoaPods: Not Found
  SDKs:
    iOS SDK:
      Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4
    Android SDK: Not Found
  IDEs:
    Android Studio: 2022.3 AI-223.8836.35.2231.10811636
    Xcode: 14.3/14E222b - /usr/bin/xcodebuild
  Languages:
    Java: 17.0.6 - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.2.0 => 18.2.0 
    react-native: 0.71.13 => 0.71.13 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Steps to reproduce

  1. Install library with set up
setup_permissions([
  'AppTrackingTransparency',
  # 'BluetoothPeripheral',
  # 'Calendars',
  'Camera',
  'Contacts',
  'FaceID',
  # 'LocationAccuracy',
  # 'LocationAlways',
  # 'LocationWhenInUse',
  # 'MediaLibrary',
  # 'Microphone',
  # 'Motion',
  'Notifications',
  'PhotoLibrary',
  'PhotoLibraryAddOnly',
  # 'Reminders',
  'Siri',
  # 'SpeechRecognition',
  # 'StoreKit',
])
  1. Call await request(PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY);
  2. Response can be 'denied'?

Reproducible sample code

import { check, PERMISSIONS, request } from 'react-native-permissions';


...
          const response = await request(
            PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY
          );
          //response is logging here as denied

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions