2011-12-25 24 views
3

我正在開發一個原生的iOS應用程序,我是一種新手,既有Objective-C和Apple設備的開發。有什麼方法可以識別iDevice用戶嗎?

在我的應用程序中,我需要通過獨特的方式識別用戶。我認爲最好的解決方案是獲取當前的Apple ID並將其存儲在在線數據庫中以用於我的目的。唯一的問題是用戶可以改變它。所以,我認爲蘋果公司必須有另一個標識符才能區分實際賬戶。

有什麼辦法可以得到那個嗎?我錯過了什麼?有些課程?

在此先感謝... 皮特

+0

的目的是什麼你會在識別用戶?這將指導最佳答案,因爲有很多方法可以這樣做。您可以使用其硬件標識符識別*設備*,如果您正在製作遊戲,則可以使用Game Center帳戶集成來識別播放器。您已經發現使用Apple ID的問題,即可以使用沒有iOS設備的iOS設備,或者更改它。 – 2011-12-25 21:26:21

+0

這是一份報紙應用程序,我需要爲已經購買打印訂閱的用戶授予免費的在線訂閱。我的理念是我會將用戶綁定到客戶身上(就像恢復零售價的應用內購買一樣)。 – 2011-12-25 21:55:46

回答

12

所有iOS設備都與唯一標識符UDID,通過至極入店是:

[[UIDevice currentDevice] uniqueIdentifier] 

但是,這是由蘋果氣餒,一些應用程序也越來越被拒絕使用它,基本上是因爲蘋果不希望你跟蹤或將設備視爲獨一無二的,因爲你可以出售它或與另一個人交換。

您可以做的是創建一個UUID which is a unique identifier並將其存儲在鑰匙鏈中,這意味着即使該應用程序被刪除,該唯一ID仍會保留在手機中,但只會在您恢復出廠設置時纔會消失,這是蘋果想要的。

另一種解決方案是使用將產生UNIQUEID設備的基礎上像openUDIDUIDevice-with-UniqueIdentifier-for-iOS-5

希望這有助於外部庫!

+0

太好了,非常感謝! P – 2011-12-25 21:59:59

2

沒有辦法獲得唯一的用戶標識符(除非有禮貌地詢問用戶可選和未經驗證的響應)。 Apple的隱私政策看起來不允許他們以任何方式暴露應用用戶的身份信息。

iOS設備UDID不僅由Apple棄用,而且與用戶無關(因爲設備可能已經更改了所有者,並且單個用戶可以擁有多個設備並且都具有不同的UDID)。

2

[[UIDevice currentDevice] uniqueIdentifier]現在是已棄用

你應該使用這樣的:

UIDevice *device = [UIDevice currentDevice]; 
NSUUID *uniqueIdentifier = [device identifierForVendor]; 

UIDevice Class Reference

+0

identifierForVendor不是可信的唯一標識符,因爲它在某些情況下確實會更改。唯一真正可信的唯一標識符是Game Center中的playerID屬性,但不幸的是它僅適用於遊戲。 – Heitor 2015-11-09 06:37:38

相關問題