/XYUUID

iOS14 UUID KeyChain DeviceInfo IDFA UDID

Primary LanguageObjective-C

XYUUID

背景

  • iOS 10开始,IDFA可能会被用户限制广告追踪,导致无法正常获取IDFA,从而导致无法使用IDFA作为唯一设备标识

XYUUID的优点

  • API简单
  • 使用了最新的iOS 14 API来获取IDFA
  • 具有不同持久性级别的通用唯一标识符

uuidForDevice的有点

  • 较长的时效性
  • 较长的存储性
  • 较低的冲突率
  • 较低的漂移率

API

获取不同持久化级别的UUID

/// 随机UUID,此值每次都会刷新
+ (NSString *)uuid;

/// 安装UUID,每次重新安装,此值会刷新
+ (NSString *)uuidForInstall;

/// 开启应用UUID,每次开启应用,此值会刷新
+ (NSString *)uuidForAppOpen;

/// IDFA,开启关闭授权,此值会刷新
+ (NSString *)uuidForIDFA;

/// IDFV
+ (NSString *)uuidForIDFV;

/// 设备信息UUID,根据设备信息生成,能维持一段时间内不变
+ (NSString *)uuidForDeviceInfo;

/// 钥匙串UUID,卸载应用保持不变
+ (NSString *)uuidForKeychain;

/// 设备UUID,设备唯一标识符
+ (NSString *)uuidForDevice;

持久化级别

UUID App relaunch Reset Advertising Identifier App reinstall System reboot System upgrade System reset
uuid
uuidForInstall
uuidForAppOpen
uuidForIDFA
uuidForIDFV
uuidForDeviceInfo
uuidForKeychain
uuidForDevice