为什么我的唯一设备ID会改变?

4
我使用以下方法已经一个月了,一直没有问题。即使卸载了应用程序,设备ID也保持不变。最近我注意到我的设备ID已经改变了。最近我在Xcode6上频繁构建应用程序。这可能是原因吗?我希望我知道它何时改变。它让我感到惊讶。当应用程序上架应用商店时,我需要担心什么吗?也许这只是Xcode构建的问题?我只是想找一个简单的方法来保证唯一的设备ID。我会使用广告标识符,但我听说如果将其用于非广告目的,将被应用商店拒绝。以下是代码:
+ (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
顺便提一下,更好的选择是使用 -[UIDevice identifierForVendor]。请参阅文档 - ravron
1
你可能已经重新启动了你的设备。 - holex
据我所知,如果用户卸载了我的所有应用程序,identifierForVendor将会更改。我不希望在他们卸载我的应用程序时ID发生任何变化。 - user4233467
@user4233467 是的,我相信那是真的。我不确定你想要的东西是否存在(我也不确定它不存在,我只是不知道)。 - ravron
1个回答

6

我的方法不就是在做这个吗?:S - user4233467

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接