苹果ios多开怎么识别唯一标识

苹果ios多开怎么识别唯一标识,第1张

IOS系统中,获取设备唯一标识的方法有很多:

一UDID(Unique Device Identifier)

UDID的全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成。

二UUID(Universally Unique Identifier)

UUID是Universally Unique Identifier的缩写,中文意思是通用唯一识别码

三MAC Address

四OPEN UDID

广告标示符(IDFA-identifierForIdentifier)

六Vindor标示符 (IDFV-identifierForVendor)

Vendor是CFBundleIdentifier(反转DNS格式)的前两部分。来自同一个运营商的应用运行在同一个设备上,此属性的值是相同的;不同的运营商应用运行在同一个设备上值不同。

经测试,只要设备上有一个tencent的app,重新安装后的identifierForVendor值不变,如果tencent的app全部删除,重新安装后的identifierForVendor值改变。

但是很不幸,上面所有这些表示设备唯一号的标识,在IOS7中要么被禁止使用,要么重新安装程序后两次获取的标识符不一样。

由于IOS系统存储的数据都是在sandBox里面,一旦删除App,sandBox也不复存在。好在有一个例外,那就是keychain(钥匙串)。

通常情况下,IOS系统用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码、证书等等,就需要使用更为安全的keychain了。

keychain里保存的信息不会因App被删除而丢失。所以,可以利用这个keychain这个特点来保存设备唯一标识。

那么,如何在应用里使用使用keyChain呢,我们需要导入Securityframework ,keychain的 *** 作接口声明在头文件SecItemh里。

直接使用SecItemh里方法 *** 作keychain,需要写的代码较为复杂,我们可以使用已经封装好了的工具类KeychainItemWrapper来对keychain进行 *** 作。

KeychainItemWrapper是apple官方例子“GenericKeychain”里一个访问keychain常用 *** 作的封装类,在官网上下载了GenericKeychain项目后,

只需要把“KeychainItemWrapperh”和“KeychainItemWrapperm”拷贝到我们项目,并导入Securityframework 。KeychainItemWrapper的用法:

/ 初始化一个保存用户帐号的KeychainItemWrapper /

KeychainItemWrapper wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"Account Number"

accessGroup:@"YOUR_APP_ID_HEREcomyourcompanyAppIdentifier"];

//保存数据

[wrapper setObject:@"<帐号>" forKey:(id)kSecAttrAccount];

[wrapper setObject:@"<帐号密码>" forKey:(id)kSecValueData];

//从keychain里取出帐号密码

NSString password = [wrapper objectForKey:(id)kSecValueData];

//清空设置

[wrapper resetKeychainItem];

其中方法“- (void)setObject:(id)inObject forKey:(id)key;”里参数“forKey”的值应该是Securityframework 里头文件“SecItemh”里定义好的key,用其他字符串做key程序会出错!

UDID它是设备标识符,可以说是苹果手机提身份z号码。是唯一的。

1、要查看UDID,首先要有iTunes或者苹果设备的相关驱动。iTunes可以在苹果官网下载。如已安装,跳过此步骤。

2、打开下载安装好的iTunes软件。使用数据线将手机和电脑连接好。

3、按下面的图示进行 *** 作即可以查看到UDID

扩展资料

所谓UDID指的是设备的唯一设备识别符,移动广告商和游戏网络运营商往往需要通过UDID用来识别玩家用户,并对用户活动进行跟踪。

许多应用程序收集用户数据(例如UDID,如果应用程序被破解,伪造UDID破获的所有应用程序和开发者将永远不会知道你的UDID,你有没有被列入黑名单。

参考资料来源:百度百科:UDID

凡是接触过iOS的开发者都清楚每一台iOS设备都有一个唯一的识别号:UDID,这个40位的字符串是你的设备区别于其他任何一台设备的唯一标识。

这个字符串用处非常大,可以把它作为用户的唯一ID,跳过用户登陆这一步,直接有效并且安全地与数据库中的用户记录进行绑定。

虽然UDID本身并不含有任何用户信息,但是由于应用开发者可以将UDID与服务器上用户信息进行绑定,从而带来了诸多隐私泄漏等问题,所以苹果最终还是拒绝开发者访问UDID的官方接口,建议开发者使用CFUUID来代替UDID。CFUUID有很多问题,如果从一台设备将系统备份到另一个设备,两个设备就会拥有相同的CFUUID,如果从临时文件中备份系统,就会出现一个设备中出现不同的CFUUID,但是尽管如此,CFUUID还是所有UDID替代品中最靠谱的一个。

除此之外,一些第三方开发者也基于CFUUID包装了对用户更友好的类,OpenUDID是开发者使用的比较广泛的一个。

一:总览

iOS设备标识码

1、 device ID

2、 IMEI :iOS5之后被禁止,写在主板上,不会变化。

3、 IDFA :Identifier For Advertising,iOS独有的广告标识符。但是用户可以更改,不适用于做唯一标识。系统重置、在设置里还原广告标识符,都会更改IDFA。

IDFA是一串16进制的32位串。

IDFA是苹果iOS 6开始新增的广告标识符,英文全称是Identifier for Advertising,用于给开发者跟踪广告效果用的,可以简单理解为iPhone的设备临时身份z号,是说临时身份z号,是因为IDFA允许用户更换。iOS用户可以通过(设置-通用-还原-还原位置与隐私)更换IDFA。iOS10系统提供用户禁止广告跟踪功能,用户勾选了这个功能后,应用程序讲无法取读到设备的IDFA。

IDFA是目前苹果生态广告交易的主要标识,一般跟广告商 交易一个用户后,广告商 需要给你提供用户的 IDFA作为凭证。主流的广告平台广点通、新浪粉丝通对账都是基于IDFA的

4、 MAC地址 :硬件标识符,包括WiFi mac地址和蓝牙mac地址。iOS 7 之后被禁止(同时禁止的还有OpenUDID)。

MAC地址在网络上用来区分设备的唯一性,接入网络的设备都有一个MAC地址,他们肯定都是不同的,是唯一的。一部iPhone上可能有多个MAC地址,包括WIFI的、SIM的等,但是iTouch和iPad上就有一个WIFI的,因此只需获取WIFI的MAC地址就好了,也就是en0的地址。MAC地址就如同我们身份z上的身份z号码,具有全球唯一性。但在iOS7之后,如果请求Mac地址都会返回一个固定值。

5、 UDID :用来标示设备的唯一性 。iOS 6 之后被禁止获取系统原生的UDID,但可以通过uuid,写入到钥匙串中,从而获得自定义的UDID(非系统原生),即使用户重装APP,只要每次都取这个钥匙串返回,就是不变的。

UDID是由40个字符的字母和数据组成

Unique Device Indentifier,用户不能更改,适合做唯一标识。但是苹果禁止应用获取UDID。

6、 UUID :APP重装后会变化

Android设备标识码

1、 Device ID 又叫做设备ID,可以用系统提供的TelephonyManager服务来获取,具有唯一性。其中又包括IMEI和MEID/ESN。

2、 IMEI :GSM设备返回的,并且是写在主板上的,重装APP不会改变IMEI。Android 60以上系统需要用户授予read_phone_state权限,如果用户拒绝就无法获得。

3、 MAC地址 :硬件标识符,包括WiFi mac地址和蓝牙mac地址。Android 60之后被禁止,若获取则会被判定为有害应用。

4、 MEID/ESN :CDMA设备返回的,一般不使用。

5、 UDID :用来标示设备的唯一性。获取UUID后,写入so文件生成UDID。即使APP重装,值也不变,除非root手机(普通用户做不到)

6、 UUID :APP重装之后会改变

---未整理完,待续---

IMEI:International Mobile Equipment Identity,国际移动设备身份码的缩写。是由15位数字组成的“电子串号”,它与每台手机一一对应,每个IMEI在世界上都是唯一的。

UDID:Unique Device Identifier,唯一设备标识码。

UUID:Universally Unique Identifier,通用唯一识别码。目前最广泛应用的UUID,是微软公司的全局唯一标识符GUID。其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。

2-Link Local Address FE80::/10 (前10位以FE80EUI-64格式:扩展惟一标识符在IPV6中,无状态自动配置地址自动生成,叫做EUI-64(或者64-位扩展唯一标识)

UDID的全称是Unique

Device

Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成。在很多需要限制一台设备一个账号的应用中经常会用到。在iOS5中可以获取到设备的UDID,后来被苹果禁止了。

IDFA(identifierForIdentifier)

广告标示符,适用于对外:例如广告推广,换量等跨应用的用户追踪等。

是iOS

6中另外一个新的方法,提供了一个方法advertisingIdentifier,通过调用该方法会返回一个NSUUID实例,最后可以获得一个UUID,由系统存储着的。不过即使这是由系统存储的,但是有几种情况下,会重新生成广告标示符。如果用户完全重置系统((设置程序

->

通用

->

还原

->

还原位置与隐私)

,这个广告标示符会重新生成。另外如果用户明确的还原广告(设置程序->

通用

->

关于本机

->

广告

->

还原广告标示符)

,那么广告标示符也会重新生成。关于广告标示符的还原,有一点需要注意:如果程序在后台运行,此时用户“还原广告标示符”,然后再回到程序中,此时获取广

告标示符并不会立即获得还原后的标示符。必须要终止程序,然后再重新启动程序,才能获得还原后的广告标示符。

在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的,用户可以在

设置|隐私|广告追踪

里重置此id的值,或限制此id的使用,故此id有可能会取不到值,但好在Apple默认是允许追踪的,而且一般用户都不知道有这么个设置,所以基本上用来监测推广效果,是戳戳有余了。

注意:由于idfa会出现取不到的情况,故绝不可以作为业务分析的主id,来识别用户。

IDFV(identifierForVendor)

Vindor标示符,适用于对内:例如分析用户在应用内的行为等。

是给Vendor标识用户用的,每个设备在所属同一个Vender的应用里,都有相同的值。其中的Vender是指应用提供商,但准确点说,是通过BundleID的DNS反转的前两部分进行匹配,如果相同就是同一个Vender,例如对于comsomecompanyappone,comsomecompanyapptwo

这两个BundleID来说,就属于同一个Vender,共享同一个idfv的值。和idfa不同的是,idfv的值是一定能取到的,所以非常适合于作为内部用户行为分析的主id,来标识用户,替代OpenUDID。

注意:如果用户将属于此Vender的所有App卸载,则idfv的值会被重置,即再重装此Vender的App,idfv的值和之前不同。

以上就是关于苹果ios多开怎么识别唯一标识全部的内容,包括:苹果ios多开怎么识别唯一标识、什么是UDID怎么查询iPhone手机UDID、如何获取 iOS 设备的唯一 ID等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9352993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存