可能重複:
UIDevice uniqueIdentifier Deprecated - What To Do Now?UUID的應用程序上的iOS5
正如我希望你知道的,在uniqueIdentifier
在在iOS5中已被棄用。我在尋找與iOS5基本相同的功能。
我從文檔中瞭解到,蘋果希望我們(開發人員)創建我們自己的UUID(使用CFUUIDCreate
我猜),並將其存儲在NSUserDefaults
中。但是,這讓我有些顫抖,完全沒有感覺到保存。在這種情況下,感覺有點沒有意義擁有UUID。
我需要一個UUID的原因是因爲我在auth過程中向我的服務器發送了一堆信息,包括UUID,並希望能夠跳過一些步驟,如果服務器可以「猜測」下次是誰的用戶該應用程序啓動或重新安裝或其他應用程序實現我的庫。 CFUUIDCreate
似乎沒有幫助我。
我也快速瀏覽了gekitz,但據我瞭解,它僅基於手機中以太網「卡」的MAC地址。這是不合適的,因爲我有一種模糊的感覺,即MAC地址是可以改變的。在中的uniqueIdentifier
是
基於各種硬件細節的每個設備唯一的字母數字字符串。
當前我寫了這個代碼,它檢索一個UUID。但只要我在XCode中清理並重新安裝手機上的應用程序,我就會得到一個新的UUID。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *UUID = @"";
if (![defaults valueForKey:@"UUID"])
{
CFUUIDRef UUIDRef = CFUUIDCreate(kCFAllocatorDefault);
CFStringRef UUIDSRef = CFUUIDCreateString(kCFAllocatorDefault, UUIDRef);
UUID = [NSString stringWithFormat:@"%@", UUIDSRef];
[defaults setObject:UUID forKey:@"UUID"];
}
else {
UUID = [defaults valueForKey:@"UUID"];
}
[deviceInformation setObject:UUID forKey:@"UUID"];
概括起來講,我的問題是:
是否有創建基於這是「硬」的篡改,並給了我作爲接收器的小設備的UUID的一些可靠的方法需要依賴和信任的東西?這並不一定要根據設備,可能是基於應用程序作爲應用程序UUID,只要其重新安裝後相同。
爲什麼來自'CFUUIDCreate'的UUID與'NSUserDefaults'一起存儲,不能滿足您的驗證用例?每次安裝將始終發送相同的值(直到它將被刪除並重新安裝)。開發時可能很煩人,但用戶不會經常刪除他的應用程序,是嗎? – DarkDust
另外,爲什麼MAC會發生變化?它可以在PC上進行更改,您可以使用某種工具對其進行調整,但只要您不這樣做,MAC就不會改變。 – DarkDust
@DarkDust這不是一個可能的重複。在我發佈自己的帖子之前,我已經閱讀過這篇文章。您已經在評論中回覆了您的第二條評論。下次安裝應用程序時,我需要相同的UUID,而不是該安裝的新UUID。我確實刪除了應用程序,我也是用戶。但是,這個SO問題並不是關於用戶的習慣,而不管它們是什麼。我的要求是一個唯一的UUID,但每個安裝都是一樣的。 –