Apple正在更改其iOS6的隐私设置并弃用设备UUID(UDID)。根据WWDC演示文稿和文档,在UIDevice
类中有两个UDID替换:
-identifierForVendor
-identifierForAdvertising
在我看来,-identifierForVendor
不如-identifierForAdvertising
,因为它会在上次从供应商卸载应用时重置,并“擦除所有内容和设置”。
-identifierForVendor
对-identifierForAdvertising
有什么好处?
答案 0 :(得分:34)
重要提示:
Apple刚刚发布了iOS 6.0,NDA已经解除。
对于先发制人地包含引用
的代码的开发人员[[UIDevice currentDevice] identifierForAdvertising]
此方法已在iOS 6中包含 NOT 。如果您使用上述方法,您的应用(很可能)会崩溃并被拒绝!
相反,Apple创建了一个新类ASIdentifierManager
,其中包含方法advertisingIdentifier
。这是apple docs:
答案 1 :(得分:22)
用户可以限制在手机上使用广告跟踪。请参阅设置>下的this article on the opt-out mechanism。一般>关于>广告。
新的ASIdentifierManager
类有一个属性advertisingTrackingEnabled
,根据用户是否有有限的广告跟踪,该属性会返回true或false。即使设备的广告标识符由advertisingIdentifier
属性返回,无论选择退出,如果用户选择退出,您都不应该使用该标识符。
因此,IdentifForVendor的优势在于,无论用户选择加入或选择退出广告跟踪,您都可以随时访问并使用此ID用于手机。
答案 2 :(得分:8)
我怀疑如果您使用identifierForAdvertising
用于与广告无关的任何内容(即,如果您将identifierForAdvertising
发送到您自己的服务器,那么Apple会拒绝您的应用,即使您不是广告网络,或者如果您将同一请求中的identifierForAdvertising
与可能识别个人的其他数据一起发送。
如果我的怀疑是正确的,identifierForVendor
优于identifierForAdvertising
的优势在于它不会让您的应用被拒绝。
答案 3 :(得分:5)
它们是两种不同的ID,用于两种不同的目的。
我认为identifierForVendor将用于执行需要链接到特定用户/设备的应用程序,例如提供推送通知和更新用户的应用程序数据服务器(如他们的分数或其他任何数据存储的内容)它们)。
identifierForAdvertising应用于定向广告等内容,还可用于检查特定广告系列的效果(检查特定广告导致的应用安装了哪些设备)。
答案 4 :(得分:3)
使用 VendorID 。 这是一篇非常有启发性的文章http://www.doubleencore.com/2013/04/unique-identifiers/
答案 5 :(得分:1)
根据iOS 6中设备的唯一标识符创建uniqueString:
#import <AdSupport/ASIdentifierManager.h>
NSString *uniqueString = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
NSLog(@"uniqueString: %@", uniqueString);
答案 6 :(得分:0)
这些API的设计非常糟糕,明确表示 - Apple不希望我们识别用户设备。
只需查看identifierForVendor说明。
如果用户删除了来自同一供应商的所有应用,则会被删除。 :( 这是不可靠的 - 如果发生这种情况,可以返回nil(文档建议“等待”一段时间。:(
他们没有使用明显的解决方案,它可以随时工作,不依赖于安装/删除 - 返回与团队ID连接的内部硬件设备ID的SHA-1(或任何其他哈希)。
答案 7 :(得分:0)
identifierForAdvertising
在跟踪方面可能更优越,但可能会受到用户现在或将来的选择退出。另一方面,identifierForVendor
不太可能是用户的主题。
答案 8 :(得分:0)
重要的是要知道,identifierForVendor的备份只能恢复到同一设备。如果备份恢复到差异设备,则清除标识符。
答案 9 :(得分:0)
用户可以随时在“设置”中更改identifierForAdvertising, 如果此供应商的设备上没有其他应用,则在重新安装应用后,identifierForVendor会发生更改。
以下是获取或持久,交叉安装设备标识符的替代方案和最佳解决方案:
说明:https://blog.onliquid.com/persistent-device-unique-identifier-ios-keychain/