Xamarin.IOS.dll 使用广告标识符 (IDFA)

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

我们想提交 Xamarin 申请以供 Apple Appstore 审核,在提交过程中会提出以下问题:

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.

它还给出了一个非常可怕的红色警告:

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.

问题截图如下:

我不确定如何回答这个问题,因为我们的应用程序根本不投放广告,但我不确定我们使用的任何组件是否正在使用 IDFA,并且考虑到我不想接受的可怕警告任何机会。

我用谷歌搜索了一些关于这个问题的信息,发现 this useful article 解释了在你的代码中搜索什么以确保你没有使用 IDFA。相关内容如下:

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

所以我在我的项目中进行了以下 grep 搜索:

grep -lr  "ASIdentifierManager" *

此搜索返回的结果表明 ASIdentifierManagerXamarin.iOS.dll 的 32 位和 64 位版本中均找到。

所以我假设我回答 "No" 是不安全的,因为 Xamarin.iOS 正在使用 ASIdentifierManager,所以我是正确的。即使我们的应用程序不投放广告,是否建议回答 "Yes" 这个问题?或者有什么方法可以编译应用程序,以便 Xamarin.IOS.dll 中不引用 ASIdentifierManager

如果您的应用不使用广告 API,我认为您可以回答 "no"。

我在应用商店中有两个 Xamarin 应用,我一直回答 "no" 并且还没有被拒绝。我相信原因是虽然 Xamarin 库 API 引用了广告 API 因为应用程序实际上并没有调用它,所以它们没问题并且不被视为使用 IDFA。