1. 獲取設(shè)備信息
1.1 使用<code> [UIDevice currentDevice]</code>獲取當(dāng)前設(shè)備的一些信息(手機(jī)名稱(chēng)及系統(tǒng)版本等)钟些;
1.2 使用<code> [[NSBundle mainBundle] infoDictionary]</code>獲取當(dāng)前app的信息(app版本等)宿刮;
1.3 使用<code> [NSLocale currentLocale]</code> 獲取本地語(yǔ)言相關(guān)的一些東西垄提;
獲取本地設(shè)置的語(yǔ)言類(lèi)型<code>[[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] firstObject]</code>或者<code>[[NSLocale preferredLanguages] firstObject]</code>
2. 標(biāo)識(shí)相關(guān)
2.1 identifierForVendor <code> [[UIDevice currentDevice].identifierForVendor UUIDString];</code>
identifierForVendor對(duì)供應(yīng)商來(lái)說(shuō)是唯一的一個(gè)值黄橘,也就是說(shuō)抗悍,由同一個(gè)公司發(fā)行的的app在相同的設(shè)備上運(yùn)行的時(shí)候都會(huì)有這個(gè)相同的標(biāo)識(shí)符宜猜。然而搏存,如果用戶(hù)刪除了這個(gè)供應(yīng)商的app然后再重新安裝的話,這個(gè)標(biāo)識(shí)符就會(huì)不一致的妖。
2.2 identifierForAdvertising<code>[[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];</code>
advertisingIdentifier會(huì)返回給在這個(gè)設(shè)備上所有軟件供應(yīng)商相同的 一個(gè)值绣檬,所以只能在廣告的時(shí)候使用。這個(gè)值會(huì)因?yàn)楹芏嗲闆r而有所變化嫂粟,比如說(shuō)用戶(hù)初始化設(shè)備的時(shí)候便會(huì)改變
3. 使用蘋(píng)果KeychainItemWrapper
存儲(chǔ)identifierForVendor
解決唯一標(biāo)識(shí)問(wèn)題
3.1 下載
GenericKeychain下載鏈接
3.2 導(dǎo)入KeychainItemWrapper.h
和KeychainItemWrapper.m
到項(xiàng)目
3.3 導(dǎo)入Security.framework
并設(shè)置
因?yàn)?code>KeychainItemWrapper.h是依賴(lài)于蘋(píng)果的系統(tǒng)庫(kù)Security.framwork
寫(xiě)的娇未,因此需要導(dǎo)入系統(tǒng)庫(kù)。這個(gè)文件采用MRC星虹,因此需要在提前編譯設(shè)置一下
3.4 設(shè)置accessGroup
-
創(chuàng)建
KeychainAccessGroups.plist
文件
創(chuàng)建plist文件 配置
Code Signing Entitlements
注意:
如果你沒(méi)有設(shè)置Entitlements,則默認(rèn)使用對(duì)應(yīng)的程序的bundle name,比如com.jv.key1,表示只能給自己程序使用(即使創(chuàng)建時(shí)填寫(xiě)group仍然是私有)零抬。
3.5 使用KeychainItemWrapper
注意:
- 如果創(chuàng)建對(duì)象時(shí),沒(méi)有指定group(group傳入nil),則會(huì)默認(rèn)添加你keychain-access-groups數(shù)組里第一個(gè)group搁凸。
- 創(chuàng)建時(shí)傳入的group必須和plist文件里面一致媚值,如果你程序添加的group并不存在你的配置文件中,程序會(huì)崩潰护糖,表示無(wú)法添加褥芒。因此你只能添加你配置文件中支持的keychain。
補(bǔ)充說(shuō)明:
gitHub第三方框架FCUUID
提供了相關(guān)的方法可以解決刪除軟件嫡良、更新系統(tǒng)后UUID改變的問(wèn)題锰扶。。寝受。鏈接 -> 哥是鏈接坷牛,輕戳。很澄。京闰。颜及。
KeyChain基礎(chǔ)
KeyChain研究
高級(jí)(數(shù)據(jù)安全) touchID延伸等
官方三方的用法
keychain和UUID
通過(guò)Safari瀏覽器獲取iOS設(shè)備UDID(設(shè)備唯一標(biāo)識(shí)符