2013-09-24 42 views
2

我只想知道Apple設備(iPod Touch,iPhone或iPad)可以在服務器上使用哪些內容並將其存儲在服務器上以製作唯一標識符?比如IMEI或者其他東西......我只需要一些獨特的東西,這樣我的應用程序就可以從「相同設備」進行一次驗證。如何從設備製作唯一標識符?

謝謝。

+0

到潛在的重複數據刪除的答案是過時...... –

回答

7

您可以使用NSUUID。但是,這會發生變化,所以您可以通過在應用程序第一次打開並保存時調用它來實現它。

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"]) 
{ 
     //App has previously launched 

} 
else 
{ 
    //First launch 
    NSString *identifierString = [[NSUUID UUID] UUIDString]; 
    [[NSUserDefaults standardUserDefaults] setObject:identifierString forKey:@"uuidKey"]; 

    [[NSUserDefaults standardUserDefaults] synchronize]; 
} 

編輯:有關更多信息和可用選項check out this great article

+0

哇......你快和完整的示例代碼,兄弟......非常感謝! –

2

如果您在iOS 6.0上運行或更高版本,可以使用identifierForVendor從。

NSUUID* pUUID; 
UIDevice* pThisDvc; 

pThisDvc = [UIDevice currentDevice]; 
if (pThisDvc) 
{ 
    pUUID = [pThisDvc identifierForVendor]; 
} 
+0

爲什麼我們要檢查'if(pThisDvc)'?有沒有什麼情況下'[UIDevice currentDevice]'沒有返回一個有效的對象? – n00bProgrammer

1
NSUUID* identifier = [[UIDevice currentDevice] identifierForVendor]; 

NSString* uniqueIdentifier = [identifier UUIDString]; 

這返回當前設備的唯一標識符,其是唯一的每個應用程序。 Apple建議將其用於一般用途,並且advertisingIdentifier用於廣告目的。

在實現了服務廣告的系統,使用值 在ASIdentifierManager 類,而不是這個屬性的advertisingIdentifier財產。使用該財產需要您遵循 在課堂討論中提出的準則,以便正確使用 該標識符。有關更多信息,請參閱ASIdentifierManager類 參考。

...從here