如何獲取 iOS 裝置的唯一 ID

2021-07-23 06:27:25 字數 1035 閱讀 3648

cfuuid

每次呼叫 cfuuidcreate 系統都會返回乙個全新的唯一 id. 如果想永久儲存這個 id,需要自己處理,可以一次獲取後,存在 nsuserdefaults,keychain,pasteboard 等,下次再從這其中取出。

advertiser identifier

nsstring *adid = [[[asidentifiermanager sharedmanager] advertisingidentifier] uuidstring];

advertisingidentifier 由系統保持唯一性,同乙個裝置上所有應用獲取到 advertisingidentifier 的都是一樣的。但有兩種方法可以修改這個值,重置系統(設定 -> 通用 -> 還原 -> 抹掉所有內容和設定)或者重置廣告識別符號(設定 -> 隱私 -> 廣告 -> 還原廣告識別符號),在這兩種情況下都會生成新的advertisingidentifier,依然無法保證裝置唯一。

identifier for vendor (idfv)

nsstring *idfv = [[[uidevice currentdevice] identifierforvendor] uuidstring];

蘋果的官方文件:

在同乙個裝置上不同的 vendor 下的應用獲取到的 idfv 是不一樣的,而同乙個 vendor 下的不同應用獲取的 idfv 都是一樣的。但如果使用者刪除了這個 vendor 的所有應用,再重新安裝它們,idfv 就會被重置,和之前的不一樣,也不是裝置唯一的。

以上所有 id 都不能保證裝置唯一,有什麼方式可以獲取裝置唯一 id?

以 idfv 為例,為保證使用者在刪除應用時,取到的 idfv 仍和之前的一樣,可以借助 keychain。使用 samkeychain,可以很方便地設定 keychain。 需要注意的是, keychain 在同乙個蘋果賬號的不同裝置下是同步的,需要設定query.synchronizationmode = samkeychainquerysynchronizationmodeno;,不在裝置間同步這個值,這樣不同裝置獲取到的便是不同的 id,**如下:

iOS開發中獲取裝置唯一ID

os開發中獲取裝置唯一標識 nsuuid uuid uidevice currentdevice identifierforvendor nsstring deviceudid uuid uuidstring 轉換成 nsstring nslog uuid deviceudid 504c4de6 1...

如何獲取STM32的裝置唯一ID

在資料中對其特性的描述是 96 位的唯一裝置識別符號提供了乙個對於任何裝置和任何上下文都唯一的參考號碼。使用者永遠不能改變這些位。96 位的唯一裝置識別符號也可以以單位元組 半字 字等不同方式讀取,然後使用自定義演算法連線起來。測試demo如下 獲取產品唯一id ifdef stm32f00x h ...

UWP開發 獲取裝置唯一ID

easclientdeviceinformation deviceinfo new easclientdeviceinformation this.showdeviceinfo.items.add 裝置友好名稱 deviceinfo.friendlyname this.showdeviceinfo....