關於UDID和UUID的區別
一.UDID(Unique Device Identifier)
UDID是Unique Device Identifier的縮寫,中文意思是設備唯一標識.
在很多需要限制一台設備一個賬號的應用中經常會用到,在Symbian時代,我們是使用IMEI作為設備的唯一標識的,可惜的是Apple官方不允許開發者獲得設備的IMEI.
iOS5 sdk中的獲取方法:[UIDevice currentDevice] uniqueIdentifier]
uniqueIdentifier在UIDevice.h中的定義如下:@property(nonatomic,readonly,retain) NSString *uniqueIdentifier __OSX_AVAILABLE_BUT_DEPRECATED(__MAC意思是iOS2.0以上及iOS5.0以下的系統可用,但不建議使用.Apple有可能在iOS5.0之后刪除該函數.
iOS6之后 換成 [[UIDevice currentDevice] identifierForVendor];
但是我們需要注意的一點是,對於已越獄了的設備,UDID並不是唯一的.使用Cydia插件UDIDFaker,可以為每一個應用分配不同的UDID.
所以UDID作為標識唯一設備的用途已經不大了
二.UUID(Universally Unique Identifier)
UUID是Universally Unique Identifier的縮寫,中文意思是通用唯一識別碼.
由網上資料顯示,UUID是一個軟件建構的標准,也是被開源軟件基金會(Open Software Foundation,OSF)的組織在分布式計算環境(Distributed Computing Environment,DCE)領域的一部份.UUID的目的,是讓分布式系統中的所有元素,都能有唯一的辨識資訊,而不需要透過中央控制端來做辨識資訊的指定.
根據以上定義可知,同一設備上的不同應用的UUID是互斥的,即能在改設備上標識應用.但是並沒有明確指出能標識出裝有同一應用的不同設備,但是根據我推測,這個UUID應該是根據設備標識和應用標識生成唯一標識,再經過加密而來的(純推測).
三.
UUID(Universally UniqueIDentifier)
是基於iOS設備上面某個單個的應用程序,只要用戶沒有完全刪除應用程序,則這個UUID在用戶使用該應用程序的時候一直保持不變。如果用戶刪除了這個應用程序,然后再重新安裝,那么這個UUID已經發生了改變。通過調用[[UIDevice currentDevice]identifierForVendor];方法可以獲取UUID。UUID不好的地方就是用戶刪除了你開發的程序以后,基本上你就不可能獲取之前的數據了。
UDID(Unique Device
Identifier)是一串由40位16進制數組成的字符串,用以標識唯一的設備,現在想通過代碼獲取是不可能的了,如果你想看看你設備的UDID,可以通過iTunes來查看。蘋果從iOS5開始就移除了通過代碼訪問UDID的權限,所以碼農啊,想知道用戶設備的UDID,是不行的嘍。
那么有沒有另外的辦法來獲取用戶設備的唯一標識符呢?答案是有的,當然這樣的標識符不是蘋果隱藏的UDID了,使用OpenUDID開源代碼,這個代碼通過一些特殊的算法,創建了每一個設備的唯一標識符,你可以拿過來用來識別設備了。