Apple 自 iOS7 起已弃用且无法使用该属性-uniqueIdentifier
。其他属性-identifierForVendor
and -advertisingIdentifier
有一个大问题,他们在卸载并重新安装应用程序后更改了值。
我需要该值来唯一标识连接到服务器的设备。
该应用程序将仅使用企业帐户在内部分发,因此审核过程没有问题。
有没有私有的方法来获取它?
[更新一些测试]
正如 David 所说,我在 iOS7.1 设备上使用了供应商标识符,这里是我的测试的一些结果。
- 应用程序安装后: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]
为了您的目的。根据文档:
对于来自同一供应商且在同一设备上运行的应用程序,此属性的值相同。
基于此,我认为如果您删除并重新安装应用程序,该值不应改变。一些快速测试证实它在删除/安装周期中是持久的。
EDIT:
看起来像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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)