蘋果禁用UDID讓開發(fā)商焦頭爛額,如何解決后續(xù)問題?
蘋果在今年二月就已出臺(tái)一份報(bào)告,建議開發(fā)商停用UDID。其實(shí)開發(fā)商通過UDID告訴用戶他在某個(gè)設(shè)備上使用開發(fā)商的應(yīng)用,本身不是件壞事。比如 開發(fā)商David Barnard只是利用UDID幫助將App Cubby的應(yīng)用從一臺(tái)設(shè)備同步到另一臺(tái)設(shè)備。若服務(wù)器不能分清各個(gè)設(shè)備,一切就亂了,開發(fā)商也就不能為用戶提供同步服務(wù)。
另一個(gè)例子就是非常受歡迎的Twitter應(yīng)用Tweetbot,它利用UDID來分清消息應(yīng)該發(fā)送到哪臺(tái)設(shè)備,哪臺(tái)設(shè)備已經(jīng)收到了這條消息,如果 沒有UDID,應(yīng)用就無法分清。所以,圍繞UDID的問題,不僅僅是廣告網(wǎng)絡(luò)及追蹤用戶銷售產(chǎn)品所面臨問題,還有其它種種問題。
開發(fā)商要將一個(gè)應(yīng)用在不包含廣告的情況下安裝在某臺(tái)獨(dú)立設(shè)備上是合法的,蘋果也知道自己需要為開發(fā)商提供別的選擇,所以推薦使用CFUUID(Core Foundation Universally Unique Identifier)。
但并不是每個(gè)應(yīng)用都能很好利用CFUUID,這不是一個(gè)好的備選方案。CFUUID只有在應(yīng)用向iOS系統(tǒng)發(fā)出請(qǐng)求時(shí)才會(huì)被激活,開發(fā)商可以將之自行存在某個(gè)地方,但它可能被刪掉而且從此無法找回,而UDID一旦激活,則會(huì)永久存在于設(shè)備上。
Tweetbot工作室Tapbots的Paul Haddad說:
“CFUUID問題很多,如果你從一臺(tái)舊設(shè)備中備份文件到新設(shè)備中,兩臺(tái)設(shè)備就擁有相同的CFUUID,如果你從臨時(shí)文件中備份操作系統(tǒng),就會(huì)出現(xiàn)一個(gè)設(shè)備里存在不同CFUUID”。
當(dāng)然,除了CFUUID,還有其它接解決方案,但也存在局限性。比如,利用Mac地址(也就是一臺(tái)設(shè)備的網(wǎng)絡(luò)硬件ID),但是它就像UDID一樣是永久的,會(huì)被網(wǎng)管禁止訪問。
黑客通常會(huì)通過Mac地址識(shí)別用戶設(shè)備所在地,如果蘋果禁用UDID,接下來就可能禁用Mac地址。Haddad說:
“如果你想以一種萬無一失的方法追蹤某臺(tái)設(shè)備,現(xiàn)在還沒有比UDID更合適的選擇。當(dāng)人們想徹底清理,儲(chǔ) 存,更新設(shè)備時(shí),UDID的缺失會(huì)為開發(fā)商帶來許多難題。停用UDID不僅僅是對(duì)廣告網(wǎng)絡(luò)及那些使用UDID追蹤用戶行為而盈利的人造成沖擊,也會(huì)對(duì)想要 真正為用戶帶來更好體驗(yàn)的開發(fā)商造成影響”。
當(dāng)然,也有其它解決方案,利用現(xiàn)在的UDID或Mac地址以及app的ID進(jìn)行加密,作為每個(gè)應(yīng)用,每臺(tái)設(shè)備的的獨(dú)立序列號(hào),但這種方法在多個(gè)程序 之間追蹤用戶就行不通,像Openfeint及Appfire就通過在應(yīng)用生態(tài)系統(tǒng)內(nèi)使用登錄系統(tǒng)作為替代方案,但這種方法不是對(duì)每個(gè)應(yīng)用都適用。

【編輯推薦】