iOS6的新IDFA 功能适用于运行 iOS6 的用户的转化跟踪。但是,如果应用程序的最低支持版本低于 iOS 6,那么在 iOS6 之前的设备上运行时,可接受的处理方法是什么?
Jumptap 提到您仍然可以在 iOS6 之前的设备上使用 UDID:
广告标识符 (IDFA) 是在 iOS 6 中引入的。广告商使用它来跟踪转化和高级定位等。在使用 iOS 6(或更高版本)的设备上,IDFA 旨在取代 UDID 作为设备标识符。在使用 iOS 5(或更低版本)的设备上,Apple 将继续支持使用 UDID 作为设备标识符。
但这并不适合我。iOS 版本检查是运行时的事情,这意味着您的代码将始终静态链接到已弃用的 UDID 访问器,并且仅在运行时决定是否读取它。当然,Apple 的审核过程会看到指向 UDID 的静态链接并拒绝该应用程序。他们不会反编译代码并确认你的逻辑是正确的,或者尝试做一个 100% 的代码覆盖测试来确认它在 iOS6 中运行时永远不会被读取,是吗?!?!
此外,AppsFlyer 提到可以在他们的 SDK 中启用 UDID,并附上以下说明:
*UDID 详细信息:一些广告网络(例如 Tapjoy)需要 UDID 才能运行 CPI 活动。在上述情况下,您需要启用 UDID 并使用明确的隐私声明更新您的应用条款和条件,通知您的用户收集他们的私人信息。
这似乎意味着只要您通知用户,仍然允许读取 UDID。但是,我在 Apple 官方文档中找不到任何提及。