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
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
