1、苹果官方推出的替代方案
在介绍苹果推出的替代方案前,我们可以先看一下在苹果禁用UDID之前获取UDID的实现代码。

图-3 UDID获取代码示意图
苹果禁用UDID后,建议采用图-4中的代码实现方式为应用,生成唯一标识字符串,经过测试之后发现,此方法如果连续调用两次的话,获取标识的字符串是不一样的,这就意味着它会为每个应用都会生成一个不同的标识字符串,并且同一个应用在第一次安装与删除后重新安装时生成的标识字符串是不一样的,这其实根本达不到原来UDID的同等效果。

图-4 替代代码实现方式示意图
2、开源方案OpenUDID
开源方案OpenUDID是利用系统粘贴板作为中间存储供APP调用。但此方案经测试后同样发现一个问题,虽然OpenUDID提供的标识符和原来UDID的位数一样,并且多个应用使用的是第一个应用生成的标识码,这样看来好像已经达到了预期的效果,但是你把使用OpenUDID方案的应用全部删除掉后,重新安装时,这时与原来生成的唯一标识码又不一样了,无法持准确持续的绑定终端。
3、开源SecureUDID
此方案与OpenUDID方案差不多,只是获取标识码的方式不同,但同样存在上面的问题。
4、MAC地址
目前此方案是大多数公司采用的替代方案,包括一些数据的SDK也改为采集MAC。但问题依旧,首先,iOS设备中无线网卡、蓝牙等模块都有自己的MAC地址,在不同的设置状态下,捕捉到MAC地址可能不稳定甚至获取不到。其次,根据苹果的官方声明,iOS7及后续版本将关闭MAC地址的获取,只能得到0x2FFFFFFFF的假地址,所以,随着iOS7 正式版本即将发布,基本上是断了统计和追踪用户行为的后路。
目前还无法找到一个与UDID一样来追踪设备的解决方案,这对移动互联网广告行业是个比较棘手的问题,因此靠移动广告获得收益的游戏和APPs会受到很大冲击,并且在广告投放策略上不像以前那么直接准确,这会造成精准投放效率下降,资源利用率低等负面影响,使用替代方案也可以实现精准广告投放,但并没有之前那么有效,这意味着开发者和移动广告商都要寻找到合适的替代技术方案和更有适应性的商业模式。