iOS 7中的UDID或UUID的副本是什么?

问题是我一旦生成UUID它为我工作。 但是,如果我/用户删除应用程序比UUID是不一样的,像我以前所产生的。 如果我们使用uuid作为标识符,这里没有唯一性。 请帮我解决这个问题。我怎样才能得到相同的uuid或任何string,如果应用程序重新安装。 提前致谢..

我正在使用这种方法:

 NSString *udid; if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")) udid = [UIDevice currentDevice].identifierForVendor.UUIDString; else udid = [UIDevice currentDevice].uniqueIdentifier; 

首先,检查这NSHiplster非常丰富的文章http://nshipster.com/uuid-udid-unique-identifier/

这应该是为你工作:

 NSString *UUIDString = nil; if ([[UIDevice currentDevice].systemVersion floatValue] >= 6.0) { UUIDString = [[NSUUID UUID] UUIDString]; } else { CFUUIDRef UUID = CFUUIDCreate(NULL); UUIDString = CFBridgingRelease(CFUUIDCreateString(NULL, UUID)); } 

我已经通过使用advertisingIdentifier解决了这个问题。 链接:

https://developer.apple.com/library/ios/documentation/AdSupport/Reference/ASIdentifierManager_Ref/ASIdentifierManager.html#jumpTo_3

正如我在那里看到的那样,广告标识符是

“每个设备唯一的字母数字string…”

为此,我用它作为唯一的标识符(虽然它用于服务广告)。

我的代码是:

 -(NSString*)UniqueAppId { NSString *Appname = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]; NSString *strApplicationUUID = [SSKeychain passwordForService:Appname account:@"manab"]; if (strApplicationUUID == nil) { strApplicationUUID = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; [SSKeychain setPassword:strApplicationUUID forService:Appname account:@"manab"]; } return strApplicationUUID; } 

并在需要时调用它

 [self UniqueAppId];