iOS 獲取裝置或系統資訊

2021-07-11 01:35:53 字數 1618 閱讀 1793

獲取當前裝置的型別 比如iphone5s等

引入標頭檔案:

#import "sys/utsname.h"

-(nsstring*)deviceversion

獲取當前uuid  比如:f2115ca5-04d3-4eeb-9fc1-6c2e01ea8f82  (程式卸掉會刪除,從新安裝會更改此uuid,解決的問題可以把隨機的一串串行號存到keychain裡面去,這樣就可以做統計了)

[[uidevice currentdevice].identifierforvendor uuidstring]

解釋什麼是uuid: (並不是裝置的唯一標識)

uuid(universally unique identifier)是基於ios裝置上面某個單個的應用程式,只要使用者沒有完全刪除應用程式,則這個uuid在使用者使用該應用程式的時候一直保持不變。如果使用者刪除了這個應用程式,然後再重新安裝,那麼這個uuid已經發生了改變。通過呼叫[[uidevice currentdevice] identifierforvendor];方法可以獲取uuid。uuid不好的地方就是使用者刪除了你開發的程式以後,基本上你就不可能獲取之前的資料了。

解釋什麼是udid:(裝置的唯一標識)

udid(unique device identifier)是一串由40位16進製制數組成的字串,用以標識唯一的裝置,現在想通過**獲取是不可能的了,如果你想看看你裝置的udid,可以通過itunes來檢視。蘋果從ios5開始就移除了通過**訪問udid的許可權,所以碼農啊,想知道使用者裝置的udid,是不行的嘍。

那麼有沒有另外的辦法來獲取使用者裝置的唯一識別符號呢?答案是有的,當然這樣的識別符號不是蘋果隱藏的udid了,使用openudid開源**,這個**通過一些特殊的演算法,建立了每乙個裝置的唯一識別符號,你可以拿過來用來識別裝置了。

獲取裝置的系統版本 比如 9.3.1

[[uidevice currentdevice] systemversion]

另附:

首先openudid得使用

#import "openudid.h"

nsstring* openudid = [openudid value]; 爭論

: 關於這個話題的缺點大家都知道,在此就總結一下,在整個過程中都誕生過哪些方案:

此階段完美方案: 使用udid,唯一且永遠不變,能滿足我們的所有需求.

使用uuid(蘋果推薦)

使用openudid(ylechelle/openudid · github)

使用secureudid

使用廣告標示符(idfa-identifierforidentifier)(蘋果推薦,重置系統(設定程式 -> 通用 -> 還原 -> 還原位置與隱私)會重新生成)

使用vendor標示符 (idfv-identifierforvendor)

使用mac位址(gekitz/uidevice-with-uniqueidentifier-for-ios-5 路 github)

總之,此階段無完美方案......

openudid 實現的依據是 剪貼簿儲存資料 可跨應用共享,如今ios 7 已經把他經意不限制了,同乙個開發者賬號下的應用使用 openudid 做裝置唯一標識依然有效。但是不同開發者的應用所獲取的 openudid 是不一樣的。

iOS 獲取裝置系統資訊

ios 獲取裝置系統資訊 uidevice device uidevice alloc init nslog 裝置所有者的名稱 device name nslog 裝置的類別 device model nslog 裝置的的本地化版本 device localizedmodel nslog 裝置執行的...

獲取iOS裝置資訊

鑌哥就直接寫 了 獲取手機資訊 應用程式的名稱和版本號等資訊都儲存在mainbundle的乙個字典中,用下面 可以取出來 nsdictionary infodict nsbundle mainbundle infodictionary nsstring versionnum infodict obj...

iOS 獲取裝置資訊

ios 獲取裝置資訊 獲取裝置資訊,不囉嗦,直接上 uidevice idfa add adsupport.framework define kdeviceidfa asidentifiermanager sharedmanager advertisingidentifier uuidstring ...