【问题标题】:Alternative to iPhone device ID (UDID) [duplicate]iPhone设备ID(UDID)的替代品[重复]
【发布时间】:2012-03-26 18:13:29
【问题描述】:

可能重复:
UIDevice uniqueIdentifier Deprecated - What To Do Now?

即使 Apple 没有参加 Barcelone 的 MWC(世界移动通信大会),也可以肯定在后续 iOS SDK 中将不推荐使用获取 deviceID。

我不明白苹果为什么要限制这一点,但这不是主题。

我必须为我的应用程序准备替代方案,因为我的用户已被识别并以更好地使用我的应用程序而闻名(例如,不需要登录或创建帐户)。而且我确信在这种情况下我并不孤单。

所以有人知道获取 deviceID 的替代方法吗?是否有其他唯一标识符,例如 MAC 地址?您如何准备您的应用程序?

【问题讨论】:

  • 你想要 iphone 设备 ID 还是其他?
  • 我想要另一个唯一标识符,即 deviceId,或其他识别用户的方式。

标签: iphone objective-c ios validation uniqueidentifier


【解决方案1】:

更新

如何使用 CFUUID 生成 UUID。您可以在第一次启动时将其存储在 KEYCHAIN 中。 可以这样搞定……

NSString *uuid = nil;
CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault);
if (theUUID) {
  uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID));
  [uuid autorelease];
  CFRelease(theUUID);
}

并且通过弃用 uniqueIdentifier 方法,Apple 建议您不要识别每个设备,而是每个应用程序安装。可能是明天,他们可能会因为这样做而决定拒绝您的应用程序.. :/ 希望这会有所帮助。

【讨论】:

  • 谢谢,但如果用户删除并重新安装应用程序(我承认这种情况并不经常发生),情况就不一样了。另一件事,这个 UUID 是在机器上生成的,因此在我们服务器上的用户列表中可能不是唯一的。
  • @Martin 将值存储在钥匙串中怎么样...?卸载应用程序后不会消失..?并且通过弃用 uniqueIdentifier 方法,Apple 建议您不要识别每个设备,而是每个应用程序安装。可能是明天,他们可能会因为这样做而决定拒绝您的应用.. :/
  • @Martin 请检查更新。
  • 您可以将这种方式创建的 UUID 存储在 iCloud 中,如果您没有将其存储在设备上,则可以从那里提取。这会给你一个特定用户独有的 UUID,这可能是你想要的?
  • @Ankit : 我从来没有用过钥匙串,谢谢你的建议,听起来很酷!但是,我认为在重新安装后存储该 ID 对我来说并不重要。但是对我来说还有一个问题:确保本地唯一标识符在我们的服务器上发布后不会与另一个标识符冲突。
【解决方案2】:

试试这个

- (NSString *)getDeviceID
{
    NSString *uuid = [self gettingString:@"uniqueAppId"];
    if(uuid==nil || [uuid isEqualToString:@""])
    {
        CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault);
        if (theUUID)
        {
            uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID));
            [self savingString:@"uniqueAppId" data:uuid];
            [uuid autorelease];
            CFRelease(theUUID);
        }
    }
    return uuid;

// this is depreciated  
//  UIDevice *device = [UIDevice currentDevice];
//  return [device uniqueIdentifier];
}

【讨论】:

  • 谢谢,答案与以下相同。请参阅我的评论。
  • 那么你必须使用设备的mac地址
【解决方案3】:

请执行新逻辑以获取安全 UDID。它由第三方提供

Learn about free solution:

这真的很好用,而且很容易实现,而不用大惊小怪地替换已弃用的方法。

【讨论】:

  • 感谢您的链接。网络上有几个 UID api 正在增长。我还没有测试过其中之一。
  • 嗨,Andre,我已经更新了链接。
猜你喜欢
  • 2012-04-09
  • 1970-01-01
  • 2016-12-27
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-11
  • 1970-01-01
相关资源
最近更新 更多