Ho implementato questo metodi per ottenere advertisingIdentifier
e identifierForVendor
:Il ritorno advertisingIdentifier e identifierForVendor "00000000-0000-0000-0000-000000000000"
- (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;
}
sul simulatore che tutto funzioni come dovrebbe essere e posso ottenere la rappresentazione degli ID a 2 stringhe.
Ma quando corro da iPhone 3GS con iOS 6.0 (10A403), questi 2 metodi restituiscono "00000000-0000-0000-0000-000000000000" come identificatore. già fatto:
- riavviato il dispositivo
- rimosso l'app e reinstallato
- Creato e Ad-Hoc costruzione, installazione, rimosso e installato di nuovo
- eseguire questo codice da un'altra app
- Tested su iPad 2 con iOS 6.0 (10A403) e tutto è andato ok (ho gli identificatori corretti)
Questo sembra essere corretto come ho trovato dopo [ricerca] (https://devforums.apple.com/search.jspa?resultTypes=MESSAGE&peopleEnabled=true&q=00000000-0000-0000-0000-000000000000) su Apple Forum (è necessario accedere con il proprio account sviluppatore) –
È abbastanza pulito come Apple ha rimosso qualcosa (UID) e lo ha sostituito con qualcosa che * non funziona *. –
Abbiamo appena aggiornato un paio di dispositivi su iOS 6.0.1 over-the-air e 'identifierForVendor' sembra essere corretto. – MattP