2012-12-20 25 views
5

क्या आईओएस एसडीके में आईओएस डिवाइस पहचानकर्ता प्राप्त करने का कोई तरीका है? 21xb1fxef5x2052xec31x3xd3x48ex5e437xe593आईओएस डिवाइस पहचानकर्ता को पुनर्प्राप्त करें

+0

क्यों आप उस पहचानकर्ता प्राप्त करना चाहते हैं ? –

+2

मुझे डिवाइस को विशिष्ट रूप से पहचानने की आवश्यकता है – aumanets

उत्तर

7

Apple Documentation से:

एक अल्फ़ान्यूमेरिक स्ट्रिंग विभिन्न हार्डवेयर विवरण के आधार पर प्रत्येक डिवाइस के लिए अद्वितीय। (केवल पढ़ने के लिए) ( पहचानकर्ता इस वर्ग की पहचानकर्ता संपत्ति या विज्ञापन के रूप में ASIdentifierManager वर्ग की विज्ञापन पहचानकर्ता संपत्ति, एनएसयूयूआईडी कक्षा की यूयूआईडी विधि का उपयोग पर यूयूआईडी बनाएं और लिखें यह उपयोगकर्ता डेटाबेस को डिफ़ॉल्ट करता है।)

-1

हाँ है: डिवाइस अनुभाग, की तरह कुछ - मैं पहचानकर्ता जो आयोजक में Xcode द्वारा प्रस्तुत किया जाता है का उपयोग करना चाहते हैं।

[[UIDevice currentDevice] uniqueIdentifier] 

संपादित करें: हालांकि इस आईओएस 5 में हटा दिया गया है यह पहचानकर्ता नहीं रह गया है अधिक जानकारी के लिए आईओएस 5. पढ़ें this SO पोस्ट में इस्तेमाल किया जाना चाहिए।

+3

यह आईओएस 5 में बहिष्कृत है और इसका उपयोग करने वाले अनुप्रयोगों को ऐप स्टोर में अनुमति नहीं दी जाएगी। –

12

यह अभी भी आप की तरह लग रहा आईओएस 6 के तहत UDID तक पहुँच सकते हैं, लेकिन यह iOS 5.0 के बाद से हटा दिया गया है और आप इसे (वैसे भी आपको लगता है कि के बारे में चेतावनी प्राप्त करेंगे)

[UIDevice currentDevice].uniqueIdentifier 

तो उपयोग नहीं करना चाहिए आप अद्वितीय पहचानकर्ता की जरूरत है अगर आप का उपयोग करना चाहिए:

[UIDevice currentDevice].identifierForVendor 

या यह विज्ञापन किसी तरह का तो साथ जुड़ा हुआ है, तो:

// from AdSupport.framework 
[ASIdentifierManager sharedManager].advertisingIdentifier 

हालांकि उन दो नई संपत्तियां केवल आईओएस> = 6.0 के तहत उपलब्ध हैं, विज्ञापन भी इंडेंटिफायर वास्तव में अद्वितीय नहीं है (मुझे उससे कई डुप्लीकेट मिल रहे हैं)।

मुझे लगता है अगर आप भी आईओएस < 6 का समर्थन करने के लिए wan't आप ऐसा कुछ कर सकते हैं कि:

UIDevice *device = [UIDevice currentDevice]; 
NSString *ident = nil; 
if ([device respondsToSelector:SEL(identifierForVendor)]) { 
    ident = [device.identifierForVendor UUIDString]; 
} else { 
    ident = device.uniqueIdentifier; 
} 

लेकिन मुझे यकीन है कि कैसे सेब समीक्षा के दौरान यह है कि का जवाब देंगे नहीं हूँ।

आप openUDID या secureUDID जैसे कुछ तृतीय पक्ष समाधान का भी उपयोग कर सकते हैं। खुले और सुरक्षित यूडीआईडी ​​बहिष्कृत हैं - विक्रेता/विज्ञापन के लिए पहचानकर्ता का उपयोग करें। source is here

की iOS7 मैक पता नहीं है के रूप में -


अद्यतन

एक और संभावना अद्वितीय हैश के लिए एक आधार के रूप में मैक पता उपयोग करने के लिए, उदाहरण के लिए आप ODIN1 से कोड का उपयोग कर सकते है अधिक समय के लिए उपलब्ध। (कोई इसे पढ़ सकता है लेकिन यह हमेशा एक ही डमी पता होगा 02: 00: 00: 00: 00: 00)।

+0

संपत्ति आईओएस 5.0 – aumanets

+0

में अस्वीकृत है, क्षमा करें, सबसे पहले मैंने पहचानकर्ता के बजाय अद्वितीय पहचानकर्ता लिखा था, लेकिन फिर भी मुझे लगता है कि यह स्पष्ट था कि कुछ गलत है जब मैंने लिखा था कि आपको अद्वितीय पहचानकर्ता का उपयोग नहीं करना चाहिए और दूसरी पंक्ति में इसका उपयोग करना चाहिए;) – lupatus

+0

सिक्योरयूडआईड अब क्रैशलिटिक्स द्वारा समर्थित नहीं है; वे लिखते हैं: "हम इसके बजाय ऐप्पल के आईओएस 6 विक्रेता और विज्ञापन पहचानकर्ताओं का उपयोग करने की सलाह देते हैं।" –

0

आप अद्वितीय उपकरण पहचानकर्ता के रूप में पा सकते हैं

[[UIDevice currentDevice] uniqueIdentifier] 
0
+ (NSString *)uuid 
{ 
    NSString *uuidString = nil; 
    CFUUIDRef uuid = CFUUIDCreate(NULL); 
    if (uuid) { 
     uuidString = (NSString *)CFUUIDCreateString(NULL, uuid); 
     CFRelease(uuid); 
    } 
    return [uuidString autorelease]; 
} 

यह भी 100%, यहां तक ​​कि सिमुलेटर पर काम करता है ...

2
NSString* identifier = nil; 
if([UIDevice instancesRespondToSelector:@selector(identifierForVendor)]) { 
    // iOS 6+ 
    identifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; 
} else { 
    // before iOS 6, so just generate an identifier and store it 
    identifier = [[NSUserDefaults standardUserDefaults] objectForKey:@"identiferForVendor"]; 
    if(!identifier) { 
    CFUUIDRef uuid = CFUUIDCreate(NULL); 
    identifier = (__bridge_transfer NSString*)CFUUIDCreateString(NULL, uuid); 
    CFRelease(uuid); 
    [[NSUserDefaults standardUserDefaults] setObject:identifier forKey:@"identifierForVendor"]; 
    } 
} 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^