唯一标识符

1.苹果广告审核规则

如果你的应用采用了IDFA,但是上架事申明未采用IDFA将会被拒绝

如果你的应用采用了IDFA,但是没有使用广告服务将会被拒绝,这个时候如果集成广告将不会受影响

2.苹果广告避免方法

IDFA能够精准的识别用户,尤其对于广告主追踪转化率提供了很大帮助,友盟统计分析SDK采集IDFA是为了确保在苹果变更唯一标识符时(例如从UDID变更为OpenUDID),对于用户数据进行稳定过度,而不至于发生数据冲增的情况.

如果您的应用由于IDFA被拒绝,可采用以下建议

1.以广告主的身份尝试申诉,广告采集IDFA便是是允许的

2.集成任意一家广告服务,上线后选择继续使用或关闭该服务

3.更换苹果账号重新提交应用(已有开发者顺利通过审核)

4.不采集IDFA意味着放弃准确追踪用户的机会,在保证数据的稳定性与一致性方面存在风险,如果您希望不采集IDFA,可以下载无IDFA得SDK.

3.苹果历史版本唯一序列号

CFUDID

iOS2.0 开始就存在,它是CoreFoundatio包的一部分,因此API属于C语言风格

获得的这个CFUUID值系统并没有存储。每次调用CFUUIDCreate,系统都会返回一个新的唯一标识符

NSUDID

ios6

iOS 6中才出现,这跟CFUUID几乎完全一样,只不过它是Objective-C接口

跟CFUUID一样,这个值系统也不会存储,每次调用的时候都会获得一个新的唯一标示符

每次运行的时候都不一样,但是生成的是唯一的

IDFA(IDFA-identifierForIdentifier)

iOS 6中才出现的新的方法,advertisingIdentifier是新框架AdSupport.framework的一部分广告标示符是由系统存储着 的。不过即使这是由系统存储的,但是有几种情况下,会重新生成广告标示符。如果用户完全重置系统((设置程序 -> 通用 -> 还原 -> 还原位置与隐私) ,这个广告标示符会重新生成。另外如果用户明确的还原广告(设置程序-> 通用 -> 关于本机 -> 广告 -> 还原广告标示符) ,那么广告标示符也会重新生成。关于广告标示符的还原,有一点需要注意:如果程序在后台运行,此时用户“还原广告标示符”,然后再回到程序中,此时获取广 告标示符并不会立即获得还原后的标示符。必须要终止程序,然后再重新启动程序,才能获得还原后的广告标示符。

#import

NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];

Vindor((IDFV-identifierForVendor)

iOS 6中才出现的新的方法,不过获取这个IDFV的新方法被添加在已有的UIDevice类中。

跟advertisingIdentifier一样,该方法返回的是一个NSUUID对象。

NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

he value of this property is the same for apps that come from the same vendor running on the same device. A different value is returned for apps on the same device that come from different vendors, and for apps on different devices regardless of vendor.

如果满足这样的条件,那么获取到的这个属性值就不会变:相同的vindor-相同的设备,idfv相同。如果是这样的情况,那么这个值是不会相同的:相同的设备-不同的vindor,或者是不同的设备-无论是否相同的vindor。

vendor非常简单:一个Vendor是CFBundleIdentifier(反转DNS格式)的前两部分。例 如,com.doubleencore.app1 和 com.doubleencore.app2 得到的identifierForVendor是相同的,因为它们的CFBundleIdentifier 前两部分是相同的。不过这样获得的identifierForVendor则完全不同:com.massivelyoverrated 或 net.doubleencore。 在这里,还需要注意的一点就是:如果用户卸载了同一个vendor对应的所有程序,然后在重新安装同一个vendor提供的程序,此时 identifierForVendor会被重置。

Vendor是CFBundleIdentifier(反转DNS格式)的前两部分。来自同一个运营商的应用运行在同一个设备上,此属性的值是相同的;不同的运营商应用运行在同一个设备上值不同。

UDID

ios5已经废弃,系统的唯一序列号,app账号添加就是用的这个

OpenUDID

在每个设备的openUDID是通过第一个带有openUDID sdk包的app生成,当然如果重新刷机这个还是会丢失

在iOS 5发布时,uniqueIdentifier被弃用了,这引起了广大开发者需要寻找一个可以替代UDID,并且不受苹果控制的方案。由此OpenUDID 成为了当时使用最广泛的开源UDID替代方案。OpenUDID在工程中实现起来非常简单,并且还支持一系列的广告提供商。

NSString *openUDID = [OpenUDID value];

OpenUDID利用了一个非常巧妙的方法在不同程序间存储标示符 — 在粘贴板中用了一个特殊的名称来存储标示符。通过这种方法,别的程序(同样使用了OpenUDID)知道去什么地方获取已经生成的标示符(而不用再生成一个新的)。

之前已经提到过,在将来,苹果将开始强制使用advertisingIdentifier 或identifierForVendor。如果这一天到来的话,即使OpenUDID看起来是非常不错的选择,但是你可能不得不过渡到苹果推出的方法

MAC地址

MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。这样就可以非常好的标识设备唯一性,类似与苹果设备的UDID号,从iOS7及更高版本往后,如果你向ios设备请求获取mac地址,系统将返回一个固定值“02:00:00:00:00:00”

你可能感兴趣的:(唯一标识符)