你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS 獲取設備獨一標示符的辦法

iOS 獲取設備獨一標示符的辦法

編輯:IOS開發綜合

在開發中會遇到使用需求記載設備標示,即便使用卸載後再裝置也可重新辨認的狀況,在這寫一種完成方式——讀取設備的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]

也可以保管在iOS 6中新增的Vindor標示符 (IDFV-identifierForVendor),獲取這個IDFV的新辦法被添加在已有的UIDevice類中。跟advertisingIdentifier一樣,該辦法前往的是一個NSUUID對象。

NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

假如用戶卸載了同一個vendor對應的一切順序,然後在重新裝置同一個vendor提供的順序,此時identifierForVendor會被重置,所以這裡要用到KeyChain來保管。

KeyChain(鑰匙串)是運用蘋果設備常常運用的,通常要調試的話,都得裝置證書之類的,這些證書就是保管在KeyChain中,還有我們平常閱讀網頁記載的賬號密碼也都是記載在KeyChain中。iOS中的KeyChain相比OS X比擬復雜,整個零碎只要一個KeyChain,每個順序都可以往KeyChain中記載數據,而且只能讀取到自己順序記載在KeyChain中的數據。iOS中Security.framework框架提供了四個次要的辦法來操作KeyChain:

SecItemCopyMatching(CFDictionaryRef query, CFTypeRef *result);//查詢OSStatus
SecItemAdd(CFDictionaryRef attributes, CFTypeRef *result); //添加OSStatus
SecItemUpdate(CFDictionaryRef query, CFDictionaryRef attributesToUpdate);//更新KeyChain中的ItemOSStatus
SecItemDelete(CFDictionaryRef query)//刪除KeyChain中的ItemOSStatus

這四個辦法參數比擬復雜,一旦傳錯就會招致操作KeyChain失敗,文檔中引見的比擬詳細,大家可以查查官方文檔。

/**

* Author:Jn

* GitHub:https://github.com/JnKindle

* cnblogs:http://www.cnblogs.com/JnKindle

* QQ:1294405741

*/






【iOS 獲取設備獨一標示符的辦法】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved