[英]iOS6 UDID - What advantages does identifierForVendor have over identifierForAdvertising?
苹果正在更改其iOS6的隐私设置,并弃用设备UUID(UDID)。 根据WWDC的演示文稿和文档,在UIDevice
类中有两个UDID的替代品:
-identifierForVendor
-identifierForAdvertising
在我看来, -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.