当前位置: 首页 > news >正文

ios打包:uuid与udid

ios的uuid与udid混乱的网上信息

新人开发ios,发现uuid和udid在网上有很多帖子里是混淆的,比如百度下,就会说:

在iOS中使用UUID(通用唯一识别码)作为永久签名,通常是指生成一个唯一标识,用于标识应用的用户或设备。这种签名方式不涉及到真正的签名验证过程,更多用于标识用户或设备的唯一性。

还会像模像样的给出一堆swift代码,来获取uuid

还有这样的回答:

Apple Developer使用UUID可以用于发布应用,但需要满足特定条件。

在iOS开发中,UUID(Universally Unique Identifier)主要用于识别设备,特别是在推送通知服务中。每个iOS设备都有一个唯一的UUID,可以通过应用程序代码中的UIDevice类的identifierForVendor属性获取。这个UUID是与设备相关联的,并且在设备被擦除时才会更改‌1。

这个说法和udid就没有什么区别了。

实际注册一个developer账号,买一个一年会员,会发现使用的是udid。

uuid和udid是什么,区别在哪里

udid的作用​

UDID(Unique Device Identifier)在iOS设备上的格式是一个由40个字符组成的十六进制字符串,包括数字和字母(0-9和a-f)。
UDID是每台iOS设备的唯一标识符,用于设备管理、应用测试和用户分析等场景。在iOS 7及之后的版本中,由于隐私政策的限制,直接获取UDID的方式不再被推荐,Apple建议使用其他方法如identifierForVendor和advertisingIdentifier来标识设备。

developer账号里注册了40位的udid,实测使用ad hoc打包,就可以给对应的ipad使用了。

udid结合付费的个人、组织或企业证书,可用来分发软件。

注意后面隐私这句话,针对的是应用本身通过编程获取,已被禁止。

那么uuid又是作什么的

UUID​英文名称是:Universally Unique Identifier,翻译过来就是通用唯一标识符。是一个32位的十六进制序列,使用小横线来连接:8-4-4-4-12 。

用来唯一标识 设备+应用。比如,只要用户没有完全删除应用程序,则这个 UUID 在用户使用该应用程序的时候一直保持不变。如果用户删除了这个应用程序,然后再重新安装,那么这个 UUID 已经发生了改变。UUID 不好的地方就是用户删除了你开发的程序以后,基本上你就不可能获取之前的数据了。

苹果官方的文档中对identifierForVendor有如下这样的一段描述 :

The value of this property is the same for apps that come from the same vendor running on the same device. A different value is returned for apps on the same device that come from different vendors, and for apps on different devices regardless of vendor.

相同的程序-相同的vindor-相同的设备,那么获取到的这个属性值就不会变。

相同的程序-相同的设备-不同的vindor,或 相同的程序-不同的设备-无论是否相同的vindor 那么这个值是不同的。

在发布应用中,uuid可以起到什么作用

虽然UUID可以帮助标识和管理IPA文件,但它并不直接影响IPA包的发布过程。发布IPA包到App Store或进行其他分发时,关键的是使用正确的签名证书和配置文件。

可以在打包IPA文件时添加UUID,但这并不直接影响IPA包的发布过程。

ipa打包添加uuid到证书-免费app生成_打包app_代上架应用商店_短链接

udid获取方法

可以使用 iTunes 和 Xcode 来获取,参考:

UDID 和 UUID 的问题-CSDN博客

 所以,如果是用来小范围发布测试用的ipa包,无需关注uuid,主要是拿到udid,注册到apple developer账号里。ad hoc方式操作步骤如下:

http://www.lryc.cn/news/526427.html

相关文章:

  • 数组,对象解构,forEach方法,filter方法
  • PSPNet
  • 论文阅读的附录(七):Understanding Diffusion Models: A Unified Perspective(二):公式46的推导
  • BGP分解实验·12——配置路由反射器
  • PCIe 个人理解专栏——【2】LTSSM(Link Training and Status State Machine)
  • cmake 编译QT之JKQtPlotter-4.0.3
  • 【C】memory 详解
  • Python 爬虫 - Selenium 框架
  • mysql的having语句
  • 华为数据之道-读书笔记
  • CDN、源站与边缘网络
  • 工业相机 SDK 二次开发-Sherlock插件
  • FlinkSql使用中rank/dense_rank函数报错空指针
  • VS C++ 配置OPENCV环境
  • 【SpringSecurity】基本开发流程
  • Redis实战(黑马点评)——关于缓存(缓存更新策略、缓存穿透、缓存雪崩、缓存击穿、Redis工具)
  • ChatGPT从数据分析到内容写作建议相关的46个提示词分享!
  • 在 Windows 11 中设置 WSL2 Ubuntu 的 `networkingMode=mirrored` 详细教程
  • 万字长文总结前端开发知识---JavaScriptVue3Axios
  • 怎么样把pdf转成图片模式(不能复制文字)
  • 本地centos网络配置
  • kotlin内联函数——runCatching
  • Python3 正则表达式:文本处理的魔法工具
  • 《DiffIR:用于图像修复的高效扩散模型》学习笔记
  • windows平台通过命令行安装前端开发环境
  • 记交叉编译asio_dtls过程
  • 学习yosys(一款开源综合器)
  • 自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测
  • 对于Docker的初步了解
  • C语言进阶——3字符函数和字符串函数(2)