首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VerificationController使用uniqueIdentifier

VerificationController使用uniqueIdentifier
EN

Stack Overflow用户
提问于 2012-07-24 23:41:09
回答 3查看 1K关注 0票数 1

我正在尝试修补苹果发现的this安全漏洞。它们提供的示例代码(VerificationController)只使用下面这一行:

代码语言:javascript
复制
[UIDevice currentDevice].uniqueIdentifier

它已经被弃用,并从应用程序商店拒绝了应用程序。你知道这是不是又没问题了?或者这里发生了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-29 08:49:11

Apple已经更新了示例代码,删除了使用UDID的行。

In-App Purchase Receipt Validation on iOS

票数 4
EN

Stack Overflow用户

发布于 2012-07-25 00:07:20

UDID与UUID

据我所知,苹果不希望开发者再访问UDID (唯一设备标识符),因为它不在应用程序的sandbox中。

想象一下这样一种情况:用户获得一个新的iOS设备(具有不同的UDID)。仅仅因为有了新设备并不一定意味着有了新用户。此外,如果某人获得了之前被其他人使用的设备,我们不想假设因为我们拥有相同的设备,所以相同的用户一定在使用它。

苹果建议你的应用程序使用UUID (通用唯一标识符)。苹果之前允许你使用UDID的唯一原因是因为他们还没有实现UUID,或者没有考虑到上面的情况(据我所知)。为您要跟踪的对象(例如用户)生成UUID。

基本上,苹果的心态是,你应该跟踪用户(或其他实例),而不是设备。

生成UUID

要生成UUID,请尝试将以下内容作为类方法:

代码语言:javascript
复制
+ (NSString *)GetUUID
{
  CFUUIDRef uuidReference = CFUUIDCreate(kCFAllocatorDefault);
  NSString *theUUID = [(NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuidReference) autorelease];
  CFRelease(uuidReference);
  return theUUID;
}

根据我的经验,我在init方法中调用了这个方法,并将结果NSString存储为刚创建的实例的属性。

票数 1
EN

Stack Overflow用户

发布于 2012-07-25 00:10:19

苹果对UDID的问题一直是他们认为它是私人信息,所以他们拒绝那些没有事先征得许可就将其发送到服务器的应用程序。如果您只是在本地使用它,我认为您不会有问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11634460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档