问题描述
每次我卸载并安装我的应用程序时,都会生成一个新的identifierForvendor
。
我发现它是苹果公司正在进行的issue。
我的后续问题是,如果两个或更多设备继续卸载,重新安装,它们是否可能具有相同的identifierForvendor
?
解决方法
通常是的,但是对于实际应用,您不必为此担心。
identifierForVendor
是UUID
类型的-this wiki page的章节通常介绍了UUID的冲突概率,不仅限于iOS。简而言之,为了有50%的碰撞机会,您需要生成~2.71*10^18
标识符。那就是
相当于在大约85年的时间内每秒产生10亿个UUID。包含这么多UUID的文件,每个UUID为16个字节,大约为45艾字节。
我也不会说这是一个“问题”,而是苹果做出的决定选择-在documentation中,他们明确声明了
在iOS设备上安装了该应用程序(或来自同一供应商的另一个应用程序)时,此属性中的值保持不变。当用户从设备上删除该供应商的所有应用程序,然后重新安装其中一个或多个应用程序时,该值将更改。使用Xcode安装测试版本或使用临时发行版在设备上安装应用程序时,该值也会更改。因此,如果您的应用将此属性的值存储在任何位置,则应妥善处理标识符更改的情况。