我已经实现了这个方法来获取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 运行时,这两种方法返回“00000000-0000-0000-0000-000000000000”作为标识符。已经完成了:
- 重启了设备
- 删除了应用程序并重新安装
- 创建和临时构建、安装、删除并再次安装
- 从另一个应用程序运行此代码
- 在带有 iOS 6.0 (10A403) 的 iPad 2 上测试,一切正常(我有正确的标识符)