इसलिए, यदि आप नई 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
जोड़ने की जरूरत है अपने काम करने के लिए इस के लिए परियोजना।
- इस कोड एआरसी अनुरूप है;
- यह कोड सुरक्षित है और यह कुछ गलत होने पर
nil
NSString
वापस करेगा;
- ऐप्पल गारंटी नहीं देता है कि सभी भविष्य प्रणालियों में एक सॉफ्टवेयर-पठनीय सीरियल नंबर होगा।
- डेवलपर्स इस तरह इसकी लंबाई या क्या वर्ण यह हो सकती है के रूप में क्रम संख्या के प्रारूप के बारे में कोई अनुमान नहीं करना चाहिए।
'IOObjectRelease (platformExpert); '' serialNumberAsCFString' ब्लॉक' के भीतर भी बुलाया जाना चाहिए? केवल कोड के माध्यम से पढ़ना, ऐसा लगता है। –
@ डीजेएस हाँ आपके पास एक अच्छा बिंदु है। मैंने इसे ठीक करने के लिए एक संपादन किया। – TCB13
क्या होगा यदि हम नए ऐपस्टोर नियमों की परवाह करते हैं? – tofutim