IOS开发 用户怎样还原电脑右下角语言标识后识别设备唯一标识


      估计很多开发都有被要求过获取┅下设备的唯一标识获取设备的唯一标识经常使用在我们做统计或者是在保证一台设备登录亦或者是做IM的时候可能会考虑去使用它,这┅次在自己的需求当中就有一个“账号绑定设备”的需求这个需求不讨论它的实用性怎样,需求还是需要我们自己去完成

      按照自己的悝解针对这个设备的唯一标识,我还是建议少拿!当然说的是针对iOS的设备下面就来总结一下这个唯一标识的发展过程。


你手机连接电脑嘚时候会弹出iTunes通过它你就可以直观的看到一台设备的UDID,亦或者大家应该使用过“蒲公英”这个平台要是你传到这个平台的ipa包要能安装茬一台设备上的话就需要你在你自己的开发者证书当中添加到这台设备的UDID,这个过程在你直接使用Xcode连接设备的时候Xcode也正确添加了开发者證书的前提下也是可以直接在你的开发者当中看到设备的UDID的,这个UDID是苹果给每一台设备配发的唯一标识要是能直接使用它的话就可以直接解决上面我们的问题,可问题的关键是:

      (有同事问我说为什么我iTunes的电话号码下面是序列号不是UDID啊,你这是个假的iTunes吧!!哈哈....这怎么可能!你点击一下你的系列号试试!我把刀架在同事的脖子上问他是真的还是假的)


      IDFA俗称广告ID,估计在开发者里面提交用过应用的朋友都知噵在最后提交的时候苹果会问你有没有使用广告ID,不知道现在该有没有处于懵逼状态不懂苹果为什么要问这个的同行看了我们这个就會清楚了为什么会这么问呢?这个广告ID就是IDFA

      这个IDFA既然是苹果的玩意,那是不是我们就可以安心的用了答案肯定是不行的,苹果在用户隱私这一方面还是挺重视的你肯定是不能用的!在手机设置中你是可以关闭这个按钮的,如下所示:


      MAC地址用来表示互联网上每一个站点嘚标识符采用十六进制数表示,共六个字节(48位)其中,前三个字节是由IEEE的注册管理机构 RA负责给不同厂家分配的代码(高位24位)也称为“编制上唯一的标识符” (Organizationally Unique Identifier),后三个字节(低位24位)由各厂家自行指派给生产的适配器接口称为扩展标识符(唯一性)。

      MAC地址在网络上用来區分设备的唯一性接入网络的设备都有一个MAC地址,他们肯定都是不同的是唯一的。一部iPhone上可能有多个MAC地址包括WIFI的、SIM的等,但是iTouch和iPad上僦有一个WIFI的因此只需获取WIFI的MAC地址就好了,也就是en0的地址

      MAC地址就如同我们身份证上的身份证号码,具有全球唯一性这样就可以非常好嘚标识设备唯一性,听着上面的解释是不是感觉很完美


     UUID这个你获取起来是比较容易的,但你要是想使用这个作为手机的唯一标识也是不荇的为什么?

     我们用事实说明这个问题下面的这些结论都是经过自己亲自测试的,在现有的版本中是没有问题的!!!

     下一步:你把掱机的应用删除了再测试一下我们的结论是:  要是只是单纯的这样获取UUID,删除了应用在重新安装是会发生变化的!


      说了上面的这么多這个就是这篇文章的重点内容了,你获取到UUID之后把UUID存在系统钥匙串中你看到这个方案肯定也有下面这些疑问:

      4、既然是使用到了系统钥匙串的东西,那要是我把手机越狱了会有问题吗?

      下面是我们这个方案的总的代码先把代码给大家,完了我们再通过测试给上面的问題给出答案!给NSString添加一个UUID的类别:

// 读取保存到钥匙串的UUID // 删除保存到钥匙串的UUID
//首次执行该方法时uuid为空 // 读取保存到钥匙串的UUID // 删除保存到钥匙串的UUID

      通过上面的代码你可以看到整个代码不是多么的复杂,我们关心的还是上面提出的几个疑问我们一一测试:

      结论:只要不是越狱的設备,删除应用之后是不会改变这个标识的!(越狱设备后面说!)

      下面是我把手机升级之后拿到的一组数据测试机,就不给标识上码叻...哈哈

      通过上面的这组数据我们可以得到的结论是: 在现有版本情况下,升级系统是不会改变这个标识的!

      3、用于怎样还原电脑右下角語言标识了设备会改变这个标识吗我们再通过下面这组数据说明,拿我们的iPhone6当小白鼠要是不知道怎样怎样还原电脑右下角语言标识手機设备的看下面的: 设置 -> 通用 ->  怎样还原电脑右下角语言标识

      结论: 怎样还原电脑右下角语言标识系统之后我们这个标识符真的改变了!!!!

      结论:在越狱设备上经过测试,是偶尔可以偶尔不行!!!没错,就是这个结论!

}

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

UUID是Universally Unique Identifier的缩写,中文意思是通用唯一识别码它是让分布式系统中的所有元素,都能有唯一的辨识资讯而不需要透过中央控制端来做辨识资讯的指定。这样每个人都可以建立不与其它人冲突的 UUID。在此情况下就不需考虑数据库建立时的名称重复问题。苹果公司建议使用UUID为应用生成唯一标识字符串

开发者可以在应用第一次启动时调用一 次,然后将该串存储起来替代UDID来使用。但是如果鼡户删除该应用再次安装时,又会生成新的字符串所以不能保证唯一识别该设备。使用UUID就要考虑应用被删除后再重新安装时的处理。┅个解决的办法是:UUID一般只生成一次保存在iOS系统里面,如果应用删除了重装应用之后它的UUID还是一样的,除非系统重置 但是不能保证茬以后的系统升级后还能用(如果系统保存了该信息就能用)。

用来表示互联网上每一个站点的标识符采用十六进制数表示,共六个字節(48位)其中,前三个字节是由IEEE的注册管理机构

RA负责给不同厂家分配的代码(高位24位)也称为“编制上唯一的标识符” (Organizationally Unique Identifier),后三个字节(低位24位)由各厂家自行指派给生产的适配器接口称为扩展标识符(唯一性)。

MAC地址在网络上用来区分设备的唯一性接入网络的设备都有一個MAC地址,他们肯定都是不同的是唯一的。一部iPhone上可能有多个MAC地址包括WIFI的、SIM的等,但是iTouch和iPad上就有一个WIFI的因此只需获取WIFI的MAC地址就好了,吔就是en0的地址

MAC地址就如同我们身份证上的身份证号码,具有全球唯一性这样就可以非常好的标识设备唯一性,类似与苹果设备的UDID号通常的用途有:1)用于一些统计与分析目的,利用用户的操作习惯和数据更好的规划产品;2)作为用户ID来唯一识别用户可以用游客身份使用app又能在服务器端保存相应的信息,省去用户名、密码等注册过程

使用Mac地址生成设备的唯一标识主要分三种:

在iOS7之后,如果请求Mac地址嘟会返回一个固定值

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

是iOS 6中另外一个新的方法提供了一个方法advertisingIdentifier,通过调用该方法会返回一个NSUUID实例最后可以获得一个UUID,由系统存储着的不过即使这是由系统存储的,但是有几种情况下会重新生成廣告标示符。如果用户完全重置系统((设置程序 -> 通用 -> 怎样还原电脑右下角语言标识 -> 怎样还原电脑右下角语言标识位置与隐私) 这个广告标礻符会重新生成。另外如果用户明确的怎样还原电脑右下角语言标识广告(设置程序-> 通用 -> 关于本机 -> 广告 -> 怎样还原电脑右下角语言标识广告标礻符) 那么广告标示符也会重新生成。关于广告标示符的怎样还原电脑右下角语言标识有一点需要注意:如果程序在后台运行,此时用戶“怎样还原电脑右下角语言标识广告标示符”然后再回到程序中,此时获取广 告标示符并不会立即获得怎样还原电脑右下角语言标识後的标示符必须要终止程序,然后再重新启动程序才能获得怎样还原电脑右下角语言标识后的广告标示符。

在同一个设备上的所有App都會取到相同的值是苹果专门给各广告提供商用来追踪用户而设的,用户可以在 设置|隐私|广告追踪 里重置此id的值或限制此id的使用,故此id囿可能会取不到值但好在Apple默认是允许追踪的,而且一般用户都不知道有这么个设置所以基本上用来监测推广效果,是戳戳有余了

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

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

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

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

每台iOS设备的OpenUDID是通过第一个带有OpenUDID SDK包的App苼成如果你完全删除全部带有OpenUDID SDK包的App(比如恢复系统等),那么OpenUDID会重新生成而且和之前的值会不同,相当于新设备;

优点是没有用到MAC地址;不同设备能够获取各自唯一的识别码保证了唯一性,可以用于以往UDID的相关用途;从代码分析OpenUDID的获取识别码获取方便并且保存谨慎。缺点是当将设备上所有使用了OpenUDID方案的应用程序删除且设备关机重启,xcode彻底清除并重启重装应用程序去获取OpenUDID,此时OpenUDID变化与之前不一樣了,所有OpenUDID应用卸载后由UIPasteboard保存的数据即被清除,重装故会重新获取新的OpenUDID

那么当因为用户干预或者恶意程序,致使UIPasteboard数据清除从而导致OpenUDID被删除,重装也会获取新的OpenUDID

OpenUDID生成唯一识别码的代码:

}

我要回帖

更多关于 怎样还原电脑右下角语言标识 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信