2014-12-03 28 views
1

我一直在使用下面的方法一個月左右沒有問題。即使在卸載應用程序之後,設備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; 
} 
+1

作爲一個旁註:一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

+0

可能您已重新啓動您的設備。 – holex 2014-12-03 16:41:21

+0

@Riley據我所知,如果他們卸載我的所有應用程序,identifierForVendor將會改變。我不希望該ID在卸載我的應用程序時發生變化。 – user4233467 2014-12-03 19:43:56

回答

3

的唯一的設備ID不堅持這已經被問了很多次之前,你應該找到這裏一些好的信息。快速的谷歌搜索引起以下。

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

Persistent UDID equivalent for iOS 7?

UIDevice uniqueIdentifier Deprecated - What To Do Now?

iOS unique user identifier

一般的建議是使用CFUUID創建自己的UUID,然後堅持它在keychain

+0

這不是我的方法在做什麼? :S – user4233467 2014-12-03 19:42:45