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

49 浏览
0 Comments

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

我已经使用以下方法大约一个月了,没有任何问题。即使在卸载应用程序后,设备ID仍然保持不变。最近我注意到我的设备ID发生了变化。最近我在Xcode6上频繁构建应用程序,这可能是原因吗?我希望我能准确知道何时发生了变化。这让我很意外。当应用程序上架到应用商店时,我需要担心什么吗?也许这只是Xcode构建的问题?我只是想找一个简单的方法来保证唯一的设备ID。我可以使用advertisingIdentifer,但我听说在用于非广告目的时会被应用商店拒绝。以下是代码:

+ (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;
}

0
0 Comments

问题的出现原因是设备的唯一标识符(unique device id)没有持久化保存。为解决这个问题,可以使用CFUUID创建一个自己的UUID,并将其保存在keychain中。

以下是一些建议的解决方法和相关信息:

1. 可以通过以下链接在stackoverflow上找到相关信息:https://stackoverflow.com/search?q=iOS+UDID+replacement

2. 也可以参考这个链接,了解如何在iOS 7中获取一个持久的UDID替代方案:https://stackoverflow.com/questions/21095686

3. 此外,还可以查看这个链接了解如何处理UIDevice uniqueIdentifier过时的情况:https://stackoverflow.com/questions/6993325

4. 如果需要获取iOS上的唯一用户标识符,可以参考这个链接:https://stackoverflow.com/questions/7273014

5. 一般建议使用CFUUID来创建自己的UUID,并将其保存在keychain中。

以上提到的方法可以帮助您解决设备唯一标识符变化的问题。

0