udid

转载自https://www.jianshu.com/p/8bc3b1d5323f

今天突然想和大家聊聊UDID和UUID的问题,虽然平时我们对这两个东西很忽视,往往也很难区分这两个东西。今天就来好好谈谈。

UDID

UDID的全名为 Unique Device Identifier :设备唯一标识符。从名称上也可以看出,UDID这个东西是和设备有关的,而且是只和设备有关的,有点类似于MAC地址。需要把UDID这个东西添加到Provisoning Profile授权文件中,也就是把设备唯一标识符添加进去,以此来识别某一台设备。

UDID是一个40位十六进制序列,我们可以使用iTunes和Xcode来获取这个值。

1 .iTunes获取UDID:
把我们的手机连上电脑,然后打开iTunes.

 

1.png

默认这个位置显示的是序列号,只要点击一下序列号的位置,就可以切换为UDID了。

2 .Xcode获取UDID:
把手机连上电脑,然后打开Xcode,选择Window-->Devices,就会显示出当前你连接上的所有设备,其中显示的Identifier就是该设备的UDID。

 

2.png

但是如果我们代码中要用到UDID,那么应该怎么办呢?很遗憾,自从iOS5之后,苹果就禁止了通过代码访问UDID,在这之前,可以使用[[UIDevice cuurrent] uniqueIdenfier]这个方法来获取某设备UDID,现在是不可能了。对于为什么要禁止访问UDID,我下面会提到。而在目前的SDK中,苹果提供了一个参数identifierForVendor来替代原来UDID的作用。通过代码实现如下:

 

NSUUID *uuid = [UIDevice currentDevice].identifierForVendor;
NSLog(@"uuid 1 = %@",uuid.UUIDString);

此时打印出的字符串UUIDString这个东西不是真正的UDID,而是一个有一点像的替代品。如同我上面所说,UDID是只和iOS设备有关的,而这个identifierForVendor是应用和设备两者都有关的,A应用安装到张三这台设备上,就会产生一个identifierForVendor(比如是:1234);A应用安装到李四这台设备上,就会产生另一个identifierForVendor(比如是:5678);B应用安装到张三这台设备上,又是一个全新的identifierForVendor(比如是:9999),B应用安装到李四这台设备上,还是一个全新的identifierForVendor(比如是:7777)。但是无论A应用安装卸载多少次,产生的是都是1234. 所以我们知道,这个identifierForVendor是一种应用加设备绑定产生的标识符,相当于是:Z(identifierForVendor) = X(某应用) + Y(某设备)。 当然,和真正的UDID的区别是显而易见的:也就是说App的开发者没有办法去区分某一台设备了,而是只能识别某个应用在某台设备上。

UUID

英文名称是:Universally Unique Identifier,翻译过来就是通用唯一标识符。是一个32位的十六进制序列,使用小横线来连接:8-4-4-4-12 。UUID在某一时空下是唯一的。比如在当前这一秒,全世界产生的UUID都是不一样的;当然同一台设备产生的UUID也是不一样的。我在很早之前的一篇博客中使用了一种现在看起来非常愚蠢的方式来获取当前的UUID,下面也有读者反映了这个情况,现在最简单获取UUID的代码如下:

 

    for (int i = 0; i < 10; i++)
    {
        NSString *uuid = [NSUUID UUID].UUIDString;
        NSLog(@"uuid 2 = %@",uuid);
    }

通过运行程序可以发现,循环10次,每一次打印的值都是不一样的,当然循环的再多,这个值永远不会出现两个一样的值。所以从某种程序上来说,UUID跟你的设备没有什么关系了。

苹果禁用UDID

在很早之前,苹果宣称如果第三方应用开发者继续分享或者使用iPhone、Mac、AppleWatch的UDID的话,那么他们的应用将会禁止上架。为什么苹果要在应用中禁止使用呢?那是因为隐私问题。比如我开发了5款App,很多用户都下载了这5款App并使用。如果我能轻易的获取这些用户的UDID,其实我能拼凑出用户的很多信息。由于UDID本身的隐私属性,之前常常用来做第三方统计和其他的目的。当然现在也有人使用MAC地址来识别设备,因为MAC地址也唯一的识别了一台设备并且不会被修改,不知道以后苹果会对此如何操作。以下是苹果对于禁用UDID的声明:



作者:走道牙的人
链接:https://www.jianshu.com/p/8bc3b1d5323f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

<think>好的,用户现在问的是“怎么看udid”。我需要先回顾之前的对话历史,确保这次的回答符合之前的指导方针。用户之前询问的是如何在苹果开发者网站找到Devices部分,现在他们想知道如何查看UDID。 首先,我需要确定用户的需求是什么。UDID是设备的唯一标识符,通常用于注册测试设备或应用分发。用户可能是开发者,需要将设备添加到开发者账户,以便进行测试。或者他们可能遇到了应用安装问题,需要提供UDID给开发者。 接下来,我得考虑不同的设备类型,比如iPhone/iPad、Mac、Apple Watch等,每种设备的UDID获取方法可能不同。还要考虑用户是否使用iTunes或Finder,因为不同版本的macOS有不同的方法。此外,用户可能对命令行工具比较熟悉,或者更倾向于使用第三方工具。 需要分步骤说明,确保用户能够按照指导操作。同时,要提醒用户UDID的隐私问题,避免被他人滥用。常见问题部分要涵盖无法连接设备、权限问题以及第三方工具的注意事项。 还要检查之前的回答是否已经提到过通过Xcode获取UDID,比如在添加新设备时提到的。如果有,可以在这里再次强调,但可能需要更详细的步骤。同时,是否需要提到注册设备到开发者账户后的步骤,或者用户可能只是想知道如何获取UDID,而无需进一步操作? 用户可能对技术术语不太熟悉,所以需要用简单的中文解释UDID是什么,以及为什么需要它。此外,确保所有步骤都适用于最新的iOS版本和macOS版本,避免给出过时的方法,比如旧版iTunes的操作可能已经不同。 最后,总结部分需要简明扼要,列出所有方法,并建议用户根据自身情况选择最方便的方式。同时,强调UDID的重要性,以及保管好它的必要性,防止隐私泄露。</think>以下是查看设备 **UDID(唯一设备标识符)** 的详细方法,适用于 **iPhone/iPad、Mac、Apple Watch** 等设备: --- ### **1. 通过 Xcode 查看(推荐)** 1. 用数据线将设备连接到 Mac。 2. 打开 **Xcode** → 顶部菜单栏选择 **Window → Devices and Simulators**。 3. 在 **Devices** 选项卡中,选中左侧连接的设备。 4. 在右侧信息栏中,找到 **Identifier**(标识符),即为设备的 **UDID**。 - 可直接右键复制 UDID。 --- ### **2. 通过 iTunes 或 Finder 查看(macOS 10.15 及以下适用 iTunes)** #### **iPhone/iPad** 1. 连接设备到电脑,打开 **iTunes**(或 macOS 10.15+ 的 **Finder**)。 2. 点击设备图标 → 进入设备摘要页。 3. 找到 **序列号** 一栏,连续点击序列号位置,会切换显示为 **UDID**。 - 右键选择 **复制 UDID** 即可。 #### **Mac 电脑** 1. 点击左上角 **苹果图标** → **关于本机** → **系统报告**。 2. 在 **硬件概览** 中,找到 **硬件 UUID**,即为 Mac 的 UDID。 --- ### **3. 通过设备直接查看(无需电脑)** #### **iPhone/iPad(需安装描述文件)** 1. 用 Safari 浏览器访问苹果官方 UDID 获取页面:[https://udid.io/](https://udid.io/)(或第三方工具网站)。 2. 点击 **Tap to find UDID** → 根据提示安装描述文件。 3. 安装完成后,页面会自动显示 UDID。 - **注意**:第三方工具可能存在隐私风险,建议优先使用 Xcode 或 iTunes。 --- ### **4. 通过命令行查看(开发者适用)** 1. 连接设备到 Mac,打开 **终端**。 2. 输入以下命令: ```bash idevice_id -l ``` - 需提前安装 `libimobiledevice` 工具包(通过 `brew install libimobiledevice` 安装)。 --- ### **常见问题** 1. **为什么需要 UDID?** - 用于在苹果开发者账号注册设备,以便安装测试版应用或企业签名的应用。 2. **UDID 会泄露隐私吗?** - UDID 是设备的唯一标识符,建议仅提供给可信的开发者或企业。 3. **设备无法连接 Xcode/iTunes?** - 检查数据线和 USB 接口是否正常,确保设备已解锁并信任此电脑。 --- ### **总结** - **最可靠方式**:通过 Xcode 或 iTunes/Finder 直接获取。 - **快速但需谨慎**:使用第三方网页工具(如 udid.io)。 - **隐私提示**:UDID 是设备敏感信息,避免随意公开!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值