Apple just rejected our latest game update because of a problem with the AppTrackingTransparency request.
We’ve been using extension-adinfo to show the ATT dialog for some time. The difference is that Apple are now testing on iOS 15 and they claim not to see the dialog. The problem is that on our iOS15 devices, we do see it.
They’ve given quite a lot of advice, including to read the ATT documentation.
Calls to the API only prompt when the application state is UIApplicationStateActive . The authorization prompt doesn’t display if another permission request is pending user confirmation. Concurrent requests aren’t preserved by iOS, and calls to the API through an app extension don’t prompt. Check the trackingAuthorizationStatus for a status of ATTrackingManager.AuthorizationStatus.notDetermined to determine if you need to make an additional call.
There’s a lot of discussion among non-Defold developers about this, e.g. one dev said " I found that if I moved the code from my main ViewController’s viewDidLoad method to the AppDelegate’s applicationDidBecomeActive method, it works as expected in both iOS14 & iOS15."
We call adinfo.get() from a script init function, so could just delay it, but it would be a guess.
Has anyone else encountered this?
I don’t think that would help. By the time your init() function is run the application is definitely active and running.
Hmm, this makes it a lot harder to test any solution.
We could probably modify the extension to also return a status code mapping to NotDetermined, Authorized, Restricted and Denied. And if you get NotDetermined you should call adinfo.get() again.
It’s hard to be confident this will work for a number of reasons including that I’m not confident in Objective C. But we’ve submitted to Apple again this evening, so I’ll report back…
I doubt your change will make a difference. UIApplicationStateActive is the state the app is in when it is running in the foreground. The app should be in this state when your Lua code is running, even the code in init().
As I understand it may happening when you have more than one reqrequest when start application. For example Notifications request and ATT, in this case this fix might help, but I’m not sure.
We did have the notifications request at the same time, and our first ‘fix’ was to move it much later, but that didn’t help (Apple still had the same problem).