2012-06-20 2 views
7

मैं कोड के माध्यम से की पहचान के लिए मेरी मैक प्रणाली चाहते हैं। मुझे इस मैक के बारे में हार्डवेयर यूयूआईडी मिलती है। तो एमएसी ओएस एक्सकैसे एक मैक सिस्टम की पहचान के लिए विशिष्ट

से प्रोग्राम यूट्यूब को अद्वितीय यूयूआईडी तक कैसे पहुंचाया जाए, कृपया मेरी समस्या के लिए कोई वैकल्पिक सुझाव दें तो कृपया मुझे प्रदान करें।

उत्तर

3
यहाँ से

: https://stackoverflow.com/a/2754563/610351

void get_platform_uuid(char * buf, int bufSize) { 
    io_registry_entry_t ioRegistryRoot = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/"); 
    CFStringRef uuidCf = (CFStringRef) IORegistryEntryCreateCFProperty(ioRegistryRoot, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, 0); 
    IOObjectRelease(ioRegistryRoot); 
    CFStringGetCString(uuidCf, buf, bufSize, kCFStringEncodingMacRoman); 
    CFRelease(uuidCf);  
} 

आप NSString के लिए एक सरल रूपांतरण के साथ CFStringGetCString जगह ले सकता है *।

18

इसलिए, यदि आप नई AppStore नियमों आदि के बारे में परवाह नहीं है ... ये रहा:

- (NSString *)getSystemUUID { 
    io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault,IOServiceMatching("IOPlatformExpertDevice")); 
    if (!platformExpert) 
     return nil; 

    CFTypeRef serialNumberAsCFString = IORegistryEntryCreateCFProperty(platformExpert,CFSTR(kIOPlatformUUIDKey),kCFAllocatorDefault, 0); 
    IOObjectRelease(platformExpert); 
    if (!serialNumberAsCFString) 
     return nil; 

    return (__bridge NSString *)(serialNumberAsCFString);; 
} 

कृपया ध्यान दें:

  • आप को IOKit.framework जोड़ने की जरूरत है अपने काम करने के लिए इस के लिए परियोजना।
  • इस कोड एआरसी अनुरूप है;
  • यह कोड सुरक्षित है और यह कुछ गलत होने पर nilNSString वापस करेगा;
  • ऐप्पल गारंटी नहीं देता है कि सभी भविष्य प्रणालियों में एक सॉफ्टवेयर-पठनीय सीरियल नंबर होगा।
  • डेवलपर्स इस तरह इसकी लंबाई या क्या वर्ण यह हो सकती है के रूप में क्रम संख्या के प्रारूप के बारे में कोई अनुमान नहीं करना चाहिए।
+0

'IOObjectRelease (platformExpert); '' serialNumberAsCFString' ब्लॉक' के भीतर भी बुलाया जाना चाहिए? केवल कोड के माध्यम से पढ़ना, ऐसा लगता है। –

+0

@ डीजेएस हाँ आपके पास एक अच्छा बिंदु है। मैंने इसे ठीक करने के लिए एक संपादन किया। – TCB13

+1

क्या होगा यदि हम नए ऐपस्टोर नियमों की परवाह करते हैं? – tofutim

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

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