3 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
首先,UDID 僅在iOS 5中被棄用。這并不意味著它已經(jīng)消失了。
其次,你應(yīng)該問自己是否真的需要這樣的東西。如果用戶獲得新設(shè)備并在其上安裝您的應(yīng)用程序該怎么辦?相同的用戶,但UDID已更改。同時(shí),原始用戶可能已經(jīng)售出了他的舊設(shè)備,所以現(xiàn)在一個(gè)全新的用戶安裝你的應(yīng)用程序,你認(rèn)為它是基于UDID的不同的人。
如果您不需要UDID,請(qǐng)使用CFUUIDCreate()
創(chuàng)建唯一ID并在首次啟動(dòng)時(shí)CFUUIDCreateString()
將其保護(hù)為用戶默認(rèn)值(用于首先將UUID轉(zhuǎn)換為字符串)。它將在備份和恢復(fù)后繼續(xù)存在,甚至在原始用戶切換到新設(shè)備時(shí)也會(huì)出現(xiàn)。它在很多方面都是UDID的更好選擇。
如果你真的需要一個(gè)唯一的設(shè)備標(biāo)識(shí)符(聽起來不像你那樣),請(qǐng)按照Suhail的回答中的指示尋找MAC地址。

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
我正在更新我的應(yīng)用程序,該應(yīng)用程序僅基于支持iOS 4.3及更高版本的 Unique Identifier工作。所以,
1)我無法使用,[UIDevice currentDevice].uniqueIdentifier;
因?yàn)樗巡辉倏捎?/p>
2)我無法使用,[UIDevice currentDevice].identifierForVendor.UUIDString
因?yàn)樗鼉H在iOS 6.0及更高版本中可用,并且無法用于較低的iOS版本。
3)mac地址不是一個(gè)選項(xiàng),因?yàn)樗趇OS-7中是不允許的
4)OpenUDID不久前已被棄用,并且還存在iOS-6問題。
5)iOS-5及以下版本也沒有廣告標(biāo)識(shí)符
最后這就是我所做的
a)將SFHFKeychainUtils添加到項(xiàng)目中
b)生成的CFUUID密鑰字符串
CFUUIDRef cfuuid = CFUUIDCreate(kCFAllocatorDefault); udidString = (NSString*)CFBridgingRelease(CFUUIDCreateString(kCFAllocatorDefault, cfuuid));
c)將其保存到Key Chain Utils ,否則它將生成一個(gè)新的Unique Every Time
最終守則
+ (NSString *)GetDeviceID { NSString *udidString; udidString = [self objectForKey:@"deviceID"]; if(!udidString) { CFUUIDRef cfuuid = CFUUIDCreate(kCFAllocatorDefault); udidString = (NSString*)CFBridgingRelease(CFUUIDCreateString(kCFAllocatorDefault, cfuuid)); CFRelease(cfuuid); [self setObject:udidString forKey:@"deviceID"]; } return udidString;}+(void) setObject:(NSString*) object forKey:(NSString*) key{ NSString *objectString = object; NSError *error = nil; [SFHFKeychainUtils storeUsername:key andPassword:objectString forServiceName:@"LIB" updateExisting:YES error:&error]; if(error) NSLog(@"%@", [error localizedDescription]);}+(NSString*) objectForKey:(NSString*) key{ NSError *error = nil; NSString *object = [SFHFKeychainUtils getPasswordForUsername:key andServiceName:@"LIB" error:&error]; if(error) NSLog(@"%@", [error localizedDescription]); return object;}
- 3 回答
- 0 關(guān)注
- 668 瀏覽
添加回答
舉報(bào)