我实现了这个方法来获取advertisingIdentifier
和identifierForVendor
:
- (NSString *) advertisingIdentifier
{
if (!NSClassFromString(@"ASIdentifierManager")) {
return [OpenUDID value];
}
return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
}
- (NSString *) identifierForVendor
{
if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {
return [[[UIDevice currentDevice] identifierForVendor] UUIDString];
}
return @"";
}
- (BOOL)isAdvertisingTrackingEnabled
{
if (NSClassFromString(@"ASIdentifierManager") && ![[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
return NO;
}
return YES;
}
在模拟器一切工作应该是,我可以得到两个字符串的ID表示。
但是,当我从iPhone 3GS的iOS 6.0(10A403)运行,这2种方法返回“00000000-0000-0000-0000-000000000000”作为标识。 已经完成了:
- 重新启动设备
- 删除该应用程序并重新安装
- 创建和特设的构建,安装,拆卸和安装一次
- 从另一个应用程序运行这段代码
- 在测试了iPad 2的与iOS 6.0(10A403),一切都OK(我已经得到了正确的标识符)