xamarinappstore-approvalidfa

Xamarin.IOS.dll use of Advertising identifier (IDFA)


We are wanting to submit our Xamarin application for review for the Apple Appstore and in the submission process the following question is asked:

Does this app use the Advertising Identifier (IDFA)? The Advertising Identifier (IDFA) is a unique ID for each iOS device and is the only way to offer targeted ads. Users can choose to limit ad targeting on their iOS device.

It also gives a very dire warning in red:

Ensure that you select the correct answer for Advertising Identifier (IDFA) usage. If your app does contain the IDFA and you select No, the binary will be permanently rejected and you will have to submit a different binary.

Here is a screenshot of the question:

enter image description here

I wasn't sure how to answer this because our application does not serve adverts at all but I was not sure whether any components that we are using are using IDFA, and considering the dire warnings I did not want to take any chances.

I googled some information about this question and found this useful article which explained what to search for in your code to ensure that you are not using IDFA. Here is the relevant content:

Apple advised the publisher to check code, including third-party libraries, to remove any incidences of the following:

class: ASIdentifierManager selector: advertisingIdentifier framework: AdSupport.framework

So I did the following grep search in my project:

grep -lr  "ASIdentifierManager" *

This search returned a result saying that ASIdentifierManager was found in both the 32 bit and 64 bit versions of Xamarin.iOS.dll.

So am I correct in assuming that it would not be safe for me to answer "No" to the question because Xamarin.iOS is using ASIdentifierManager. Would it be advisable to answer "Yes" to this question even though our application does not serve adverts? Or is there some way to compile the application so that ASIdentifierManager is not referenced in Xamarin.IOS.dll?


Solution

  • I think you can answer "no" if your app doesn't using the ad APIs.

    I have two Xamarin apps in the app store and I have always answered "no" and haven't been rejected yet. I believe the reason is that while the Xamarin library API references the ad API since the apps aren't actually calling it they are ok and aren't counted as using IDFA.