iOS唯一用户标识符

iOS唯一用户标识符

我正在写一个iphone应用程序,它使用REST与我的服务器通信。主要问题是,我需要以某种方式识别用户。不久前,我们被允许使用UDID,但现在不再允许了。那我应该用什么呢?我需要在iphone上使用某种标识符,因此用户将删除应用程序,再次安装它,并且他将获得相同的ID。



慕仙森
浏览 627回答 3
3回答

慕田峪9158850

首先,UDID 仅在iOS 5中被弃用。这并不意味着它已经消失了。其次,你应该问自己是否真的需要这样的东西。如果用户获得新设备并在其上安装您的应用程序该怎么办?相同的用户,但UDID已更改。同时,原始用户可能已经售出了他的旧设备,所以现在一个全新的用户安装你的应用程序,你认为它是基于UDID的不同的人。如果您不需要UDID,请使用CFUUIDCreate()创建唯一ID并在首次启动时CFUUIDCreateString()将其保护为用户默认值(用于首先将UUID转换为字符串)。它将在备份和恢复后继续存在,甚至在原始用户切换到新设备时也会出现。它在很多方面都是UDID的更好选择。如果你真的需要一个唯一的设备标识符(听起来不像你那样),请按照Suhail的回答中的指示寻找MAC地址。

牧羊人nacy

我正在更新我的应用程序,该应用程序仅基于支持iOS 4.3及更高版本的 Unique Identifier工作。所以,1)我无法使用,[UIDevice currentDevice].uniqueIdentifier;因为它已不再可用2)我无法使用,[UIDevice currentDevice].identifierForVendor.UUIDString因为它仅在iOS 6.0及更高版本中可用,并且无法用于较低的iOS版本。3)mac地址不是一个选项,因为它在iOS-7中是不允许的4)OpenUDID不久前已被弃用,并且还存在iOS-6问题。5)iOS-5及以下版本也没有广告标识符最后这就是我所做的a)将SFHFKeychainUtils添加到项目中b)生成的CFUUID密钥字符串 CFUUIDRef cfuuid = CFUUIDCreate(kCFAllocatorDefault);     udidString = (NSString*)CFBridgingRelease(CFUUIDCreateString(kCFAllocatorDefault, cfuuid));c)将其保存到Key Chain Utils ,否则它将生成一个新的Unique Every Time最终守则+ (NSString *)GetDeviceID {     NSString *udidString;    udidString = [self objectForKey:@"deviceID"];     if(!udidString)     {     CFUUIDRef cfuuid = CFUUIDCreate(kCFAllocatorDefault);     udidString = (NSString*)CFBridgingRelease(CFUUIDCreateString(kCFAllocatorDefault, cfuuid));     CFRelease(cfuuid);         [self setObject:udidString forKey:@"deviceID"];     }     return udidString;}+(void) setObject:(NSString*) object forKey:(NSString*) key{     NSString *objectString = object;     NSError *error = nil;     [SFHFKeychainUtils storeUsername:key                          andPassword:objectString                       forServiceName:@"LIB"                       updateExisting:YES                                error:&error];     if(error)         NSLog(@"%@", [error localizedDescription]);}+(NSString*) objectForKey:(NSString*) key{     NSError *error = nil;     NSString *object = [SFHFKeychainUtils getPasswordForUsername:key                                                   andServiceName:@"LIB"                                                            error:&error];     if(error)         NSLog(@"%@", [error localizedDescription]);     return object;}详情请联系我们
打开App,查看更多内容
随时随地看视频慕课网APP