替代[UIDevice currentDevice] .identifierForVendor

时间:2013-08-11 03:35:52

标签: ios objective-c uniqueidentifier uidevice

我有一个产品有两个不同的应用程序。并且这两个应用程序为我提供了同一设备的不同标识符(您可以假设苹果会将此与您的开发者帐户相关联,以便您可以在您的应用程序中重复使用这些信息),但我想知道他们的任何东西会给我两个应用程序上设备的标识符相同吗?

2 个答案:

答案 0 :(得分:2)

identifierForVendor真的是你想要的。 UDID在AppStore上是一个很大的NO。用户可以选择退出advertisingIdentifier。其他方式(通过MAC地址,如ODIN1,以及依赖于UIPasteboard的解决方案,如OpenUDID)将打破未来(提示:7)。

根据docs,如果两个应用来自同一个开发者,则您应具有相同的标识符:

  

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

     

如果应用程序在后台运行,则在用户在设备重新启动后第一次解锁设备之前,此属性的值可能为nil。如果值为nil,请稍后再次获取该值。

     

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

答案 1 :(得分:0)

到目前为止,

OpenUDID是最佳解决方案,即使设备重置也可能会更改。