您的位置:首页 > 大数据 > 人工智能

KeyChain保存和获取应用的UDID

2015-12-07 01:27 441 查看

KeyChain保存和获取应用的UDID

TODO

手机网络游戏,希望玩家不用输入账号就能自动登录到游戏中,这样就需要生成设备的唯一UDID作为账号,需求在删除游戏重新安装、升级游戏等情况下UDID账号不会更改。

思路

1.生成一个UDID

2.iOS手机上把UDID保存到keychain(钥匙链)中

在iOS系统中,获取设备唯一标识的方法有很多:

一.UDID(Unique Device Identifier)

二.UUID(Universally Unique Identifier)

三.MAC Address

四.OPEN UDID

五.广告标示符(IDFA-identifierForIdentifier)

六.Vendor标示符 (IDFV-identifierForVendor)

一.UDID

Unique Device Identifier 最早就被苹果封杀了,使用会被拒绝

三.Mac Address

原来可用,后来也被苹果封了,怕用作盗刷信用卡之用途

四.OPEN UDID

第三方最出名的莫过于此了,但是iOS7这货也无法使用了,由于iOS7对剪贴板(OpenUDID保存到剪贴版中)的限制,导致同一个设备上应用间,无法再共享一个OpenUDID。

OpenUDID原理:安装第一个OpenUDID开发的游戏App1,生成OpenUDID,安装第二款OpenUDID的App2,会从剪贴板中获取出之前生成的UDID,App1、App2都是使用的同一个UDID,但是如果删除所有OpenUDID的游戏后,重新安装App1,这时生成的UDID就已经重置了,和之前的已然不同,玩家的账号信息已丢失,要被投诉了……

可以看官网,作者早已经停止更新了

[OpenUDID IS NOW DEPRECATED] Open source initiative for a universal and persistent UDID solution for iOS

五. IDFA IDFV

苹果推荐的就是使用IDFA、IDFV了,官方推荐那必然妥妥的了

idfa: 适用于对外:例如广告推广,换量等跨应用的用户追踪等

idfv: 适用于对内:例如分析用户在应用内的行为等

idfa:主要用于广告,可能会获取不到,iOS用户也可以 设置|隐私|广告追踪 里重置此id的值,虽然玩家一般不会重置,但是上述理由已经不足以把idfa作为账号了

idfv:

顾名思义,是给Vendor标识用户用的,每个设备在所属同一个Vender的应用里,都有相同的值。其中的Vender是指应用提供商,但准确点说,是通过BundleID的DNS反转的前两部分进行匹配,如果相同就是同一个Vender,例如对于com.somecompany.appone,com.somecompany.apptwo 这两个BundleID来说,就属于同一个Vender,共享同一个idfv的值。和idfa不同的是,idfv的值是一定能取到的,所以非常适合于作为内部用户行为分析的主id,来标识用户,替代OpenUDID。



最终方案:

idfv + keychain

参考文章:

在 iOS 7 中获取唯一标识符(UDID/UUID)

http://zengrong.net/post/2152.htm

iOS7时代我们用什么来追踪和识别用户?

http://www.cnblogs.com/BigPolarBear/p/3359526.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: