Le advertisingIdentifier et identifierForVendor retour “00000000-0000-0000-0000-000000000000”
J'ai mis en œuvre cette méthode pour obtenir advertisingIdentifier
et 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;
}
Sur simulateur tout fonctionne comme il doit l'être, et je peux récupérer les 2 cordes les Id de représentation.
Mais quand je le lance à partir de l'iPhone 3GS avec iOS 6.0 (10A403), ces 2 méthodes de retour "00000000-0000-0000-0000-000000000000" comme identifiant.
Déjà fait:
- Redémarré l'appareil
- Retiré de l'app et réinstallé
- Créé Ad Hoc pour construire, installé, enlevé et installé de nouveau
- Exécuter ce code à partir d'une autre application
- Testé sur iPad 2 avec iOS 6.0 (10A403) et tout s'est ok (j'ai le bon identifiants)
Vous devez vous connecter pour publier un commentaire.
Il semble être un bug dans iOS. Voir la même question sur les dispositifs qui ont été mis à jour over-the-air, mais les appareils mis à niveau avec Xcode ou iTunes fonctionne comme prévu sans les zéros.
Essayé la même procédure que vous, et le seul thème commun a été over-the-air (mauvais) par rapport captif de mise à niveau (bon).
Mise à jour: les Utilisateurs qui se déplacent directement à partir de l'iOS 5.1 6.1 over-the-air de l'expérience d'un comportement différent. Chaque fois que l'application est complètement fermé et redémarré, une nouvelle valeur est retournée par
identifierForVendor
. Ce serait le cas si l'application était désinstallé et réinstallé, mais ce n'est pas le cas.identifierForVendor
semble être résolu.Apple a confirmé l'existence de ce bogue dans leur système en réponse à un Incident de Support Technique demande. Ils ont dit que
identifierForVendor
etadvertisingIdentifier
parfoisle retour de tous les zéros peut être vu à la fois dans les compilations de développement et les applications téléchargées sur l'air à partir de l'App Store. Ils ont pas de travail et ne pouvez pas dire quand le problème sera résolu.
Il y a certaines situations où l'API retourne vide de réponse pour l'ID comme après périphérique de restauration.
Suggestion est de reporter l'ID de la réception, de sorte que vous pouvez appeler sometginh comme ceci:
Et récupérer l'ID plus tard.