iOS 7访问企业应用程序中的UUID值(不适用于AppStore)

自iOS7以来,苹果已经不推荐使用属性-uniqueIdentifier 。 其他属性-advertisingIdentifier-advertisingIdentifier有卸载和重新安装应用程序后更改值的大问题。
我需要这个价值来唯一标识连接到服务器的设备。
该应用程序将只在内部使用企业帐户分发,所以审查过程没有问题。

有私人的方法来获得它?

[更新一些testing]
正如David所说,我在iOS7.1设备上使用了标识符供应商,这里是我的testing结果。

  • 应用程序安装后:28FD42B6-A993-4602-A988-69E375A1F913
  • 杀了应用程序后:28FD42B6-A993-4602-A988-69E375A1F913
  • 删除并重新安装应用程序后:28FD42B6-A993-4602-A988-69E375A1F913
  • 系统还原并重新安装应用程序后:4948F77F-3D41-4933-B2F0-C4DCB529C7CC
  • 系统恢复前备份恢复后:28FD42B6-A993-4602-A988-69E375A1F913

你应该可以使用[UIDevice identifierForVendor]来达到你的目的。 根据文件:

对于来自同一设备上运行的同一供应商的应用程序,此属性的值是相同的。

基于此,我不认为值应该改变,如果你删除并重新安装应用程序。 一些快速testing证实,它通过删除/安装周期是持久的。

编辑:

它看起来像identifierForVendor只是通过在iOS 7上删除/安装持久性,所以使用iOS 6上的uniqueIdentifier和iOS 7上的identifierForVendor为:

 @implementation UIDevice (persistentDeviceIdentifier) -(NSString*)persistentDeviceIdentifier { if([self respondsToSelector:@selector(uniqueIdentifier)]) return [self performSelector:@selector(uniqueIdentifier)]; else return [[self identifierForVendor] UUIDString]; } @end