0

我的要求是在设备重新启动、操作系统更新、应用程序重新安装和设备重置(即用户选择设置 > 常规 > 重置)中持续存在的 UDID。

我并没有试图破坏设备上的任何安全性;这是一个金融应用程序。

据我了解,OpenUDID 已被弃用。考虑到用户可以选择退出并且出于安全原因,我还没有弄清楚 SecureUDID 是否有用。

广告商 ID 和供应商 ID 不是永久性的。

在钥匙串或用户默认/首选项中保存 ID 似乎不符合我的要求:这些机制似乎不够持久(如上所述)。

有没有人有什么建议?还是 Apple 刚刚让他们的移动设备无法做到这一点?

任何帮助将非常感激。

4

1 回答 1

3

-[UIDevice uniqueIdentifier]根据文档,官方的替代品是identifierForVendor

对于来自同一供应商并在同一设备上运行的应用,此属性的值相同。对于来自不同供应商的同一设备上的应用程序以及不同设备上的应用程序(无论供应商)返回不同的值。

显然这对您来说不是问题,因为您只是在创建一个应用程序。但是,此属性确实有一些限制:

当应用程序(或来自同一供应商的另一个应用程序)安装在 iOS 设备上时,此属性中的值保持不变。当用户从设备中删除该供应商的所有应用程序并随后重新安装其中一个或多个应用程序时,该值会发生变化。因此,如果您的应用程序将此属性的值存储在任何地方,您应该优雅地处理标识符更改的情况。

换句话说,这个标识符几乎就像一个 UDID,有一个限制,当用户从他们的设备上删除你制作的所有应用程序时,这个标识符将被重置。但老实说,我看不出这对于普通应用程序来说不够好的任何理由。identifierForVendor只有在删除并重新安装应用程序时才会重置的唯一情况。它会在重新启动、软件更新等过程中持续存在,因此它不应该成为真正的问题。


TL;DR如果不违反 Apple 的规则,您所要求的目前在技术上是不可能的,但identifierForVendor确实应该是一个足够好的替代品。我想不出一个合理的理由,为什么您需要一个在应用程序删除和设备重置时仍然存在的标识符。

于 2013-07-10T03:44:41.670 回答