私はこのメソッドを実装して取得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」を返します。すでに完了:
- デバイスを再起動しました
- アプリを削除して再インストールしました
- 作成およびアドホックビルド、インストール、削除、および再インストール
- 別のアプリからこのコードを実行する
- iOS 6.0(10A403)を搭載したiPad 2でテストし、すべて問題なく動作しました(正しい識別子があります)