UDID畦韭、UUID和deviceToken

一、UDID (Unique Device Identifier)

UDID的全稱是Unique Device Identifier据过,顧名思義绳锅,它就是蘋果IOS設(shè)備的唯一識別碼酝掩,它由40個字符的字母和數(shù)字組成。在很多需要限制一臺設(shè)備一個賬號的應(yīng)用中經(jīng)常會用到原朝。在iOS5中可以獲取到設(shè)備的UDID镶苞,后來被蘋果禁止了茂蚓。

二剃幌、UUID(Universally Unique Identifier)

UUID是Universally Unique Identifier的縮寫负乡,中文意思是通用唯一識別碼脊凰。它是讓分布式系統(tǒng)中的所有元素,都能有唯一的辨識資訊切省,而不需要透過中央控制端來做辨識資訊的指定数尿。這樣惶楼,每個人都可以建立不與其它人沖突的 UUID歼捐。在此情況下晨汹,就不需考慮數(shù)據(jù)庫建立時的名稱重復(fù)問題。蘋果公司建議使用UUID為應(yīng)用生成唯一標(biāo)識字符串剥扣。

雖然UUID是官方提出的一種替代UDID的建議方案,但網(wǎng)上有資料說UUID不能保證在以后的系統(tǒng)升級后還能用钠怯。

經(jīng)過我測試目前,UUID在iOS10下均可以使用,而且UUID每次生成的值都不一樣,需要開發(fā)者自行保存UUID曙聂。

如果使用UUID為標(biāo)識保存用戶的資料在網(wǎng)絡(luò)上,當(dāng)用戶重裝軟件后,UUID的值就可能會發(fā)生改變(基本上可說是百分百會發(fā)生改變),用戶則無法重新下載原來的網(wǎng)絡(luò)資料宁脊。

那APP中需要一個能夠標(biāo)識設(shè)備唯一性的ID ,怎么辦呢稳衬?

Apple解決方案

1坐漏、使用CFUUIDCreateString(NULL, CFUUIDCreate(NULL))生成UUID

2碧信、將UUID緩存在本地音婶,sqlite或plist衣式。使用時取出

評價:

坑爹檐什!這種方式每次UUID生成一次都不一樣,如果產(chǎn)品被fuck out of device住册,再裝載會導(dǎo)致兩次UUID不一致瓮具。這個方案明顯適用范圍狠窄啊親。于是乎各路妖魔鬼怪開始了各種解決方案叹阔。

方案一:(Mac地址+bundle_id)

1耳幢、獲取本地mac地址和應(yīng)用bundle_id

2欧啤、將mac+bundle_id進(jìn)行散列運(yùn)算獲得機(jī)器+應(yīng)用的唯一標(biāo)識

3、只將mac進(jìn)行散列運(yùn)算獲得機(jī)器的唯一標(biāo)識

評價:

狠好的解決方案店印,如果沒有2B的聯(lián)通攪局倒慧,這個方案可以說完美了,取wifi的mac地址除院峡,非你修機(jī)器把wifi換掉照激。但是親盹牧,中國曾經(jīng)出過太監(jiān)版3GS励幼,泥馬口柳,這是一種怎樣的考量刪除了wifi啊。這種拍腦袋的做法就是當(dāng)局的2B嵌削,聯(lián)通跟著傻B望艺。what the fuck!你說還有其他方案不艇劫,不要依賴硬件惩激?

方案二:(推送token+bundle_id)

1、應(yīng)用中增加推送用來獲取token

2风钻、獲取應(yīng)用bundle_id

3魄咕、根據(jù)token+bundle_id進(jìn)行散列運(yùn)算

評價:

apple push token保證設(shè)備唯一哮兰,但必須有網(wǎng)絡(luò)情況下才能工作苟弛,該方法不依賴于設(shè)備本身,但依賴于apple push膏秫。加上一定的業(yè)務(wù)邏輯可以解決大部分情景。

方案三:OpenUDID (推薦)

那么有沒有另外的辦法來獲取用戶設(shè)備的唯一標(biāo)識符呢窘哈?答案是有的滚婉,當(dāng)然這樣的標(biāo)識符不是蘋果隱藏的UDID了帅刀,使用OpenUDID開源代碼远剩,這個代碼通過一些特殊的算法瓜晤,創(chuàng)建了每一個設(shè)備的唯一標(biāo)識符腹纳,你可以拿過來用來識別設(shè)備了。ylechelle/OpenUDID

三志群、deviceToken

先簡單介紹下push的機(jī)制

客戶端通過

(void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types

這個函數(shù)向APNs(Apple Push Service)注冊push蛔钙,types可標(biāo)明接收的push的類型,聲音桑涎,數(shù)字等兼贡。

(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken;

當(dāng)app成功注冊通知后,會調(diào)用這個函數(shù)等曼,并把deviceToken返回給應(yīng)用凿蒜。

device token是對APNs來說,設(shè)備的標(biāo)識符州泊,與app無關(guān)漂洋,所以同一臺設(shè)備上,不同的app獲得的device token是一樣的; 一個設(shè)備可能會產(chǎn)生多個device token, 一個device token也可能對應(yīng)多個UDID演训,下面進(jìn)行解釋贝咙。

device token是什么?

對于APS來說乌奇,device token是設(shè)備的標(biāo)識符。device token不同于UIDevice的uniqueIdentifier(即UDID)礁苗,因?yàn)槌鲇诎踩碗[私原因,當(dāng)設(shè)備被擦除后嘁信,device token必須變化疏叨。所以也就是說,一般情況下蚤蔓,device token是不變的,但是在設(shè)備被擦除后单寂,device token會變的。同一個設(shè)備在development和distribution情況下宣决,收到的device token是不同的尊沸,而token是與app無關(guān)的贤惯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子浦译,更是在濱河造成了極大的恐慌精盅,老刑警劉巖谜酒,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異粘驰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)愕掏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門饵撑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唆貌,“玉大人锨咙,你說我怎么就攤上這事×宦拢” “怎么了蓖宦?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵柠偶,是天一觀的道長。 經(jīng)常有香客問我诱担,道長蔫仙,這世上最難降的妖魔是什么丐箩? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮施籍,結(jié)果婚禮上丑慎,老公的妹妹穿的比我還像新娘。我一直安慰自己玉吁,他們只是感情好诈茧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布捂掰。 她就那樣靜靜地躺著这嚣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吏垮。 梳的紋絲不亂的頭發(fā)上罐旗,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天九秀,我揣著相機(jī)與錄音,去河邊找鬼痹换。 笑死娇豫,一個胖子當(dāng)著我的面吹牛冯痢,可吹牛的內(nèi)容都是我干的框杜。 我是一名探鬼主播霸琴,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼梧乘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了夹供?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤仁堪,失蹤者是張志新(化名)和其女友劉穎哮洽,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弦聂,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鸟辅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了莺葫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匪凉。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖捺檬,靈堂內(nèi)的尸體忽然破棺而出再层,到底是詐尸還是另有隱情,我是刑警寧澤堡纬,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布聂受,位于F島的核電站烤镐,受9級特大地震影響瘫俊,放射性物質(zhì)發(fā)生泄漏扛芽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望馍悟。 院中可真熱鬧侵状,春花似錦趣兄、人聲如沸艇潭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至硬霍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拜轨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瓷蛙。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像翅萤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子胚泌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355

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

  • 一場大雪改變了回京的計劃,車在路上剎車根本不管用津肛,踩到底也出溜兒。無奈又請了一天假部蛇,又可以多陪家人一天啦! 我記得...
    樹皮醬閱讀 154評論 0 0
  • 現(xiàn)在是2.25分笔呀,在朋友圈發(fā)了一句:在黑暗中等待新世界的來臨房蝉。 有微信好友發(fā)來信息問:失眠了咧擂? 答:腰扭了,睡不著...
    沫_李閱讀 146評論 0 0
  • 我未曾旅行過的地方 有著不能理解般的遙遠(yuǎn)距離 恰如你眼神中的澄靜 一個溫柔姿勢 便讓我心門緊閉 又或者說 它近得無...
    余妙玲閱讀 309評論 0 3
  • 一夜不聞家鄉(xiāng)蟬, 輾轉(zhuǎn)反側(cè)難入眠水醋。 蟬聲千里傳音訊, 不知翻越幾重山宫蛆。
    柳召青閱讀 312評論 1 14
  • 馮小剛說:“他是個夢想家迈倍、冒險家竟宋,也是個實(shí)干家蜗字。” 民族記憶 樊建川的父母都是軍人,所以他說自己骨子里面,流淌著的...
    電娛時代閱讀 345評論 0 1