iOS Device ID 的前世今生

平時(shí)大家喜歡把各種標(biāo)識(shí)符都稱為 Device ID照藻,面對(duì)各種各樣的標(biāo)識(shí)符我也是一頭霧水袜啃,覺得有必要梳理一下。不管這些標(biāo)識(shí)符叫什么名字幸缕,出于保護(hù)用戶隱私的考慮群发, Apple 不會(huì)允許開發(fā)者來(lái)定位用戶的設(shè)備,只允許開發(fā)者來(lái)對(duì) App 進(jìn)行定位发乔。

IMEI

IMEI(International Mobile Equipment Identity):國(guó)際移動(dòng)設(shè)備身份碼熟妓,在手機(jī)組裝完成后賦予的一個(gè)全球唯一的號(hào)碼,由于此時(shí) iPhone 只支持單卡栏尚,所以 IMEI 和 iPhone 是一一對(duì)應(yīng)的起愈。

iOS 2 提供了一種方法獲取 IMEI,但是為了保護(hù)用戶隱私译仗,iOS 5 以后蘋果不再允許獲取 IMEI 了抬虽,如果你在應(yīng)用中獲取 IMEI,可能會(huì)遭到 Apple Store 的拒絕纵菌。

IDFA

IDFA(Identifier for Identifier)阐污,即廣告標(biāo)識(shí)符,多用于用戶的廣告追蹤咱圆,是每臺(tái)設(shè)備的唯一 ID笛辟,IDFA 存儲(chǔ)在用戶的系統(tǒng)上。Apple 是不允許開發(fā)者追蹤用戶設(shè)備的序苏,但是為了監(jiān)控廣告效果手幢,在 iOS 6 中提供這個(gè)折中方案,但 IDFA 也會(huì)發(fā)生變化忱详,比如重置系統(tǒng)围来、還原廣告標(biāo)識(shí)符等。同時(shí)匈睁,用戶也可以選擇是否禁止廣告追蹤(即商家沒辦法根據(jù)用戶的行為偏好推送廣告)管钳。

UDID

UDID(Unique Device Identifier):蘋果 iOS 設(shè)備的唯一識(shí)別碼,在 iOS 6(2013 年 5 月 ) 以后被 Apple 禁止软舌。

Mac 地址

Mac(Medium/Media Access Control):網(wǎng)絡(luò)設(shè)備的物理地址,如果 IMEI 被認(rèn)為是設(shè)備的唯一標(biāo)識(shí)牛曹,那么 Mac 就是網(wǎng)絡(luò)接口唯一標(biāo)識(shí)佛点。學(xué)過計(jì)算機(jī)網(wǎng)絡(luò)都知道,在根據(jù) IP 進(jìn)行物理尋址的時(shí)候就是使用的 Mac 地址。

同樣由于隱私問題超营,在 iOS 7 之后無(wú)法通過 Mac 地址來(lái)標(biāo)識(shí)唯一設(shè)備鸳玩,因?yàn)樵?iOS 7 之后獲取到的 Mac 地址為一固定值。

中期總結(jié)

開發(fā)者們想盡辦法想要追蹤用戶設(shè)備演闭,但是 Apple 明令禁止不跟,經(jīng)過雙方的博弈,最終 IDFA 一統(tǒng)天下米碰。下面這圖來(lái)源于網(wǎng)絡(luò)今妄,很明了的闡述了 Device ID 的演進(jìn)史暇屋。

來(lái)源于網(wǎng)絡(luò)

NSUUID

UUID(Universally Unique IDentifier):通用唯一識(shí)別碼

NSUUID 與之前的 CFUUID 是一致的,只是改成了 Objective-C 的接口而已,NSUUID 每次獲取的值都會(huì)發(fā)生變化鹤耍,但是它會(huì)保持唯一性。

NSString *uuid = [[NSUUID UUID] UUIDString];

IDFV

IDFV(identifierForVendor):Vendor 標(biāo)示符释涛,也被稱為廠商標(biāo)識(shí)符亭畜。只要用戶的設(shè)備中沒有卸載當(dāng)前 Vendor 的所有 APP,則不會(huì)發(fā)生變化锣枝。什么是 Vendor 厢拭?可以理解成 bundleID 的前兩部分,例如對(duì)于 com.joy.app_1 和 com.joy.app_2 這兩個(gè) bundleID 來(lái)說(shuō)撇叁,就屬于同一個(gè) Vendor 供鸠,共享同一個(gè) IDFV。

 NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

IDFV 比較適合追蹤用戶行為税朴,目前多配合 Keychain 來(lái)搭配使用回季,來(lái)保證不管是否卸載重裝,IDFV 都是不變的正林。

LC_UUID

其實(shí)這個(gè)和 Device ID 沒什么關(guān)系泡一,但是因?yàn)橐步?UUID,防止造成誤解觅廓,所以來(lái)解釋下鼻忠。LC_UUID 可以這么理解,是用來(lái)標(biāo)示 Mach-O 的杈绸,你如果去查看你 APP 的崩潰日志帖蔓,你會(huì)發(fā)現(xiàn)應(yīng)用的可執(zhí)行程序和各種庫(kù)都有自己的 UUID,你在進(jìn)行符號(hào)解析的時(shí)候瞳脓,就需要找到與系統(tǒng)庫(kù)和你 APP 的 UUID 相同的符號(hào)文件來(lái)進(jìn)行堆棧地址還原塑娇。下面列舉的最后一列是庫(kù)或者 APP 的 UUID。

Binary Images:
0x107170000 - 0x1071aafff +GYMonitorExample x86_64 <f625eb41ccfa3c0db9ed70c4c083b101>
0x10724b000 - 0x107252fff libBacktraceRecording.dylib x86_64 <ad76d9937807307a8eb90279ce79d84e>
0x107259000 - 0x107260fff libViewDebuggerSupport.dylib x86_64 <f5c61d2ba3ab311ba5495a71e4f67790>
0x107269000 - 0x107548fff Foundation x86_64 <61cd1144bb933571bdb39f9b56cecffe>
0x10779c000 - 0x107b6bfff libobjc.A.dylib x86_64 <5f0e622c86ec3969acfbcaaa10e21a31>

結(jié)論

2017 年的我們想要通過 UDID劫侧、Mac 地址埋酬、OpenUDID 來(lái)定位用戶設(shè)備已經(jīng)是不可能啦哨啃,因?yàn)樗鼈円词菬o(wú)效,要么是受到了 App Store 的限制写妥。但是如果你想要追蹤廣告的話拳球,可以使用 IDFA,想要用來(lái)分析用戶行為可以使用 IDFV + KeyChain 來(lái)解決珍特。

同時(shí)那么多標(biāo)識(shí)符都被叫做 UUID祝峻,其實(shí)它們作用各不相同,或許叫它們 NSUUID扎筒、IDFV莱找、LC_UUID 更容易讓大家理解吧!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末砸琅,一起剝皮案震驚了整個(gè)濱河市宋距,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌症脂,老刑警劉巖谚赎,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異诱篷,居然都是意外死亡壶唤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門棕所,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)闸盔,“玉大人,你說(shuō)我怎么就攤上這事琳省∮常” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵针贬,是天一觀的道長(zhǎng)击费。 經(jīng)常有香客問我,道長(zhǎng)桦他,這世上最難降的妖魔是什么蔫巩? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮快压,結(jié)果婚禮上圆仔,老公的妹妹穿的比我還像新娘。我一直安慰自己蔫劣,他們只是感情好坪郭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著脉幢,像睡著了一般截粗。 火紅的嫁衣襯著肌膚如雪信姓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天绸罗,我揣著相機(jī)與錄音,去河邊找鬼豆瘫。 笑死珊蟀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的外驱。 我是一名探鬼主播育灸,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼昵宇!你這毒婦竟也來(lái)了磅崭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瓦哎,失蹤者是張志新(化名)和其女友劉穎砸喻,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蒋譬,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡割岛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了犯助。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片癣漆。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖剂买,靈堂內(nèi)的尸體忽然破棺而出惠爽,到底是詐尸還是另有隱情,我是刑警寧澤瞬哼,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布婚肆,位于F島的核電站,受9級(jí)特大地震影響倒槐,放射性物質(zhì)發(fā)生泄漏旬痹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一讨越、第九天 我趴在偏房一處隱蔽的房頂上張望两残。 院中可真熱鬧,春花似錦把跨、人聲如沸人弓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)崔赌。三九已至意蛀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間健芭,已是汗流浹背县钥。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留慈迈,地道東北人若贮。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像痒留,于是被迫代替她去往敵國(guó)和親谴麦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容