UDID被棄用,使用UUID來(lái)作為設(shè)備的唯一標(biāo)識(shí)。獲取到UUID后,如果用NSUserDefaults存儲(chǔ),當(dāng)程序被卸載后重裝時(shí),再獲得的UUID和之前就不同了。使用keychain存儲(chǔ)可以保證程序卸載重裝時(shí),UUID不變。但當(dāng)刷機(jī)或者升級(jí)系統(tǒng)后,UUID還是會(huì)改變的。但這仍是目前為止最佳的解決辦法了。
1、Target - Capabilities - KeychainSharing - ON 開啟 KeychainSharing

開啟 KeychainSharing
開啟后,會(huì)自動(dòng)生成Entitlements文件
代碼如下:
//程序運(yùn)行,獲取UUID
NSString *strUUID = (NSString *)[KeyChainStore load:@"xxx.xxx.xxx”];
//首次執(zhí)行該方法時(shí),uuid為空
//生成一個(gè)uuid的方法
CFUUIDRef uuidRef= CFUUIDCreate(kCFAllocatorDefault);
strUUID = (NSString *)CFBridgingRelease(CFUUIDCreateString (kCFAllocatorDefault,uuidRef));
//將該uuid保存到keychain
[KeyChainStore save:KEY_USERNAME_PASSWORD data:strUUID];