为什么我的唯一设备ID会发生变化?

时间:2014-12-03 16:21:09

标签: ios xcode uniqueidentifier

我使用以下方法大约一个月没有问题。即使在卸载应用程序后,设备ID仍保持不变。最近我注意到我的设备ID已更改。我最近在Xcode6上做了很多应用程序的构建。这可能是一个原因吗?我希望我知道它什么时候改变了。它让我感到意外。当应用程序进入应用程序商店时,我有什么可担心的吗?也许这只是一个Xcode构建问题?我只是想找一种简单的方法来保证唯一的设备ID。我会使用advertisingIdentifer,但我听说将其用于其他目的,然后广告将被app store拒绝。这是代码:

+ (NSString *)getUserID
{
    NSString *Appname = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
    NSString *retrieveuuid = [SSKeychain passwordForService:Appname account:@"user"];

    if(retrieveuuid == NULL)
    {
        CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault);
        retrieveuuid = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
        CFRelease(newUniqueId);
        [SSKeychain setPassword:retrieveuuid forService:Appname account:@"user"];
    }

    NSLog(@"%@", retrieveuuid);
    return retrieveuuid;
}

1 个答案:

答案 0 :(得分:4)

唯一的设备ID不会持续存在这已经被多次询问了,你应该在这里找到一些好的信息。快速Google搜索会显示以下内容。

https://stackoverflow.com/search?q=iOS+UDID+replacement

Persistent UDID equivalent for iOS 7?

UIDevice uniqueIdentifier Deprecated - What To Do Now?

iOS unique user identifier

一般建议是使用CFUUID创建自己的UUID,然后将其保留在keychain