真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ios開發(fā)設(shè)備唯一標(biāo)識,iOS設(shè)備標(biāo)識

iOS.獲取設(shè)備唯一標(biāo)識符

參考文章 iOS唯一標(biāo)識符(IDFAIDFV)

為南城等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及南城網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、南城網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

依賴: AdSupport.framework

系統(tǒng)支持: iOS6及以上系統(tǒng)

獲取方式: [ASIdentifierManager sharedManager].advertisingIdentifier.UUIDString

定義: 由數(shù)字和字母組成的用來標(biāo)識唯一設(shè)備的字符串。

特點:

依賴: UIKit.framework

系統(tǒng)支持: iOS6及以上系統(tǒng)

獲取方式: [UIDevice currentDevice].identifierForVendor.UUIDString

定義: 由數(shù)字和字母組成的用來標(biāo)識唯一設(shè)備的字符串。

特點: 根據(jù)vendor的值,如果vendor相同,則返回同一字符串;如果vendor不同,則返回不同的字符串。

vendor解釋: 英文解釋為賣家,小販。根據(jù)xcode文檔解釋,正常情況下,會根據(jù)App Store提供的數(shù)據(jù)進(jìn)行判斷。但是如果app不是通過app store進(jìn)行安裝的(如企業(yè)應(yīng)用或開發(fā)調(diào)試階段),那么會根據(jù)bundle ID判斷。

判斷準(zhǔn)則:

如:com.example.app1和com.example.app2,只有最后的后綴不同,所以會產(chǎn)生相同的vendor ID

在這里,還需要注意的一點就是:如果用戶卸載了同一個vendor對應(yīng)的所有程序,然后在重新安裝同一個vendor提供的程序,此時identifierForVendor會被重置。

iOS 怎樣獲取設(shè)備唯一標(biāo)識符

 生成iOS設(shè)備唯一標(biāo)示符的方法是使用iOS設(shè)備的Media Access Control(MAC)地址。一個MAC地址是一個唯一的號碼,它是物理網(wǎng)絡(luò)層級方面分配給網(wǎng)絡(luò)適配器的。這個地址蘋果還有其他的名字,比如說是硬件地址(Hardware Address)或是Wifi地址,都是指同樣的東西。 有很多工程和框架都使用這個方法來生成唯一的設(shè)備ID。比如說ODIN。然而,蘋果并不希望有人通過MAC地址來分辨用戶,所以如果在iOS7系統(tǒng)上查詢MAC地址,它現(xiàn)在只會返回02:00:00:00:00:00。 現(xiàn)在蘋果明確的表明應(yīng)該使用-[UIDevice identifierForVendor]或是-[ASIdentifierManager advertisingIdentifier]來作為你框架和應(yīng)用的唯一標(biāo)示符。坦白的來說,應(yīng)對這些變化也不是那么的難,見以下代碼片段: NSString *identifierForVendor = [[UIDevice currentDevice].identifierForVendor UUIDString]; NSString *identifierForAdvertising = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString]; 每種方法都適配一種特別的用法: identifierForVendor對供應(yīng)商來說是唯一的一個值,也就是說,由同一個公司發(fā)行的的app在相同的設(shè)備上運行的時候都會有這個相同的標(biāo)識符。然而,如果用戶刪除了這個供應(yīng)商的app然后再重新安裝的話,這個標(biāo)識符就會不一致。 advertisingIdentifier會返回給在這個設(shè)備上所有軟件供應(yīng)商相同的 一個值,所以只能在廣告的時候使用。這個值會因為很多情況而有所變化,比如說用戶初始化設(shè)備的時候便會改變。

iOS獲取設(shè)備唯一標(biāo)識

在很多場景中,我們需要獲取設(shè)備的唯一標(biāo)識,用來做定點推送等操作,那么這時候我們就需要精準(zhǔn)到某臺手機(jī),甚至某個人,客戶端這邊就需要保證這個標(biāo)識具有唯一性,并且即使我們的APP卸載重裝了,也能夠保持不變。

在iOS5以前,大家普遍使用的是UDID,可iOS5以后蘋果就把UDID的訪問權(quán)限移除了,而且試圖訪問UDID的程序在審核的時候很大幾率都會被拒。所以使用UDID作為唯一標(biāo)識的路就行不通了。

還有人說,UUID也可以作為唯一標(biāo)識,確實,但是,有一個不好的地方就是每次獲取設(shè)備的UUID都會是一個新的與上次不同的值,所以這個也行不通。

還有一個Open UDID,但是這個庫已經(jīng)棄用了,而且這個值在APP卸載重裝后獲得的值也會不同。

此外,廣告標(biāo)志符IDFA,也曾被人用作唯一標(biāo)識,但是這個在重置系統(tǒng)或者還原廣告標(biāo)志符后獲取到的值也會不同。

那么,我們又將如何獲取iOS設(shè)備的唯一標(biāo)識呢?

解決方案:

在APP第一次運行的時候,使用keychain存儲一個標(biāo)識,然后在接下來訪問的時候直接從keychain中取。這樣做的好處在于,keychain中的數(shù)據(jù)會被同步到iCloud中,即使刪除了應(yīng)用也會存在。但是這樣做也有一個不好的地方,就是如果多臺手機(jī)使用了同一個iCloud賬號登錄,那么這個唯一標(biāo)識將毫無意義。

不過,話又說回來,任何一種技術(shù)的實現(xiàn)都有自己的應(yīng)用場景,比如上面這個既然是同一個iCloud賬號就看做是同一個賬號。所以,如何標(biāo)記iOS設(shè)備還得看具體的需求。

iOS-用UUID+KeyChain實現(xiàn)設(shè)備唯一標(biāo)識

設(shè)備唯一標(biāo)識UDID被棄用后的一種替代方法,生成一個隨機(jī)數(shù)--UUID,并用KeyChain存儲,這樣就可以保證程序卸載重裝時,這個UUID不變,這UUID就可以作為我們的設(shè)備唯一標(biāo)識。

注意 : 刷機(jī) 或者 升級系統(tǒng) 后的情況,UUID還是會改變的。

先導(dǎo)入QCUUID.h

如何獲取 iOS 設(shè)備的唯一 ID

凡是接觸過iOS的開發(fā)者都清楚每一臺iOS設(shè)備都有一個唯一的識別號:UDID,這個40位的字符串是你的設(shè)備區(qū)別于其他任何一臺設(shè)備的唯一標(biāo)識。

這個字符串用處非常大,可以把它作為用戶的唯一ID,跳過用戶登陸這一步,直接有效并且安全地與數(shù)據(jù)庫中的用戶記錄進(jìn)行綁定。

雖然UDID本身并不含有任何用戶信息,但是由于應(yīng)用開發(fā)者可以將UDID與服務(wù)器上用戶信息進(jìn)行綁定,從而帶來了諸多隱私泄漏等問題,所以蘋果最終還是拒絕開發(fā)者訪問UDID的官方接口,建議開發(fā)者使用CFUUID來代替UDID。CFUUID有很多問題,如果從一臺設(shè)備將系統(tǒng)備份到另一個設(shè)備,兩個設(shè)備就會擁有相同的CFUUID,如果從臨時文件中備份系統(tǒng),就會出現(xiàn)一個設(shè)備中出現(xiàn)不同的CFUUID,但是盡管如此,CFUUID還是所有UDID替代品中最靠譜的一個。

除此之外,一些第三方開發(fā)者也基于CFUUID包裝了對用戶更友好的類,OpenUDID是開發(fā)者使用的比較廣泛的一個。

對于AIR開發(fā)者來說,僅此還是不夠的。今天我給大家開放一個基于OpenUDID的ANE,使用它可以在AIR項目中通過ActionScript接口來獲得設(shè)備的OpenUDID。

AS類OpenUDID是一個靜態(tài)類,它只有一個靜態(tài)屬性UDID,使用方法用一行代碼表示如下:

var id:String = OpenUDID.UDID;

iOS獲取設(shè)備唯一標(biāo)識和UUID方案

以下獲取 uuidString 的方法,每次重啟都會改變。

但是項目的要求是不變,并且刪除app 只有也有有保留的需求。顯然這個無法滿足我們的需求。

使用KeyChain保存到系統(tǒng)鑰匙串中,然后再去獲取相應(yīng)的值,就可以保證刪除app新裝的app也能獲取到第一次安裝存儲的值。顯然是可以滿足我們的需求的。

下面使用 KeychainAccess 的第三方類庫來實現(xiàn)。

開箱即用!

使用方法:

大功告成!


本文題目:ios開發(fā)設(shè)備唯一標(biāo)識,iOS設(shè)備標(biāo)識
標(biāo)題網(wǎng)址:http://weahome.cn/article/dscpcco.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部