以下獲取 uuidString 的方法,每次重啟都會(huì)改變。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),大邑縣企業(yè)網(wǎng)站建設(shè),大邑縣品牌網(wǎng)站建設(shè),網(wǎng)站定制,大邑縣網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,大邑縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
但是項(xiàng)目的要求是不變,并且刪除app 只有也有有保留的需求。顯然這個(gè)無(wú)法滿足我們的需求。
使用KeyChain保存到系統(tǒng)鑰匙串中,然后再去獲取相應(yīng)的值,就可以保證刪除app新裝的app也能獲取到第一次安裝存儲(chǔ)的值。顯然是可以滿足我們的需求的。
下面使用 KeychainAccess 的第三方類庫(kù)來(lái)實(shí)現(xiàn)。
開(kāi)箱即用!
使用方法:
大功告成!
參考文章 iOS唯一標(biāo)識(shí)符(IDFAIDFV)
依賴: AdSupport.framework
系統(tǒng)支持: iOS6及以上系統(tǒng)
獲取方式: [ASIdentifierManager sharedManager].advertisingIdentifier.UUIDString
定義: 由數(shù)字和字母組成的用來(lái)標(biāo)識(shí)唯一設(shè)備的字符串。
特點(diǎn):
依賴: UIKit.framework
系統(tǒng)支持: iOS6及以上系統(tǒng)
獲取方式: [UIDevice currentDevice].identifierForVendor.UUIDString
定義: 由數(shù)字和字母組成的用來(lái)標(biāo)識(shí)唯一設(shè)備的字符串。
特點(diǎn): 根據(jù)vendor的值,如果vendor相同,則返回同一字符串;如果vendor不同,則返回不同的字符串。
vendor解釋: 英文解釋為賣家,小販。根據(jù)xcode文檔解釋,正常情況下,會(huì)根據(jù)App Store提供的數(shù)據(jù)進(jìn)行判斷。但是如果app不是通過(guò)app store進(jìn)行安裝的(如企業(yè)應(yīng)用或開(kāi)發(fā)調(diào)試階段),那么會(huì)根據(jù)bundle ID判斷。
判斷準(zhǔn)則:
如:com.example.app1和com.example.app2,只有最后的后綴不同,所以會(huì)產(chǎn)生相同的vendor ID
在這里,還需要注意的一點(diǎn)就是:如果用戶卸載了同一個(gè)vendor對(duì)應(yīng)的所有程序,然后在重新安裝同一個(gè)vendor提供的程序,此時(shí)identifierForVendor會(huì)被重置。
1.安裝應(yīng)用到手機(jī)A,獲取UUID,UUID字符串是:5115e5a0a5464fcca1445fdb73e528b8,同時(shí)把UUID保存到鑰匙串。
2.卸載應(yīng)用重新安裝,獲取鑰匙串里保存的UUID是否有值。通過(guò)測(cè)試驗(yàn)證,鑰匙串里有對(duì)應(yīng)保存的UUID,并且UUID字符串是:5115e5a0a5464fcca1445fdb73e528b8(同第1步保存的一樣)。
3.反復(fù)卸載、安裝進(jìn)行多次,得到的結(jié)果(同第2步一樣)。
4.恢復(fù)出廠設(shè)置(跟著提示進(jìn)行就行,有點(diǎn)繁瑣)
4.1把手機(jī)恢復(fù)出廠設(shè)置(抹掉所有內(nèi)容和設(shè)置),抹掉時(shí)不進(jìn)行備份操作,選擇立即抹掉。
4.2進(jìn)行重新設(shè)置手機(jī),設(shè)置手機(jī)時(shí)有一步驟是選擇恢復(fù)備份的界面,選擇設(shè)置新的iPhone。(就是不選擇恢復(fù)備份的iCloud備份的數(shù)據(jù))。
5.完成第4步以后,手機(jī)恢復(fù)正常使用。在進(jìn)行安裝應(yīng)用到手機(jī)A。這時(shí),通過(guò)測(cè)試驗(yàn)證鑰匙串里已經(jīng)沒(méi)有了之前保存的UUID。這時(shí)是重新獲取一個(gè)新的UUID進(jìn)行保存到Keychain(鑰匙串),UUID字符串是:e56b79c897c847dc82461bad40937cbd。
6.這時(shí)把iCloud里的鑰匙串打開(kāi),進(jìn)行iCloud數(shù)據(jù)備份。
7.再次進(jìn)行恢復(fù)出廠設(shè)置(換個(gè)方式進(jìn)行)
7.1把手機(jī)恢復(fù)出廠設(shè)置(抹掉所有內(nèi)容和設(shè)置),抹掉時(shí)進(jìn)行備份操作,備份以后進(jìn)行抹掉。
7.2進(jìn)行重新設(shè)置手機(jī),設(shè)置手機(jī)時(shí)有一步驟是選擇恢復(fù)備份的界面,這時(shí)選擇恢復(fù)iCloud備份的數(shù)據(jù)。
8.在次進(jìn)行安裝應(yīng)用到手機(jī)A。這時(shí),通過(guò)測(cè)試驗(yàn)證,鑰匙串里有對(duì)應(yīng)保存的UUID,并且UUID字符串是:e56b79c897c847dc82461bad40937cbd(同第5步保存的一樣)。
1.打開(kāi)手機(jī)的iCloud云盤(pán)進(jìn)行數(shù)據(jù)備份
2.打開(kāi)iCloud里的鑰匙串選項(xiàng)
3.在重新恢復(fù)出廠設(shè)置的時(shí)候(抹掉所有內(nèi)容和設(shè)置),要選擇iCloud備份的數(shù)據(jù)后,在進(jìn)行抹掉操作。
4.在重新設(shè)置手機(jī)的時(shí)候要保證填寫(xiě)iCloud備份是時(shí)對(duì)應(yīng)的iCloud賬號(hào)(第3步的iCloud賬號(hào))。
5.要選擇iCloud備份數(shù)據(jù)恢復(fù)設(shè)置。
6.不能對(duì)手機(jī)進(jìn)行刷機(jī)操作。
(通過(guò)測(cè)試,我個(gè)人認(rèn)為,手機(jī)本人刷機(jī)后(非一般操作),重新開(kāi)機(jī),填寫(xiě)iCloud賬號(hào)同一個(gè)的情況下,也可以恢復(fù)鑰匙串,得到用戶應(yīng)用和設(shè)備的唯一性)。