Swift IDFV + KeyChain 保存设备唯一标识(卸载重装不变)

IDFV - Identifier For Vendor(应用开发商标识符)

let idfv =  UIDevice.current.identifierForVendor

官方解释:a UUID that may be used to uniquely identify the device, same across apps from a single vendor.
翻译:"可用于唯一标识设备的UUID,同一供应商的应用程序。"
这里的Vendor就是应用开发商,通过CFBundleIdentifier(DNS反转格式)的前两部分生成。例如:com.cjh.one和com.cjh.two得到的IDFV是一样的。如果用户将属于此Vendor的所有应用卸载,则IDFV的值会被重置,即使再重装此Vendor的应用,IDFV的值也和之前不同。
适用于对内:例如分析用户在应用内的行为等。

IDFA:广告追踪

广告标示符,在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的。但好在Apple默认是允许追踪的,而且一般用户都不知道有这么个设置,所以基本上用来监测推广效果,是戳戳有余了。
它是iOS 6中另外一个新的方法,提供了一个方法advertisingIdentifier,通过调用该方法会返回一个NSUUID实例,最后可以获得一个UUID,由系统存储着的。
不过即使这是由系统存储的,但是有几种情况下,会重新生成广告标示符。如果用户完全重置系统((设置程序 -> 通用 -> 还原 -> 还原位置与隐私) ,这个广告标示符会重新生成。另外如果用户明确的还原广告(设置程序-> 通用 -> 关于本机 -> 广告 -> 还原广告标示符) ,那么广告标示符也会重新生成。
关于广告标示符的还原,有一点需要注意:如果程序在后台运行,此时用户“还原广告标示符”,然后再回到程序中,此时获取广 告标示符并不会立即获得还原后的标示符。必须要终止程序,然后再重新启动程序,才能获得还原后的广告标示符。
所以IDFA也不可以作为获取唯一标识的方法,来识别用户

我采用的办法(IDFV + keyChain(钥匙串)使用)不考虑刷机情况

  1. 在podfile 里面加入

pod 'SAMKeychain'

  1. 控制台执行 pod install安装
  2. command + n 新建Swift File ,自定义个名字,比如DeviceModelInfo
    image.png
import Foundation
import UIKit
//MARK: - UIDevice扩展

let appAccountKey = "appAccountKey"
public extension UIDevice {
/**
        从钥匙串读取idfv
     */
    var keychainIdfv: String {
        
        let idfv = identifierForVendor?.uuidString
        // 说明以前存过
        let lastKeyChianIdfv = SAMKeychain.password(forService: AppInfo.bundleIdentifier, account: appAccountKey)
        if lastKeyChianIdfv?.count ?? 0 > 0 {
            
            return lastKeyChianIdfv ?? ""
        }else {
            // 存到钥匙串里
            SAMKeychain.setPassword(idfv ?? "", forService: AppInfo.bundleIdentifier, account: appAccountKey)
        }
        return idfv ?? ""
    }
}

调用:

let keychainIdfv = UIDevice.current.keychainIdfv
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Rdata的保存与加载save/load Error in load(immune.combined) : 'fi...
    PhageNanoenzyme阅读 1,219评论 0 0
  • 你看到的世界就是你以为的世界,幸运自己学了心理学,虽然是学渣,但是给我一些方面的启蒙,想到换工作,换个能够接触更多...
    可爱鱼鱼阅读 108评论 0 0
  • 夕照陷林深,树尖立霞云 道旁花尽落,晚香逐华裙 步缓屐无痕,风微动发轻 气定浮梦影,低眉软语空 息冷催裳容,可怜思...
    Bohemian_e6af阅读 369评论 0 1
  • 我们听过无数的道理,却仍旧过不好这一生——《后会无期》 什么都去尝试,但并没有精通,所以这些东西只是停留在浅...
    心作废阅读 223评论 0 0
  • 2004年4月,老陈拿起画架到了雍和宫戏楼胡同。 戏楼胡同分为东西面,各有牌楼。此幅画是东牌楼。 戏楼胡同不长,位...
    安妮吖长点心阅读 432评论 0 11