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