为什么我的唯一设备ID改变了?
为什么我的唯一设备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; }
问题的出现原因是设备的唯一标识符(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中。
以上提到的方法可以帮助您解决设备唯一标识符变化的问题。