iOS5:[UIDevice uniqueIdentifier]的替代方案

iOS5之後,原來獲取iPhone的DeviceId的接口:[UIDevice uniqueIdentifier] 被廢棄!

這個改動會影響非常多的人,尤其是數據分析者。由於iPhone取IMEI困難(屬於私有方法),所以大多數應用將DeviceId,也就是uniqueIdentifier作爲IMEI來使用。如果這個接口被廢棄,那麼,我們就需要尋求一個新的方式來標識唯一的設備。

官方推薦的方法是,每個應用內創建一個UUID來作爲唯一標誌,並將之存儲,但是這個解決方法明顯不能接受!原因是,你每次創建的UUID都是不一樣的,意味着,你卸載後重新安裝這個軟件,生成的UUID就不一樣了,無法達到我們將之作爲數據分析的唯一標識符的要求。

現有的解決方案是,使用iPhone的Mac地址,因爲Mac地址也是唯一的。unix有系統調用可以獲取Mac地址。但是有些事情需要注意:

1.iPhone可能有多個Mac地址,wifi的地址,以及SIM卡的地址。一般來講,我們取en0的地址,因爲他是iPhone的wifi的地址,是肯定存在的。(例外情況依然有:市面上依然存在一部分聯通的閹割版無wifi的iPhone)

2.Mac地址涉及到隱私,不應該胡亂將用戶的Mac地址傳播!所以我們需要將Mac地址進行hash之後,才能作爲DeviceId上傳。

 

網上已經有現成的解決方案:

https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章