我已经实现了这些方法来获取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;
}
在模拟器上一切正常,我可以获得2个字符串的ID表示。
但是,当我在搭载iOS 6.0(10A403)的iPhone 3GS上运行时,这2个方法将返回“00000000-0000-0000-0000-000000000000”作为标识符。 已经完成的操作:
- 重新启动设备
- 删除并重新安装应用程序
- 创建Ad-Hoc构建,安装,删除并再次安装
- 从另一个应用程序运行此代码
- 在搭载iOS 6.0(10A403)的iPad 2上进行了测试,一切都很好(我得到了正确的标识符)
identifierForVendor
看起来已经修复了。 - MattP