Iphone 使用UDID创建唯一的用户标识

Iphone 使用UDID创建唯一的用户标识,iphone,objective-c,ios,udid,Iphone,Objective C,Ios,Udid,我正在开发一款iPhone应用程序,它可以与服务器通信以存储和交换数据。因为我想让它尽可能简单,我想避免注册用户帐户(或者也可以使用密码)。是否有可能(并且允许?)获取iPhone设备的UDID并对其进行MD5哈希,然后将其传输到服务器并用于身份验证?由于这个ID是唯一的,我可以简单地使用它登录并从服务器获取用户指定的数据,而不需要创建登录数据 是否允许访问UDID,对其进行MD5哈希并将其存储在数据库中 第二个问题是:如何获得UDID?;-) 我使用UDID检查设备是否已经有正在运行的订阅。

我正在开发一款iPhone应用程序,它可以与服务器通信以存储和交换数据。因为我想让它尽可能简单,我想避免注册用户帐户(或者也可以使用密码)。是否有可能(并且允许?)获取iPhone设备的UDID并对其进行MD5哈希,然后将其传输到服务器并用于身份验证?由于这个ID是唯一的,我可以简单地使用它登录并从服务器获取用户指定的数据,而不需要创建登录数据

是否允许访问UDID,对其进行MD5哈希并将其存储在数据库中


第二个问题是:如何获得UDID?;-)

我使用UDID检查设备是否已经有正在运行的订阅。 获取UDID很容易:

NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];
如果您阅读了App store规则,其中有一节将介绍如何让用户创建帐户以将订阅移动到其他设备。 在本节中,Apple明确指出,帐户创建必须是用户必须输入的用户名和密码。用户名不能是电子邮件地址,因为它是个人信息

如果你的应用程序过于依赖数据,建议创建一个可选的用户帐户


AppStore审查指南可以通过以下方式找到:

是的,这是允许的,但考虑到我在下面的文档中报告的内容

您可以按如下方式检索UDID:

NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];
请注意苹果官方文档中的以下内容:

设备的唯一标识符(有时缩写为UDID表示唯一设备标识符)是由各种硬件标识符(如设备序列号)组成的哈希值。它保证每个设备都是唯一的。UDID与设备名称无关。对于使用SIM卡的设备,UDID独立于SIM卡

为了用户安全和隐私,您不得将设备的唯一标识符与用户帐户公开关联

您可以将UDID与特定于应用程序的用户ID结合使用,以标识服务器上特定于应用程序的数据。例如,您可以使用设备用户组合ID来控制对已注册产品的访问,或者在中央服务器中存储游戏高分时。但是,如果您正在开发一款游戏,您可能希望使用game Center的玩家标识键,如《游戏工具包编程指南》中所述


重要提示:切勿仅基于UDID存储用户信息。始终使用UDID和特定于应用程序的用户ID的组合。组合ID可确保如果用户将设备传递给其他用户,新用户将无法访问原始用户的数据。

UDID
自iOS-6及更高版本以来一直处于隐藏状态,因此您可以通过以下方式唯一标识设备:

NSString *UDID = [[UIDevice currentDevice] identifierForVendor];

请在apple上添加指向上述订阅规则的链接。
[[UIDevice currentDevice]uniqueIdentifier]
在iOS 5.0中不受欢迎,请改用
CFUUIDCreate()
!我猜你指的是UDID,对吧?也许这就是你找不到类似问题和答案的原因,比如:)