㈠ ios 怎麼在程序里獲取唯一標識
生成iOS設備唯一標示符的方法是使用iOS設備的Media Access Control(MAC)地址。一個MAC地址是一個唯一的號碼,它是物理網路層級方面分配給網路適配器的。這個地址蘋果還有其他的名字,比如說是硬體地址(Hardware Address)或是Wifi地址,都是指同樣的東西。
有很多工程和框架都使用這個方法來生成唯一的設備ID。比如說ODIN。然而,蘋果並不希望有人通過MAC地址來分辨用戶,所以如果在iOS7系統上查詢MAC地址,它現在只會返回02:00:00:00:00:00。
現在蘋果明確的表明應該使用-[UIDevice identifierForVendor]或是-[ASIdentifierManager advertisingIdentifier]來作為你框架和應用的唯一標示符。坦白的來說,應對這些變化也不是那麼的難,見以下代碼片段:
NSString *identifierForVendor = [[UIDevice currentDevice].identifierForVendor UUIDString];
NSString *identifierForAdvertising = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
每種方法都適配一種特別的用法:
identifierForVendor對供應商來說是唯一的一個值,也就是說,由同一個公司發行的的app在相同的設備上運行的時候都會有這個相同的標識符。然而,如果用戶刪除了這個供應商的app然後再重新安裝的話,這個標識符就會不一致。
advertisingIdentifier會返回給在這個設備上所有軟體供應商相同的 一個值,所以只能在廣告的時候使用。這個值會因為很多情況而有所變化,比如說用戶初始化設備的時候便會改變。
㈡ 獲取一台設備唯一標識的方法有哪些,ios
藉助PP助手查看設備標識信息教程:首先在電腦上安裝好PP助手1、將iPhone/iPad/iPod連接電腦端回的PP助手,點擊答設備名稱→【查看更多信息】。2、在彈出來的設備詳細信息框里,就可以查看到設備標識 ,若要復制該信息,可以點擊下方「在記事本中打開」。3、用記事本打開後即可選擇需要復制的信息進行復制操作了。
㈢ iOS之怎樣獲取藍牙設備的唯一標識
你好。你用[:niloptions:nil];搜索一下可以連接的設備再通過CBPeripheral的identifier屬性就獲得你需要的UUID了
㈣ ios獲取設備唯一標識影響上線嗎
獲取唯一標識現在多採用UUID+KeyChain的方式
可以試試
pod 'SAMKeychain'
㈤ 如何獲取IPhone唯一碼
設置——通用——關於本機——序列號就是唯一碼
㈥ ios系統如何不讓程序讀取設備信息 設備碼這些的
IOS系統中,獲取設備唯一標識的方法有很多:
一.UDID(Unique Device Identifier)
UDID的全稱是Unique Device Identifier,顧名思義,它就是蘋果IOS設備的唯一識別碼,它由40個字元的字母和數字組成。
二.UUID(Universally Unique Identifier)
UUID是Universally Unique Identifier的縮寫,中文意思是通用唯一識別碼.
三.MAC Address
四.OPEN UDID
五.廣告標示符(IDFA-identifierForIdentifier)
六.Vindor標示符 (IDFV-identifierForVendor)
Vendor是CFBundleIdentifier(反轉DNS格式)的前兩部分。來自同一個運營商的應用運行在同一個設備上,此屬性的值是相同的;不同的運營商應用運行在同一個設備上值不同。
經測試,只要設備上有一個tencent的app,重新安裝後的identifierForVendor值不變,如果tencent的app全部刪除,重新安裝後的identifierForVendor值改變。
但是很不幸,上面所有這些表示設備唯一號的標識,在IOS7中要麼被禁止使用,要麼重新安裝程序後兩次獲取的標識符不一樣。
由於IOS系統存儲的數據都是在sandBox裡面,一旦刪除App,sandBox也不復存在。好在有一個例外,那就是keychain(鑰匙串)。
通常情況下,IOS系統用NSUserDefaults存儲數據信息,但是對於一些私密信息,比如密碼、證書等等,就需要使用更為安全的keychain了。
keychain里保存的信息不會因App被刪除而丟失。所以,可以利用這個keychain這個特點來保存設備唯一標識。
那麼,如何在應用里使用使用keyChain呢,我們需要導入Security.framework ,keychain的操作介面聲明在頭文件SecItem.h里。
直接使用SecItem.h里方法操作keychain,需要寫的代碼較為復雜,我們可以使用已經封裝好了的工具類KeychainItemWrapper來對keychain進行操作。
KeychainItemWrapper是apple官方例子「GenericKeychain」里一個訪問keychain常用操作的封裝類,在官網上下載了GenericKeychain項目後,
只需要把「KeychainItemWrapper.h」和「KeychainItemWrapper.m」拷貝到我們項目,並導入Security.framework 。KeychainItemWrapper的用法:
/** 初始化一個保存用戶帳號的KeychainItemWrapper */
KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"Account Number"
accessGroup:@"YOUR_APP_ID_HERE.com.yourcompany.AppIdentifier"];
//保存數據
[wrapper setObject:@"<帳號>" forKey:(id)kSecAttrAccount];
[wrapper setObject:@"<帳號密碼>" forKey:(id)kSecValueData];
//從keychain里取出帳號密碼
NSString *password = [wrapper objectForKey:(id)kSecValueData];
//清空設置
[wrapper resetKeychainItem];
其中方法「- (void)setObject:(id)inObject forKey:(id)key;」里參數「forKey」的值應該是Security.framework 里頭文件「SecItem.h」里定義好的key,用其他字元串做key程序會出錯!
㈦ ios用戶唯一標識 現在有沒有什麼好的方法獲得iOS設備的唯一標示
1.已禁用-[UIDevice uniqueIdentifier]
蘋果總是把用戶的隱私看的很重要。-[UIDevice uniqueIdentifier]在iOS5實際在iOS5的時候已經被遺棄了,但是iOS7中已經完全的禁用了它。Xcode5甚至不會允許你編譯包含了指引到-[UIDevice uniqueIdentifier]的app。此外,iOS7之前的使用了-[UIDevice uniqueIdentifier] 的app如果在iOS7上運行,它不會返回設備的UUID,而是會返回一串字元串,以FFFFFFFF開頭,跟著-[UIDevice identifierForVendor]的十六進制值。
3.MAC地址不能再用來設別設備
還有一個生成iOS設備唯一標示符的方法是使用iOS設備的Media Access Control(MAC)地址。一個MAC地址是一個唯一的號碼,它是物理網路層級方面分配給網路適配器的。這個地址蘋果還有其他的名字,比如說是硬體地址(Hardware Address)或是Wifi地址,都是指同樣的東西。
有很多工程和框架都使用這個方法來生成唯一的設備ID。比如說ODIN。然而,蘋果並不希望有人通過MAC地址來分辨用戶,所以如果你在iOS7系統上查詢MAC地址,它現在只會返回02:00:00:00:00:00。
現在蘋果明確的表明你應該使用-[UIDevice identifierForVendor]或是-[ASIdentifierManager advertisingIdentifier]來作為你框架和應用的唯一標示符。坦白的來說,應對這些變化也不是那麼的難,見以下代碼片段:
NSString *identifierForVendor = [[UIDevice currentDevice].identifierForVendor UUIDString];
NSString *identifierForAdvertising = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
每種方法都適配一種特別的用法:
identifierForVendor對供應商來說是唯一的一個值,也就是說,由同一個公司發行的的app在相同的設備上運行的時候都會有這個相同的標識符。然而,如果用戶刪除了這個供應商的app然後再重新安裝的話,這個標識符就會不一致。
advertisingIdentifier會返回給在這個設備上所有軟體供應商相同的 一個值,所以只能在廣告的時候使用。這個值會因為很多情況而有所變化,比如說用戶初始化設備的時候便會改變。
㈧ 如何唯一確定一台iOS設備
凡是接觸過iOS的開發者都清楚每一台iOS設備都有一個唯一的識別號:UDID,這個40位的字元串是你的設備區別於其他任何一台設備的唯一標識。 這個字元串用處非常大,可以把它作為用戶的唯一ID,跳過用戶登陸這一步,直接有效並且安全地與資料庫中的用戶記錄進行綁定。 雖然UDID本身並不含有任何用戶信息,但是由於應用開發者可以將UDID與伺服器上用戶信息進行綁定,從而帶來了諸多隱私泄漏等問題,所以蘋果最終還是拒絕開發者訪問UDID的官方介面,建議開發者使用CFUUID來代替UDID。CFUUID有很多問題,如果從一台設備將系統備份到另一個設備,兩個設備就會擁有相同的CFUUID,如果從臨時文件中備份系統,就會出現一個設備中出現不同的CFUUID,但是盡管如此,CFUUID還是所有UDID替代品中最靠譜的一個。 除此之外,一些第三方開發者也基於CFUUID包裝了對用戶更友好的類,OpenUDID是開發者使用的比較廣泛的一個。 對於AIR開發者來說,僅此還是不夠的。今天我給大家開放一個基於OpenUDID的ANE,使用它可以在AIR項目中通過ActionScript介面來獲得設備的OpenUDID。 AS類OpenUDID是一個靜態類,它只有一個靜態屬性UDID,使用方法用一行代碼表示如下: var id:String = OpenUDID.UDID;
㈨ 如何獲取 iOS 設備的唯一 ID
凡是接觸過iOS的開發者都清楚每一台iOS設備都有一個唯一的識別號:UDID,這個40位的字專符串是你的設屬備區別於其他任何一台設備的唯一標識。
這個字元串用處非常大,可以把它作為用戶的唯一ID,跳過用戶登陸這一步,直接有效並且安全地與資料庫中的用戶記錄進行綁定。
雖然UDID本身並不含有任何用戶信息,但是由於應用開發者可以將UDID與伺服器上用戶信息進行綁定,從而帶來了諸多隱私泄漏等問題,所以蘋果最終還是拒絕開發者訪問UDID的官方介面,建議開發者使用CFUUID來代替UDID。CFUUID有很多問題,如果從一台設備將系統備份到另一個設備,兩個設備就會擁有相同的CFUUID,如果從臨時文件中備份系統,就會出現一個設備中出現不同的CFUUID,但是盡管如此,CFUUID還是所有UDID替代品中最靠譜的一個。
除此之外,一些第三方開發者也基於CFUUID包裝了對用戶更友好的類,OpenUDID是開發者使用的比較廣泛的一個。