为什么我的唯一设备ID更改了?

use*_*467 2 xcode uniqueidentifier ios

我已经使用以下方法大约一个月了,没有问题。即使卸载应用程序,设备ID仍保持不变。最近,我注意到我的设备ID发生了变化。我最近在Xcode6上进行了很多该应用程序的构建。这可能是原因吗?我希望我确切知道它何时改变。这让我感到惊讶。当应用程序在应用程序商店上架时,我有什么需要担心的吗?也许这只是一个Xcode构建问题?我只是在寻找一种确保唯一设备ID的简单方法。我会使用advertiseIdentifer,但我听说将其用于其他目的,否则广告将被应用商店拒绝。这是代码:

+ (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;
}
Run Code Online (Sandbox Code Playgroud)

JSA*_*986 5

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

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

持久性UDID是否等效于iOS 7?

不推荐使用UIDevice uniqueIdentifier-现在要做什么?

iOS唯一用户标识符

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