Closed Geoffrey63 closed 6 months ago
I was having the same issue, and all that I needed to do was globally turn on tracking in my iPhone settings
Seems like OS issue https://forums.developer.apple.com/forums/thread/746432
It's still not fixed by Apple, so I used while + check in redux-saga:
let result = yield call(check, PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY);
if (result === RESULTS.DENIED) { // The permission has not been requested, so request it.
/*
There is a bug in iOS 17.4 request function. It does not wait for the user to make a decision
and returns immediately "blocked". Usually it should wait and return the decision of the user.
The check function works correctly. Therefore, we have to loop and check until the user has
made a decision (denied or granted). Source:
https://github.com/zoontek/react-native-permissions/issues/857
https://forums.developer.apple.com/forums/thread/746432
*/
yield call(request, PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY); // Bug in 17.4. Don't use result, because it is always "blocked"
while (result === RESULTS.DENIED) {
yield delay(5000);
result = yield call(check, PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY);
}
}
Does anybody experience this behavior but with unavailable
? For me on iOS 17.x.x I have this.
Should be fixed now in iOS 17.5
Should be fixed now in iOS 17.5
Yes, tested on my apps, it has been fixed in iOS 17.5.
Before submitting a new issue
Bug summary
Tested in the Example project from this repo : clicking on "Request" to request the PERMISSIONS.IOS.APP_TRACKING_TRANSPARENCY permission show the Snack with "blocked" directly after clicking the button and doesn't wait for user to answer the system permission pop-up. Then clicking on "Allow" has no effect.
Tested equally inside our app and the behavior is identical.
Library version
4.1.4
Environment info
Steps to reproduce
Reproducible sample code