2012-09-26 18 views
25

मैं advertisingIdentifier और identifierForVendor प्राप्त करने के लिए इस तरीकों को क्रियान्वित किया है:advertisingIdentifier और 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; 
} 

सिम्युलेटर सब कुछ पर के रूप में काम कर रहा है होना चाहिए और मैं प्राप्त कर सकते हैं 2 तार आईडी प्रतिनिधित्व।

लेकिन जब मैं iOS 6.0 (10A403) के साथ iPhone 3GS से चलाने के लिए, इन 2 तरीकों पहचानकर्ता के रूप में "00000000-0000-0000-0000-000000000000" वापस जाएँ। पहले ही हो चुका:

  • डिवाइस
  • पुनः आरंभ एप्लिकेशन निकाला गया और पुनर्स्थापित
  • बनाया और तदर्थ निर्माण,, स्थापित हटा दिया और एक अन्य ऐप्स से दोबारा स्थापित
  • भागो इस कोड
  • परीक्षण किया आईओएस 6.0 (10 ए 403) के साथ आईपैड 2 पर और सब कुछ ठीक चला गया (मुझे सही पहचानकर्ता मिल गए हैं)

उत्तर

24

यह आईओएस में एक बग प्रतीत होता है। उन डिवाइसों पर एक ही समस्या को देखते हुए जिन्हें ओवर-द-एयर अपग्रेड किया गया है, लेकिन एक्सकोड या आईट्यून्स के साथ अपग्रेड किए गए डिवाइस ज़ीरो के बिना अपेक्षित काम करते हैं।

आपके जैसे ही कदम उठाए, और एकमात्र आम थीम ओवर-द-एयर (खराब) बनाम tethered अपग्रेड (अच्छा) था।

अद्यतन: उपयोगकर्ता जो सीधे आईओएस 5.1 से 6.1 तक चलते हैं, ओवर-द-एयर अनुभव एक अलग व्यवहार का अनुभव करते हैं। प्रत्येक बार जब ऐप पूरी तरह बंद हो जाता है और पुनरारंभ होता है, तो identifierForVendor द्वारा एक नया मान वापस किया जा रहा है। यह उम्मीद की जाएगी कि ऐप को अनइंस्टॉल किया गया था और पुनर्स्थापित किया गया था, लेकिन ऐसा नहीं है।

+0

यह सही लगता है जैसा कि मैंने [खोज] के बाद पाया है (https://devforums.apple.com/search.jspa?resultTypes=MESSAGE&peopleEnabled=true&q=00000000-0000-0000-0000-000000000000) ऐप्पल पर मंच (आपको अपने डेवलपर खाते से लॉगिन करने की आवश्यकता है) –

+9

यह बहुत साफ है कि ऐप्पल ने कुछ (यूआईडी) कैसे हटा दिया और इसे किसी चीज़ के साथ बदल दिया जो * काम नहीं करता *। –

+5

हमने अभी कुछ डिवाइसों को आईओएस 6.0.1 ओवर-द-एयर और 'पहचानकर्ता फॉरवेंडर' में अपडेट किया है। – MattP

8

ऐप्पल ने तकनीकी सहायता घटना अनुरोध के जवाब में अपने सिस्टम में इस बग की पुष्टि की। उन्होंने कहा कि identifierForVendor और advertisingIdentifier कभी-कभी सभी शून्यों को वापस करने के लिए ऐप स्टोर से हवा में डाउनलोड किए गए विकास निर्माण और ऐप्स दोनों में देखा जा सकता है। उनके पास कोई काम नहीं है और जब समस्या ठीक हो जाएगी तो यह नहीं कह सकता है।

+0

क्या आप एक लिंक पोस्ट कर सकते हैं जहां मैं अपनी प्रतिक्रिया देख सकता हूं, मैंने विज्ञापनदाता को प्राथमिक कुंजी के रूप में बनाया है और अब यह मेरे ऐप में बड़ी समस्याएं पैदा कर रहा है – Geet

0

ऐसी कुछ स्थितियां हैं जहां एपीआई डिवाइस के पुनर्स्थापन के बाद आईडी के लिए खाली प्रतिक्रिया देता है।

-(void)retrieveID 
{ 
    if (<check fails>) 
     [self performSelector:@"retrieveID" withObject:nil afterDelay:1.0]; 
} 

और बाद में आईडी लाने:

सुझाव आईडी retreival स्थगित करने के लिए है, तो आप इस तरह sometginh कॉल कर सकते हैं है।