2012-12-24 15 views
5

SDK, geçerli Macbook'un UUID'sini almak için bir API sağlıyor mu? Eğer vb yeni AppStore kurallar hakkında umursamazsakGeçerli Macbook'un UUID'sini Objective-C'den nasıl alabilirim?

+0

Bir yanıtım vardı ("seri numarası hakkında konuşuyorsunuz" gibi) ve Macintosh'ların *** UUID'lerine sahip olduğunu fark ettiğimde hızlıca sildim. [UUID'yi almanın kesinlikle yolu var] (http://apple.stackexchange.com/questions/72355/how-to-get-uuid-with-python), ancak Apple bunu programlı olarak yapmakta zorlanmaktadır. MacBook'un UUID'sine veya sadece bazı benzersiz tanımlayıcılara (örn. MacBook'un Ethernet kartından MAC adresi) ihtiyacınız var mı? Ne yapmaya çalışıyorsun? –

+0

Mac App Store Makbuzlarının bir uygulama paketi adı, uygulama sürümü ve MAC adresi kombinasyonu kullanması gerektiğini biliyorum, bu yüzden Apple, ideal olduğunu düşündüğünüz bir şey için UUID'yi kullanmasa bile. – trojanfoe

cevap

1

Yani ... buyur:

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

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

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

Lütfen dikkat:

  • Sen hiç IOKit.framework eklemem gerekiyor senin Bu çalışması için proje.
  • Bu kod ARC uyumludur;
  • Bu kod güvenlidir ve bir sorun çıkarsa nilNSString dönecektir; Apple, gelecekteki tüm sistemlerin, yazılım tarafından okunabilir bir seri numarasına sahip olacağını garanti etmez.
  • Geliştiriciler, uzunluğu gibi seri numarasının biçimi veya 'un hangi karakterleri içerebileceği konusunda herhangi bir varsayımda bulunmamalıdır.
İlgili konular