我一直在使用下面的方法一個月左右沒有問題。即使在卸載應用程序之後,設備ID仍保持不變。最近我注意到我的設備ID已更改。我最近在Xcode6上做了大量的應用程序構建。這可能是一個原因嗎?我希望我知道它何時改變。它讓我吃了一驚。當應用程序進入應用程序商店時,我有什麼擔心嗎?也許這只是一個Xcode構建問題?我只是尋找一種簡單的方法來保證唯一的設備ID。我會使用advertisingIdentifer,但我聽說用於其他目的,廣告將被應用商店拒絕。下面是代碼:爲什麼我的唯一設備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;
}
作爲一個旁註:一BETT呃選擇使用將是' - [UIDevice identifierForVendor]'。請參閱[文檔](https://developer.apple.com/library/iOS/documentation/UIKit/Reference/UIDevice_Class/index.html#//apple_ref/occ/instp/UIDevice/identifierForVendor)。 – ravron 2014-12-03 16:28:36
可能您已重新啓動您的設備。 – holex 2014-12-03 16:41:21
@Riley據我所知,如果他們卸載我的所有應用程序,identifierForVendor將會改變。我不希望該ID在卸載我的應用程序時發生變化。 – user4233467 2014-12-03 19:43:56