iOS6 UDID – identifierForVendor具有优于identifierForAdvertising的优势吗?

苹果公司正在改变他们的隐私设置为iOS6和贬低设备的UUID(UDIDs)。 根据WWDC的演示文档和文档, UIDevice类中有两个UDIDreplace项:

-identifierForVendor

  • 来自同一开发人员的应用程序之间的ID相同。
  • 删除该团队ID的最后一个应用。
  • 备份。

-identifierForAdvertising

  • 设备的独特之处
  • 适用于所有应用程序; 用于广告 – iAd从iOS 6及更高版本的UDID转换而来。
  • 使用“清除所有内容和设置”重置。
  • 备份。

在我看来, -identifierForVendor不如-identifierForAdvertising因为它将在上次从供应商卸载应用程序时被重置,并通过“擦除所有内容和设置”被重置。

-identifierForVendor具有over -identifierForAdvertising优点吗?

重要提示

苹果公司刚刚发布iOS 6.0和NDA已被解除。

预先包含引用的代码的开发人员

 [[UIDevice currentDevice] identifierForAdvertising] 

这个方法并没有包含在iOS 6上。如果你使用上面的方法,你的应用程序将(很有可能)崩溃并被拒绝!

相反,苹果已经创build了一个新的类ASIdentifierManager ,其中包括方法advertisingIdentifier 。 这是苹果的文档 :

用户可以限制在手机上使用广告跟踪。 在“设置”>“常规”>“关于”>“广告”下看到关于退出机制的文章 。

新的ASIdentifierManager类有一个属性ASIdentifierManager ,根据用户是否有限的广告跟踪返回true或false。 即使设备的广告标识符由advertisingIdentifier属性返回,而不考虑退出,但如果用户已select退出,则不应使用该标识符。

因此,identifierForVendor的优势在于,无论用户selectjoin还是退出广告跟踪,您都将始终有权访问和使用此ID。

我怀疑,如果您使用的是与广告相关的identifierForAdvertising (例如,如果您将identifierForAdvertising为广告的广告发送到您自己的服务器,即使您不是广告networking,或者如果您发送identifierForAdvertising为广告同样的请求与可能可能识别个人的其他数据)。

如果我怀疑是正确的,那么identifierForVendor优于identifierForAdvertising的优点是它不会让你的应用程序被拒绝。

他们是两个不同的目的是为了两个不同的目的。 我会认为identifierForVendor将用于做需要应用程序链接到特定用户/设备的东西,例如提供推送通知和更新用户的应用程序数据服务器端(比如他们的分数或任何其他数据被存储他们)。
identifierForAdvertising应该用于诸如有针对性的广告之类的事情,并且还检查特定广告活动的有效性(检查由于特定广告而知道哪些设备安装了应用程序)。

使用VendorID 。 这是一个非常有启发性的文章http://www.doubleencore.com/2013/04/unique-identifiers/

要在iOS 6中根据设备的唯一标识符创builduniqueString:

 #import <AdSupport/ASIdentifierManager.h> NSString *uniqueString = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; NSLog(@"uniqueString: %@", uniqueString); 

这些API的devise非常糟糕,很明显,苹果不希望我们识别用户设备。

只要看看identifierForVendor的描述。

如果用户从同一供应商清除所有应用程序,则会被删除。 :(这是不可靠的 – 可以返回零(文档build议“等待”一段时间,如果发生这种情况:(

他们没有使用明显的解决scheme,该解决scheme随时可用,不依赖于安装/删除 – 返回与Team ID级联的内部硬件设备ID的SHA-1(或任何其他散列)。

identifierForAdvertising在跟踪方面可能是优越的,但是可能受到用户当前或未来的select退出。 另一方面, identifierForVendor不太可能是用户的主题。

重要的是要知道的是,identifierForVendor的备份只能恢复到同一个设备。 如果备份恢复到差异设备,标识符将被清除。

如果设备上没有更多的应用程序,用户可以在设置中重新设置identifierForAdvertising,重新安装应用程序后,更改identifierForVendor。

这里是替代和获得或持久的最佳解决scheme,交叉安装设备标识符:

说明: https : //blog.onliquid.com/persistent-device-unique-identifier-ios-keychain/

代码: https : //gist.github.com/miguelcma/e8f291e54b025815ca46