[Solved] Can not publish to iOS, problem with NSUserTrackingUsageDescription which is not used

This should be kept empty if you don’t have a WebViewer or AdMob. If any text is left in there, apple will look for the component and if not found will raise issue. Similarly, if you leave this blank but include the components, you’ll get dinged for an issue.

1 Like

Here we go again… :smiley:

Could you please help me out here? I got rejected due to the tracking issue.

So my app uses web viewer & push notifications, which is why I declared these in the User Tracking Usage Description. I wrote in the field:

This app accesses *** website. Your data may be shared with this website to facilitate functionality. The app also delivers push notifications and tracks user activity as an analytic tool to facilitate this service.

So my website is omitted here, but that’s basically what I wrote. I tried to apply the instructions from this post: iOS publishing & NSUserTrackingUsageDescription Issues

When I tried to submit the app for a review, I first got an instant rejection because I hadn’t declared any tracking in my app’s privacy statement on the App Store. So I went to edit this statement and declared there that I’m tracking user devices. Don’t know if this was enough of a declaration but anyhow it let me to submit the app for a review.

And then… I got rejected. The message was:

Guideline 2.1 - Information Needed

We’re looking forward to completing our review, but we need more information to continue. Your app uses the AppTrackingTransparency framework, but we are unable to locate the App Tracking Transparency permission request when reviewed on iOS 15.3.

Next Steps

Please explain where we can find the App Tracking Transparency permission request in your app. The request should appear before any data is collected that could be used to track the user.

If you’ve implemented App Tracking Transparency but the permission request is not appearing on devices running the latest OS, please review the available documentation and confirm App Tracking Transparency has been correctly implemented.

If your app does not track users, update your app privacy information in App Store Connect to undeclare tracking. You must have the Account Holder or Admin role to update app privacy information.

Resources

So, I’d now need to resolve this. The sooner the better as my app is basically a mess currently and iOS users are wondering what’s going on. So, how could I have this permission request on my app? Or alternatively, can I still revert back to the old model of not declaring anything for this field, despite having the web viewer & push notifications?

Could I please ask for the team’s kind help once again? @jared @wei

Thank you!

2 Likes

We pushed some changes to our iOS build servers. I hope it will address most, if not all, of Apple’s new requirements. Here is the instruction you can follow -

  • Please make sure the user tracking description string is not empty (check the filed in the project property panel)
  • Try to build the app again (not publish)
  • You should be able to see the pop-up immediately when you open the screen with the web viewer component
  • Once everything looks good to you, please submit to Apple review again.
2 Likes

You can see a sample pop-up screenshot below -

2 Likes

I’m having the same issue, could you explain what you mean by “Try to build the app again (not publish)”. Changing the version number didn’t result in the popup, I’m not sure what a “build” is.

1 Like

Download your app :slight_smile:

1 Like

Got it, thanks. :call_me_hand:

1 Like

Hi there, thanks for your quick response to the issue.

I now populated the tracking field on Thunkable and downloaded the app for iOS and tried it out. When I start the app, the app asks the user for a permission to send push notifications (this happens immediately), but I get no other tracking prompt – when I access the web viewer the app doesn’t ask me anything. I tried this in either way, by answering yes/no to the initial prompt about push notifications, but still I don’t get the prompt when I enter the web viewer. I’m running the latest 15.3. What to do now…

Edit. If it’s of any help, the initial prompt that asks the user for a permission to send push notifications is an Apple standard prompt for this, not the one I drafted.

Edit 2. I also built a test app, which only contained the web viewer displaying a web page, and populated the tracking field. Then I downloaded the app and tried it out with iPhone, but didn’t get any prompt. So, it seems that opening the web viewer doesn’t cause the prompt to be displayed. Don’t know if this is a good thing at this point or not. It’s not so long since the release of 15.3, so I was wondering if Apple has changed something that affects this behavior since 15.2…

Edit 3. Right… So I just received a message from Apple that my app was approved – without any tracking declaration on the Thunkable side nor on the App Store side (Privacy Policy). You might wonder why this happened, but the reason is that I submitted the app yesterday after the last rejection, just with a blank tracking field / removed any tracking declaration from the App Store Privacy Policy, and left the app there in the review while we were discussing all this. Interestingly, when I downloaded the updated app from the App Store and opened it, the app asked my permission to send push notifications – the exact same behavior I got when I downloaded the app this morning after yesterday’s changes to Thunkable iOS build servers.

So my guess is this: Maybe with 15.3 Apple is not that strict about web viewer anymore, after all, and they allow publishing apps with web viewer without any tracking declaration. And, as to push notifications, they don’t require any particular tracking prompt for this either, they just automatically prompt the user for the push notifications when the app opens if they detect that the app contains push notifications. Just an educated guess here.

2 Likes

Unfortunately, it appear I still have this issue as everyone else.

My app is straightforward w/ no tracking at all. It just goes to different pages/screens in the project and it has buttons to launch a website.

My “Tracking Usage Description” is blank and my intention is to not track any data. However, I still get the NSUserTrackingUsageDescription message before posting.

I read through everyone’s comments in this thread and performed a thorough search.
Is there anyway to manually remove the NSUserTrackingUsageDescription from the build? I used the publish iOS feature so I assume I can’t use that.

Any suggestions is greatly appreciated!

1 Like

Did you use the web viewer component?

1 Like

No.
I only use the “Open Link” block so it opens Safari when the person taps a button.

After researching/troubleshooting:

  • I did notice there was an “In-App Purchase” subsection in the Advanced section in the Blocks view. I was just playing around w/ the components trying to learn but I inadvertently I left it in there. I deleted it and I shall try to publish again.
  • I did have a Bluetooth subsection in there days ago but deleted it as I decided to go to a different approach. This was done prior to pubishing. Perhaps this caused the project to contain an empty object where apple’s automated review process sees it and thinks “empty or not…its there”.
  • In an attempt to resolve this, I set Apple’s App Privacy to “Yes, we collect data”. As with another person in the community, I can no longer change it back to specify I do not.

Overall, I shall try another build now to see if removing the “In-App Purchase” section in the tree fixes it.

*Fingers crossed, big time!

1 Like

I created a new app in the app store connect to rule out any odd issues and I published the build to the new app.

Unfortunately, I still get the NSUserTrackingUsageDescription message from apple.

Any assistance shall be greatly appreciated as we are on a time crunch.

1 Like

Similarly, I followed the instructions and confirmed that the popup occurred on the first instance when going to the webviewer but still get the same rejection from Apple. Why is Apple so difficult to work with and why do they provide such obscure and unhelpful feedback?

2 Likes

I’m encountering this error now but this thread is really long.

I already removed the value Tracking Usage Description. I also don’t use any WebViewer of AdMob.

What was the final solution? Any ideas?

2 Likes

Can you send me your project link (copy from the browser address bar)? my email is wei@thunkable.com

Thanks,
Wei

1 Like

I just deployed internal trackings, so we can better track the issues.

Can you try to publish to Apple again? Once you have done that, please let me know. I can check first before you send it to Apple for review.

Thanks,
Wei

4 Likes

Just an update that might interest you. I just pushed another update to my app yesterday (to iOS) and like the last time I didn’t include any tracking description on the Thunkable side, nor on the App Store Privacy Policy, and the app was approved. What’s interesting is that I am using web viewer as well as push notifications.

As I tried to download the app for iOS before sending it to App Store review, I could notice, just like previously, that immediately when I start the app I get an automatic prompt asking whether the user allows the app to send push notifications – however, when I utilize the web viewer, I get no prompt.

This really wasn’t a problem for me this time, but just to let you know as the team’s been emphasizing that there would be an automatic tracking prompt for the first time when the web viewer is utilized – this really isn’t happening for me, nor does Apple seem to be looking for it (at least for now). So things kinda work, but perhaps not the way the team intended.

To be fair, if you ask me, in the long run I’d just let users to decide where and how to display the tracking prompt if they need it, rather than try to automate it. It will probably just get messy this way as there are so many different use cases and Apple is constantly changing its policies. And when things don’t work out, it pretty much prevents Thunkers from publishing updates to their apps, which is pretty mission critical stuff at times.

So, if I can suggest, I’d just keep the tracking field feature as it is now on Thunkable but add to this the possiblity to display the tracking prompt as a special kind of alert, and then let Thunkable app developers to decide how the app would function based on how the user reacts to the prompt, whether tracking is approved or not. Wouldn’t this be the easiest and most flexible way to solve the issue in the long run? :slightly_smiling_face:

Ping @wei @jared @domhnallohanlon and others…

2 Likes

Thanks for the feedback here! This is definitely interesting. I caution you to not be too optimistic about this. Apple manually reviews apps with humans. It’s likely that the reviewer was snoozing on the job. Either way, I’m happy you got through.

presumably the prompt for the web viewer is the one you see when you first open the app instead of the first time the webviewer is to be accessed?

I think this is a good idea. not sure if it’s doable (I don’t have my eyes on the code, codebase, or the ios/android rules surrounding these alerts) but will take this and submit on the feature board.

3 Likes

Success!

Using the latest build, I was able to submit the app to Apple while the tracking was set to “No”.
Note: The app I submitted does not use a WebViewer or push notifications.

Appreciate all the hard work your team regarding correcting this! Now we can press forward.

3 Likes

Thanks for your input. I thought so too, quite likely this isn’t the full picture – probably the reviewer was just snoozing on the job.

So the real problem for me is that I really don’t get the tracking prompt (for web viewer), I just get an automated prompt about push notifications. This prompt about push notifications, which I get right away when I start the app, comes even if the tracking field is left empty. I’ve tried different combinations (downloaded the app for iOS and tried it out), but this is what I’ve got so far. So luckily the reviewer wasn’t looking for the prompt for the web viewer as I couldn’t have produced one (and getting rid of the web viewer is impossible for my app, as it’s so much built around it).

All in all, I’m just saying that perhaps you should still try it out / make sure that the tracking prompt really works if an app has the web viewer component. At least for me it didn’t work, i.e. didn’t get the tracking prompt for web viewer, some time ago, but perhaps it’s fixed now (didn’t try it again right now).

The manual prompt would indeed be the ultimate solution, but whatever the solution for now, it would just be really important to have the quality testing in place, making sure that the prompt really works when it’s needed; otherwise, it pretty much halts production almost immediately.

Anyway, thanks for all your hard work on this guys!