繁体   English   中英

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

[英]what is the replica for UDID or UUID in iOS 7

问题是,一旦我生成UUID它为我工作。 但是如果我/用户删除应用程序而不是UUID与之前生成的相同。 如果我们使用uuid作为标识符,那么这里没有唯一性。 请帮我解决这个问题。如果重新安装应用程序,我如何获得相同的uuid或任何字符串。 提前致谢..

我正在使用这种方法:

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

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

“每个设备唯一的字母数字字符串,......”

为此,我使用它作为唯一标识符(尽管它用于服务广告)。

我的代码是:

-(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];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM