2013-12-10 58 views
1

我有關於設備令牌更新的問題。如果我們升級操作系統,例如從iOS 6升級到iOS 7,應用程序的設備令牌將會更新,或者與舊版本保持一致?設備標記是否在OS的漸變級別上發生變化?

我經歷了蘋果文檔,但沒有找到任何OS升級的具體答案。根據我的知識和形式他人回答關於同一問題我有以下信息。

「通過請求設備令牌,並將其傳遞給供應商每 一次應用程序啓動時,你幫助,以確保供應商 擁有該設備的當前令牌。如果用戶恢復備份到 (例如,用戶將數據遷移到新設備時),他或她必須至少啓動一次該應用程序,以便它再次接收通知 如果用戶恢復備份數據傳輸到新設備或重新安裝操作系統時,設備令牌會發生變化。此外,永遠不要將 緩存設備令牌和把它提供給你的提供者;無論何時您需要時,始終從系統獲取標記 。如果您的應用程序已 以前註冊,呼叫registerForRemoteNotificationTypes: 結果通過設備令牌立即委託 的iOS不會產生額外開銷」

我的問題的背後意圖是,我想用設備令牌作爲唯一ID,比如UDID,因爲在iOS 6之後,獲取UDID方法被拒絕,並且UDID沒有其他選擇。我想獲得一個唯一的ID形式的iPhone,這永遠不會改變,但我找不到任何方法蘋果允許存儲像IMEI nubmer等

總結任何ID或編號是唯一的,它永遠不會改變,我們可以用它來爲我們的應用程序,不能拒絕蘋果?

回答

1

對於你的第一個問題,我知道升級操作系統的設備令牌不會改變。但我沒有參考鏈接。 關於第二個問題,你可以用下面的方法中的iOS 6或更高版本以獲得UUID:

+ (NSString *)GetUUID 
{ 
    CFUUIDRef theUUID = CFUUIDCreate(NULL); 
    CFStringRef string = CFUUIDCreateString(NULL, theUUID); 
    CFRelease(theUUID); 
    return [(NSString *)string autorelease]; 
} 
+2

我推薦使用'[[[的UIDevice currentDevice] identifierForVendor] UUIDString]'來代替。 –

相關問題