IOS: App rejected because of App Tracking Transparency on WebView - ios

I'm working on an app made in React Native with Expo.
It uses a web view to show the site in the app.
Everything worked well, but when I submitted my app to the App Store, it got rejected.
The mail said:
We noticed you collect data to track after the user selects "Ask App
Not to Track" on the App Tracking Transparency permission request.
Specifically, we noticed your app accesses web content you own and
collects cookies for tracking after the user asked you not to track
them.
After that, using the expo tracking transparency library, I added a permission request to track data.
If the user doesn't accept it, I disable third party cookies on the web view.
After submitting again to the App Store, I got the exact same message.
I don't know what to do, because I can't control the site, and I'm limited to the React Native web view props
Maybe, I could enable incognito mode if the user doesn't want the app to track, but I'm not sure if this will be accepted too.

i had the same issue i solved it like this:
change the privacy of the app on apple store, go to app privacy and in data types section click edit and select Identifiers (Device ID) and set this one as used for tracking purposes. and make sure that this is the only one selected as used for tracking.
also make sure that the permission is showing on real device (so test it first on TestFlight).
another thing is you need to tell them where you show this permission send them video to tell them where you show the permission.

Related

App Tracking Transparency on Flutter was rejected by Apple

I need help us
I have an problem with publish my flutter app on Apple Developer. My binary was rejected any times and i does't any more ideas about this.
The support team of apple developer says this problem:
Guideline 5.1.2 - Legal - Privacy - Data Use and Sharing
We noticed your app accesses web content you own where you collect cookies. Cookies may be used to track users, but you do not use App Tracking Transparency to request the user's permission before collecting data used to track.
Starting with iOS 14.5, apps on the App Store need to receive the user’s permission through the AppTrackingTransparency framework before collecting data used to track them.
But, i implemented according of docs. For showing permission request dialog i have used this library:
https://pub.dev/packages/app_tracking_transparency
I'm confused because it already implemented everything that was requested.
App Tracking Transparency implemented
Permission is displayed to the user, who selects YES or NO.
App Tracking Information is updated here in the App Store Connect section, including Third Party Cookies.
My app accesses external links in a WebView and for that reason they are questioning the use of "App Tracking". But I implemented everything as requested by them.
My biggest question is if I'm forgetting something that may have gone unnoticed.
Anyone who can help me, please?
The same thing exactly happened with me twice and in both time the issue was resolved by simply sending them a video recording of the app showing the Yes/No App Tracking Transparency dialog. They just want to know when it appears to user if you implemented everything correctly. So try sending them a video recording in the resolution center as a response to that message.
App Store Review team is always questioning the "App Tracking Transparency dialog". Even if this dialog is the first thing that appears after the app launch. (I think they just haven't launched the app).
There's no need to make a video, just add the text "The App Tracking Transparency dialog is appearing after app launch" and they will approve the app.

App Tracking Transparency implementation for a iOS app based on a WebView

I did many researches on the web but I did not find a clear answer to doubts.
I need to publish an update for my iOS app.
Now it is mandatory that app implements App Tracking Transparency if the App privacy section states that the application is collecting data information.
My app consists in a WebView showing some pages of a web site.
All tracking about user information (technical cookie, third party, etc..) happens inside the web view. However in App Privacy section I set that the app is collecting user information because of the cookies present on the web sites (Facebook Pixel, Google Ads, Analytics, etc..).
Now my questions are:
Should I change the App Privacy information telling that app is not collecting information?
I implemented the App Tracking Transparency framework. What should I do if the user refuses the tracking? Is it a transparent thing as the third party cookies will not be able to track users through the IDFA? Or should I interact in some way with the website to tell it that user did not allow tracking?
You have declare it. https://developer.apple.com/app-store/app-privacy-details/#additional-guidance
Your app has web views.
Data collected via web traffic must be declared, unless you are enabling the user to navigate the open web.
By showing those WebViews your app IS collecting data (esp. if these are your "own" websites and not the "open web").
And it also reads like you can't display the website if the user did not comply to it or have another popup on the website itself.
Collection of the data occurs only in infrequent cases that are not part of your app’s primary functionality, and which are optional for the user.
And, if I'm reading correctly, your app is just a wrapper around those websites.

App rejected by Apple based on design guideline

Apple rejected our app with the following response:
We noticed an issue in your app that contributes to a lower quality user experience than Apple users expect:
- Upon launching the app, a web page in mobile Safari opens first, then returns to the app. The user should be able to use the app immediately upon launch.
Next Steps
To resolve this issue, please revise your app to address all instances of this type of issue.
The app we're developing is a keyboard extension. The use-cases do not require a user to actually open the app and use it. As a result, in the app itself (should you launch it from home/springboard), we redirect the user to our website, which informs the user how to use the product (there's no registration or immediate tutorial required, but we certainly cant have the app do absolutely nothing). From Apple's response, this clearly isn't the right way. My questions:
If a user were to be redirected to Messages, could this solve the problem? The reason I ask this instead of just trying it is so that I dont waste time and end up getting rejected again.
Part of the problem seems that opening the app through springboard is misleading since it doesnt do anything. But my understanding is that we cannot have apps without icons (Create iOS app without menu icon). Do keyboard apps need to be published differently so that we dont have an icon in springboard? If so, please direct me to some documentation/Xcode configuration/resources to achieve this.
This is my first attempt at mobile development
The answer provided by #particleman was the right one. Just loading a WebView within the app was enough for Apple to accept the app.

iOS migration from Website to app

iOS. I have a mobile web site and a mobile app for the same. i want the user to be able to navigate from web to my app through a link. Is it possible for this feature to be feasible when the app is not installed. I know i can use smart app banners when the app is already installed and this feature can be implemented then. But the main problem i am facing is when the user is asked to install the app (from smart app banners) for a particular page of my website. How can i automatically redirect the user to same page on my app from where he clicked the app banner on first launch of app ?
This is a problem that Branch, the company I'm working for, solves. It's actually fairly simple to explain, but quite a bit more tricky to implement yourself.
Apple doesn't currently allow you to persist information like that through an install (through the App Store), so you'll need an intermediate server. Now, depending on what devices you want to support, this gets more and more tricky. You mentioned you're only on iOS now, but if you expand to Android, this becomes even more complicated (with the fragmentation of Android devices and browsers, etc). For now, I'll just explain for iOS though. It's basically a two step process, starting with the smart banner on your mobile web page.
The smart banner, when clicked, will try to
* Launch the app if possible. We do this by trying to load via the app's URI scheme.
* If the URI Scheme fails (not installed), we send a device fingerprint to our servers based on IP, model, etc. and then send the user to the app store.
The second part is then within the app:
* When it launches, it needs to ask the server if it was launched via a link click. (whether directly into the app or through the app store and now into the app).
* It sends along a similar fingerprint, and then the server (if the device matches) will send back the relevant info (the page id, or whatever you use).
* If the page id is present, you need to present the view controller with that content to the user (you may need to persist this info in your app through a login, if it's behind an auth wall).

iOS not receiving user to user app requests

I am sending app requests from an iOS native app using Facebook SDK dialog. I have created a canvas app and set the iTunes ID (using a valid ID from a different app in the store now, since mine is not). The requests arrive at desktop www site, and show up under "App and Games>Invites from friends". But, they do not show up on iOS native Facebook app, unless I first do Facebook SSO with my app. Then, my app bookmark appears in FB, and new requests increment the counter.
How do I get the requests to show up on iOS before my app is installed? Other peculiar thing that may be related, is I get no activity under "Notifications" on iOS, only the app bookmark. On desktop, I see the Notifications globe flash with a red badge at first logon, but then the badge goes away and nothing is there, although the requests appear under "Apps and games". This seems not totally consistent as some people who have tested my app get the expected Notification behavior, but I never do on my own FB account. Could it be because if added and removed the app repeatedly for testing?
Any clues?
My problem seems to have been something fouled up in the Facebook database, probably as a result of my various misfires in early development. At some point it began working correctly without any changes on my end.

Resources