5

I want to create UUID, I have code below which can create UUID, how can I create UDID with multiple vendors same ID in iOS7?

+ (NSString*) stringWithNewUUID
{
    CFUUIDRef uuidObj = CFUUIDCreate(nil);
    NSString *newUUID = (NSString*)CFUUIDCreateString(nil, uuidObj);
    CFRelease(uuidObj);
    return newUUID;
}
4

5 回答 5

6

CFUUIDCreate函数产生一个完全取自伪随机数生成器的版本 4 UUID。这种类型的 UUID 中没有嵌入时间戳或 MAC 地址。(这指的是很少使用的版本 1 风味。)这些对于几乎所有应用程序都是安全的。

于 2013-10-09T06:59:22.120 回答
5

我创建了一个供应商 ID,然后用钥匙串保存它,我将保留它以备下次使用KeychainWrapper keychainStringFromMatchingIdentifier:...

于 2013-10-11T05:35:39.657 回答
5

此方法在 iOS 6 及更高版本中返回随机 UUID

[[UIDevice currentDevice]identifierForVendor]
于 2013-10-09T09:53:35.477 回答
2

上面代码生成的 UUID 中没有可恢复的时间戳。它只是一个看起来像这样的字符串:E1D87006-7CD0-4E28-9768-624DA92F75D6

于 2013-10-09T06:50:47.540 回答
0

我按照 Sandeep Khade 的回答并使用PDKeychainBindings制作了以下代码。它与使用 NSUserDefaults 相同,但它在钥匙串中保留标识符,即使在删除应用程序时也可以保存数据。

+ (NSString *)uniqueVendor {

    PDKeychainBindings *keychain = [PDKeychainBindings sharedKeychainBindings];
    NSString *uniqueIdentifier = [keychain objectForKey:kKeyVendor];

    if (!uniqueIdentifier || !uniqueIdentifier.length) {

        NSUUID *udid = [[UIDevice currentDevice] identifierForVendor];
        uniqueIdentifier = [udid UUIDString];
        [keychain setObject:uniqueIdentifier forKey:kKeyVendor];
    }

    return uniqueIdentifier;
}
于 2014-02-26T13:23:07.923 回答