2012-07-02 26 views
6

感谢您花时间和兴趣阅读本文,并希望帮助我。跨设备IOS独特的用户标识符

我需要IOS的唯一用户标识,以及我的意思与唯一用户标识符是一个唯一的字符串,苹果提供的是用户而不是设备唯一的,这意味着它会保持不变跨设备。我想过Apple ID或类似的东西,但这是不可能的,因为Apple不提供它(至少不是我所知道的),但我想要类似的东西。

它不可能是UDID,因为(除了被弃用)it's跨设备不是永久性的。我希望这样做是为了验证用户,而不需要用户登录或注册。这是可能的,因为一些应用程序这样做。我没有登录或与其他设备有任何关系,但它证实了我的身份。我原以为是用Apple ID,但那是不可能的。

我检查这个答案:iOS unique user identifier。它似乎可能是解决方案,但我不太明白,因为我没有看到它对于每个新用户都是独一无二的(能够区分多个用户和同一个用户,而是在不同的设备)。

我真的很感谢大家阅读本文并试图提供帮助。 谢谢

PD:我用Titanium's Appcelerator的,不Apple's IOS SDK或类似的东西。但it's并不重要,我只是想获得进程能够与钛的Appcelerator的做

PS:注意:

谢谢你回答这么快!我已经读过很多次了,但我不明白。你们能帮我理解一点吗?

我理解它的方式是这样的。

1.创建一个UUID(随每次安装而变化) 2.将它存储到钥匙串(据我所知,保存在钥匙串上的值是设备本地的)使用默认服务(I认为我把它与应用程序的id-com.bla.bla-),也是一个默认帐户,我认为我把它留作“用户”。

这将全部都是本地的,所以每一次安装都会这样做,每次安装都有一个不同的UUID(每个用户都不需要) 3.将UUID保存到NSUserDefaults。 4.将UUID保存到云的公共数据存储区(云数据存储区中的UUID,Keychain和NSUserDefaults应该相同)

因此,如果运行5个安装,则Cloud's Public数据存储应该是这样的

An Array of 5 values: 
[ 
XXXX-EEEEE-FFFFF, 
SFSDFFWE-WERW-SDFS, 
XXXX-XXXXX-XXXXX, 
ZZZZZ-ZZZZ-ZZZZX, 
XZXZZX-ZXZXZXS-ADADS 
] 

5 - 所有这一切都将在每次运行应用程序时执行,首先检查是否有存储在公共云存储值。在这里我很困惑,不同的设备如何知道你的UUID?我的意思是,有5种不同的UUIDS可供选择。也许它不应该保存在公共数据存储区中,而是保存在私有数据存储区中,但为此您还需要识别每个用户。这是我非常困惑的地方。

如果没有UUID集,执行最后的4个步骤。

所以,我感到困惑,在第5步,大多数人都明白,解决方案,没有任何更多的解释,所以我必须在什么工作,也许是云服务的方式是无知?我认为问题在于,也许我不了解iCloud的工作方式,以及它如何存储它的价值。我只是不明白X运行应用程序的第5个(随机数,它可能是第2个或第2000个)设备将知道UUID XXX ...是用户X的UUID,而不是用户的UUID Z.

再次谢谢你回答得这么快,我想也许我将不得不等待几天,不是一两分钟。原谅我的无知,在这件事上我是一个小白菜,但我想学习。被困在这个问题上几天

回答

2

你提到的答案是识别你的用户的正确方法。解决方法是保存称为UUID(唯一用户ID)的标识的值 - 而不是UDID(唯一设备ID)。

唯一的缺点,以本课程为你作为一个开发人员,用户可以删除并重新安装应用程序,并有不同的ID。

+0

请看我的笔记^。顺便说一句,谢谢你的回答! :) – Sismetic

2

正如丹尼尔所说,UUID是识别用户的正确方法。我只想补充一点,你说

我不明白怎么会是独一无二的每一个新用户

好,accordint这个维基百科文章:

随机生成的UUID有122随机位.. 。仅在接下来的100年内每秒产生10亿个UUID后,创建一个副本的可能性大约为50%。如果地球上的每个人拥有6亿个UUID,则一个重复的概率约为50%。

因此,您可以确信UUID对每个用户都是唯一的。

此外,MAC地址基于您的以太网卡,时间戳,以及一些其他杂项信息的MAC地址的。这增加了UUID的唯一性,根据this关于超级用户的问题:

[MAC地址]是相当独特的。

  • 第一3个字节定义的制造商。
  • 最后3个八位字节通常在PROM刻录时生成。这取决于制造商如何做到这一点。

这显然给了每个厂商16,777,215可能唯一的MAC地址。这是相当多的,所以制造商不应该重复使用一个。

所以基本上,UUID为MAC地址添加了一个额外的唯一性。

总而言之,为了您的意图和目的,UUID将是完美的。

希望这会有所帮助!

+0

请看我的笔记^。顺便说一句,谢谢你的回答! :) – Sismetic

+0

@Sismetic - 没问题。我们都是这样开始的。 – pasawaya

+0

谢谢你的理解:)我爱SO:P。你能帮我理解这个过程吗? – Sismetic