2013-09-21 96 views
4

在XCode 4.6,iOS 6.1中,我們使用CoreTelephony獲取IMEI,與get IMEI on iPhone with CoreTelephony?問題中提到的方法相同,但在切換到iOS7和XCode 5後,它不再工作。 我的系統認爲IMEI是識別手機的不可破解的方式,並保證它與特定用戶相關聯,其他安全問題也取決於此標識符。 隨着新的iOS的代碼不起作用,我們還沒有找到一種方法來獲得它。以編程方式獲取iOS7的IMEI

我的中心問題是:我必須在iOS7/XCode 5中獲得IMEI的哪些選項?

變化是: - 我怎麼能保證手機屬於一個特定的人?身份在我的系統中非常重要,設備的所有權是必不可少的。 - 我們還有什麼其他選項可以保證系統安全,而無需重寫過多?

+0

您聲明IMEI「保證它鏈接到特定用戶」,這是錯誤的。多個用戶可以使用相同的設備。 – Jasarien

+1

不是這個應用程序,我們提供這個應用程序是不會工作,如果手機克隆。我可能認爲蘋果安全策略有助於保護設備不被複制和使用所有者的身份,但我沒有找到關於此的具體信息。除此之外,我已經有一張支持蘋果的票了。問題的關鍵在於進行多重調查。 –

+0

你完全誤解了我的評論。我不是在談論假設性的電話複製或IMEI克隆 - 只是一個簡單的事實,我可以在我的手機上登錄Facebook,然後將它傳遞給一個朋友,他以自己的身份退出並返回 - 兩個用戶設備。因此,手機的IMEI不保證與特定用戶的鏈接。 – Jasarien

回答

2

除非找到私人API解決方案 - 我們的組織正在將IMEI和電話號碼作爲受保護的應用程序設置放入我們的企業應用程序中。

憑藉基於iOS7的新相機條形碼識別功能,甚至可以在初始套件和部署期間從手機盒掃描IMEI,而不是手動輸入IMEI。

我們還考慮跟蹤數據庫中的identifierForVendorUUID等鏈接到IMEI/Phone#但由於它可以改變,因爲我們的歷史數據都是基於IMEI的 - 沒有意義將追蹤複雜性層添加到一種半無用的標識符,不會追溯到通用有意義的跟蹤機制,如電話/ IMEI。

+0

感謝您的回答,我喜歡它。這將是一個企業應用程序,但我們希望將其提供給公衆使用。當然,它專注於特定領域:不分享他們設備的人。我們決定跟蹤可用數據的列表,特別是identifierForVendor和cloudId,我們還會在特定情況下要求提供密碼。現在我們相信克隆的設備不會有與原始設備相同的標識符ForVendor,並且APN可以區分這一點,但我們正在檢查。 –

1

我對IMEI號碼不太確定。在iOS7中,Apple改變了他們提供唯一標識符的方式。他們也停止提供無線網卡的MAC地址。現在他們爲每個設備和應用程序供應商提供唯一標識符。請參閱iOS 7發行說明。您可能想要使用該唯一標識符。

2

因爲您使用私有API,所以您不應該首先獲取IMEI,這是違反Apple規則的。

要獲得設備的唯一標識符,您應該使用identifierForVendor方法。這將始終返回同一手機上運行的所有應用程序的相同ID。有關更多詳細信息,請參閱apple文檔。

+6

並非所有人都遵循Apples應用商店規則。只是FYI。 – malhal

+0

我已經閱讀了iOS7的蘋果公告。 –

+2

我不同意我無法訪問設備固件信息,但這不是重點。標識符關聯問題在應用程序被刪除時會發生變化(我只有一個應用程序)。固件值是靜態的。如果應用程序被移除並重新安裝,IdentifierForVendor不能用於保證設備是相同的。 –

2

使用identifierForVendor可以獲得「一個字母數字字符串,用於唯一標識設備與應用程序的供應商。」(只讀)「。

該方法在UIDevice類參考中描述。

+4

,但由於它在卸載應用程序後發生變化,因此在識別設備時無用 –

0

您可以使用每個設備都獨有的advertisingIdentifier。 參見:Apple documentation.

據我所知,advertisingIdentifieridentifierForVendor是您可以使用的唯一的2個唯一標識符。