Aprende a obtener el número de serie de un dispositivo Mac con Swift.

Cómo obtener el número de serie de una mac con Swift

El número de serie de su Mac es una cadena de identificación única que lo hace diferente de todos los demás, este número de serie se utiliza al solicitar el servicio de garantía, para informes, etc. Es bastante fácil encontrar el número de serie en su mac, solo necesita hacer clic en el Icono de menú de Apple en la parte superior de la pantalla y seleccione "Acerca de este mac" y la información sobre su mac aparecerá en la pantalla (procesador, Ram, etc.).

Si la aplicación que está desarrollando necesita conocer esta serie por algún motivo, existe una forma bastante sencilla de obtener el número de serie en su código Swift. El siguiente método getMacSerialNumber se puede agregar a su código para obtener el código mencionado:

/**
    Obtiene el número de serie de su dispositivo mac.

    - Devuelve: la cadena con la serie.
 */
func getMacSerialNumber() -> String {
    var serialNumber: String? {
        let platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice") )
        
        guard platformExpert > 0 else {
            return nil
        }
        
        guard let serialNumber = (IORegistryEntryCreateCFProperty(platformExpert, kIOPlatformSerialNumberKey as CFString, kCFAllocatorDefault, 0).takeUnretainedValue() as? String)?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) else {
            return nil
        }
        
        IOObjectRelease(platformExpert)

        return serialNumber
    }
    
    return serialNumber ?? "Unknown"
}

En este método, si no se puede determinar la serie, devolverá Desconocido como resultado.

Ejemplo con vista

El siguiente código generará una ventana vacía con una etiqueta en el medio que muestra el número de serie de su Mac:

import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("Your serial number is: " + getMacSerialNumber())
            .frame(maxWidth: .infinity, maxHeight: .infinity)
    }
}

/**
    Obtiene el número de serie de su dispositivo mac.

    - Devuelve: la cadena con la serie.
 */
func getMacSerialNumber() -> String {
    var serialNumber: String? {
        let platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice") )
        
        guard platformExpert > 0 else {
            return nil
        }
        
        guard let serialNumber = (IORegistryEntryCreateCFProperty(platformExpert, kIOPlatformSerialNumberKey as CFString, kCFAllocatorDefault, 0).takeUnretainedValue() as? String)?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) else {
            return nil
        }
        
        IOObjectRelease(platformExpert)

        return serialNumber
    }
    
    return serialNumber ?? "Unknown"
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Que te diviertas ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores