在開發中會遇到使用需求記載設備標示,即便使用卸載後再裝置也可重新辨認的狀況,在這寫一種完成方式——讀取設備的UUID(Universally Unique Identifier)並經過KeyChain記載。
首先IOS中獲取設備獨一標示符的辦法不斷隨版本的更新而變化。IOS 2.0版本當前UIDevice提供一個獲取設備獨一標識符的辦法uniqueIdentifier,經過該辦法我們可以獲取設備的序列號,這個也是目前為止獨一可以確認獨一的標示符。好景不長,由於該獨一標識符與手機逐個對應,蘋果覺得能夠會洩露用戶隱私,所以在 IOS 5.0之後該辦法就被廢棄掉了;iOS 6.0零碎新增了兩個用於交換uniqueIdentifier的接口,辨別是:identifierForVendor,advertisingIdentifier,但這兩個接口會在使用重新裝置時改動數值,並不是獨一的標示符,所以開發者改為運用WiFi的mac地址來取代;iOS 7中蘋果又封殺mac地址,所以開發者再次改動思緒運用KeyChain來保管獲取到的UDID,這樣當前即便APP刪了再裝回來,也可以從KeyChain中讀取回來。
首先保管設備的UUID,可以運用類辦法+ (id)UUID 是一個類辦法,調用該辦法可以取得一個UUID。經過上面的代碼可以取得一個UUID字符串:
NSString *uuid = [[NSUUID UUID] UUIDString]
NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
KeyChain(鑰匙串)是運用蘋果設備常常運用的,通常要調試的話,都得裝置證書之類的,這些證書就是保管在KeyChain中,還有我們平常閱讀網頁記載的賬號密碼也都是記載在KeyChain中。iOS中的KeyChain相比OS X比擬復雜,整個零碎只要一個KeyChain,每個順序都可以往KeyChain中記載數據,而且只能讀取到自己順序記載在KeyChain中的數據。iOS中Security.framework框架提供了四個次要的辦法來操作KeyChain:
SecItemCopyMatching(CFDictionaryRef query, CFTypeRef *result);//查詢OSStatus這四個辦法參數比擬復雜,一旦傳錯就會招致操作KeyChain失敗,文檔中引見的比擬詳細,大家可以查查官方文檔。
/**
* Author:Jn
* GitHub:https://github.com/JnKindle
* cnblogs:http://www.cnblogs.com/JnKindle
* QQ:1294405741
*/
【iOS 獲取設備獨一標示符的辦法】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!