繁体   English   中英

iOS6 UDID-identifierForVendor相对于identifierForAdvertising有什么优势?

[英]iOS6 UDID - What advantages does identifierForVendor have over identifierForAdvertising?

苹果正在更改其iOS6的隐私设置,并弃用设备UUID(UDID)。 根据WWDC的演示文稿和文档,在UIDevice类中有两个UDID的替代品:

-identifierForVendor

  • 同一开发人员的应用之间的ID相同。
  • 删除该团队ID的最后一个应用后删除。
  • 支持。

-identifierForAdvertising

  • 设备特有的。
  • 适用于所有应用程序; 用于广告-iAd已从iOS 6或更高版本的UDID转换而来。
  • 使用“删除所有内容和设置”重置。
  • 支持。

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

没有什么优势-identifierForVendor有超过-identifierForAdvertising

重要说明

苹果刚刚发布了iOS 6.0,并且取消了保密协议。

对于抢先包含引用代码的开发人员

[[UIDevice currentDevice] identifierForAdvertising]

这种方法还没有被列入在iOS 6.如果你使用上面的方法,您的应用(最有可能)崩溃和被拒绝!

相反,苹果创造了一个新的类ASIdentifierManager ,其中包括法advertisingIdentifier 这是上面的苹果文档

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

ASIdentifierManager类有一个属性advertisingTrackingEnabled ,它返回如果用户具有有限的广告追踪true或false根据。 即使设备选择退出, advertisingIdentifier属性返回设备的广告标识符,但如果用户选择退出,则不应使用该标识符。

因此,identifierForVendor的优势在于,无论用户选择加入还是退出广告跟踪,您始终可以访问并有权使用此ID在手机上使用。

我怀疑,如果您使用identifierForAdvertising进行与广告无关的任何事情,Apple只会拒绝您的应用程序(即,即使您不是广告网络,还是将identifierForAdvertising发送到您自己的服务器,或者如果您将identifierForAdvertising发送到与可能识别个人身份的其他数据进行相同的请求)。

如果我的猜想是正确的,则identifierForVendor优于identifierForAdvertising的优势在于,它不会使您的应用程序被拒绝。

它们是两个不同的id,分别用于两个不同的目的。 我认为IdentifierForVendor将是用于执行要求应用程序链接到特定用户/设备的事情的人,例如提供推送通知和更新用户的应用程序数据服务器端(例如他们的分数或其他任何存储的数据)他们)。
identifierForAdvertising应该用于诸如定向广告之类的事情,并且还应用于检查特定广告活动的有效性(检查以查看哪些设备由于特定广告而安装了应用程序)。

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

要基于iOS 6中设备的唯一标识符创建uniqueString:

#import <AdSupport/ASIdentifierManager.h>

NSString *uniqueString = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
NSLog(@"uniqueString: %@", uniqueString);

这些API的设计是如此糟糕,显然可以说-Apple不想让我们识别用户设备。

只需查看identifierForVendor描述即可。

如果用户删除同一供应商的所有应用程序,则将其删除。 :(不可靠-可能会返回nil(如果发生这种情况,文档建议会“等待”一段时间。

他们没有使用显而易见的解决方案,该解决方案可以随时使用,并且不依赖于安装/删除-返回与Team ID串联的内部硬件设备ID的SHA-1(或任何其他哈希值)。

identifierForAdvertising在跟踪方面可能更好,但可能会受到用户当前或将来的选择退出。 另一方面, identifierForVendor不太可能成为用户的主题。

要知道的重要一点是,只能将identifierForVendor的备份还原到同一设备上。 如果将备份还原到其他设备,则会清除标识符。

用户可以随时在“设置”中更改identifierForAdvertising,重新安装应用程序后,如果该供应商的设备上没有其他应用程序,则identifierForVendor也会更改。

这是获取或永久交叉安装设备标识符的替代方案和最佳解决方案:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM