2015-09-29 110 views
2

我知道,如果它具有以下方法,每個方法它會破綻唯一標識iOS設備的最佳方式?

  • UDID
  • 廣告識別碼
  • 供應商ID

與UDID的問題是,它的棄用,甚至沒有ios7的工作,與其他兩個問題是,用戶可以通過軟件重置手機或重新安裝應用程序來更改它們

另一個inte我發現休息解決方案是隨機生成一個自己,然後保存到鑰匙串,以避免應用程序重新安裝時刪除,但是這將跨軟件重置工作?當然,兩個設備會隨機生成相同的ID的可能性很小?

我認爲最好的選擇可能是使用UDID,但我想知道,即使UDID與ios7不正確,它仍然是唯一的嗎?

另一個選擇是MAC地址,但據我所知,目前對這些

沒有API請最好的選擇

+1

根據這個答案,有一個獲取MAC地址的API http://stackoverflow.com/a/677741/1796907 –

+0

@ egor.zhdan答案和評論表明它不適用於ios7及以上版本,就像udid –

+0

有商業供應商在那裏使用設備指紋識別大多數唯一標識設備。 –

回答

0

開始的iOS 7推導MAC地址的建議是不可能的。你可以,但是,下面用:

[[[UIDevice currentDevice] identifierForVendor] UUIDString] 

Apple Documentation

當用戶刪除所有供應商的應用程序從 設備,並隨後重新安裝一個或多個它們的價值變化。值 也可以在使用Xcode安裝測試版本時或在使用ad-hoc分發的設備上安裝 應用程序時使用。因此,如果您的應用程序 在任何位置存儲此屬性的值,則應優雅地 處理標識符更改的情況。

+0

價值改變種遺蹟的想法。我可以將該值存儲在鑰匙串中,但它會同步到其他設備,因此它不會是唯一的 –