除了用户手动重置之外,有没有观察到其他会导致ADID重置的原因?OTA操作系统升级?iTunes恢复?
(在 iPhone 3GS 上使用 iOS 6.0.1 和 iOS 6.1.3 以及 iPhone 4S 上使用 iOS 6.1.3 和 iOS 7.0.0 进行测试,对 advertisingIdentifier
和 identifierForVendor
的影响)
iOS 设置应用程序中的“重置所有设置”
没有影响。
iOS 设置应用程序中的“擦除所有内容和设置”
重置了 advertisingIdentifier
和 identifierForVendor
。
通过 iTunes 恢复设备
重置了 advertisingIdentifier
和 identifierForVendor
。
从设备中删除应用程序
如果这是具有特定 Team ID 的最后一个应用程序,则会重置 identifierForVendor
。
更新应用程序(自动或通过应用商店)
没有影响。
通过 TestFlight 或 Ad-Hoc 更新应用程序
根据文档,可能会重置 identifierForVendor
。
启用/禁用“限制广告跟踪”
iOS 6.0.1:没有影响
iOS 6.1.3:重置了 advertisingIdentifier
。
OTA 系统更新(从 iOS 6.0.1 更新到 iOS 6.1.3)
没有影响。
OTA 系统更新(从 iOS 6.1.3 更新到 iOS 7.0.0)
在某些情况下会重置 identifierForVendor
。(1)
通过 iTunes 进行系统更新(从 iOS 6.1.3 更新到 iOS 7.0.0)
在某些情况下会重置 identifierForVendor
。(1)
iOS设置应用程序中的“重置广告标识符”
重置advertisingIdentifier
。如果已经有一些正在运行(或挂起)的应用程序请求了advertisingIdentifier
,它们将无法在停止和重新启动之前检索到新的标识符。
iTunes备份
没有影响
iTunes备份还原(到同一设备)
还原备份的设置,包括advertisingIdentifier
和identifierForVendor
。注意:如果您在恢复之前删除了多个带有某个Team ID的应用程序,则identifierForVendor
将永远不会再次重置,直到您安装并再次删除所有使用该Team ID的应用程序。这似乎是一个错误。
iTunes备份还原(到另一设备)
重置advertisingIdentifier
和identifierForVendor
。
(1) 据我所知,在App Store中的应用程序不应该出现这种情况。这似乎与应用程序包ID中的组件数量和相应的预配配置文件有关:iOS 7应用程序发布说明关于应用程序部署
在我的测试中,对于具有4个组件的应用程序(使用开发人员或企业分发预配配置文件的版本),identifierForVendor
会改变,但对于那些具有3个组件的应用程序,identifierForVendor
则不会改变。
两种情况:
备份、操作系统升级、应用程序重新安装或选择“限制广告跟踪”不会重置标识符。
据我所知,您可以将供应商ID和广告ID发送到服务器,当用户使用“重置广告标识符”重置时,您可以将新的与旧的匹配,因为供应商ID存活下来了。不知道苹果打算如何防止这种情况。