我正在尝试修补苹果发现的this安全漏洞。它们提供的示例代码(VerificationController)只使用下面这一行:
[UIDevice currentDevice].uniqueIdentifier它已经被弃用,并从应用程序商店拒绝了应用程序。你知道这是不是又没问题了?或者这里发生了什么?
发布于 2013-04-29 08:49:11
Apple已经更新了示例代码,删除了使用UDID的行。
发布于 2012-07-25 00:07:20
UDID与UUID
据我所知,苹果不希望开发者再访问UDID (唯一设备标识符),因为它不在应用程序的sandbox中。
想象一下这样一种情况:用户获得一个新的iOS设备(具有不同的UDID)。仅仅因为有了新设备并不一定意味着有了新用户。此外,如果某人获得了之前被其他人使用的设备,我们不想假设因为我们拥有相同的设备,所以相同的用户一定在使用它。
苹果建议你的应用程序使用UUID (通用唯一标识符)。苹果之前允许你使用UDID的唯一原因是因为他们还没有实现UUID,或者没有考虑到上面的情况(据我所知)。为您要跟踪的对象(例如用户)生成UUID。
基本上,苹果的心态是,你应该跟踪用户(或其他实例),而不是设备。
生成UUID
要生成UUID,请尝试将以下内容作为类方法:
+ (NSString *)GetUUID
{
CFUUIDRef uuidReference = CFUUIDCreate(kCFAllocatorDefault);
NSString *theUUID = [(NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuidReference) autorelease];
CFRelease(uuidReference);
return theUUID;
}根据我的经验,我在init方法中调用了这个方法,并将结果NSString存储为刚创建的实例的属性。
发布于 2012-07-25 00:10:19
苹果对UDID的问题一直是他们认为它是私人信息,所以他们拒绝那些没有事先征得许可就将其发送到服务器的应用程序。如果您只是在本地使用它,我认为您不会有问题。
https://stackoverflow.com/questions/11634460
复制相似问题