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