Error de compilación ML para Catalyst (Xcode 12 GM)

Sep 16 2020

¿Alguien más tiene problemas con la versión de GM con modelos ML y tiene una solución para esto? Obtuve el siguiente error:

Type 'MLModel' has no member '__loadContents'

He limpiado el Proyecto + datos derivados eliminados (este es un archivo generado que se coloca en la carpeta de datos derivados)

Noto que el método no debería estar ahí para mac OS 10.15 que yo uso, pero está ahí por alguna razón.

También noté que esta API todavía está en beta mientras que GM es una versión de producción. https://developer.apple.com/documentation/coreml/mlmodel

¿Debo regenerar el modelo ML?

Respuestas

6 COzkurt Sep 28 2020 at 06:19

La causa principal de esto es:

El compilador CoreML en Xcode 12.0 GM está generando código que tiene símbolos disponibles solo en macOS BigSur, lo que causa el problema de compilación. Si el objetivo es crear un catalizador o una aplicación solo para macOS con Xcode 12.0

Pasos para solucionarlo:

  1. En la configuración de compilación de sus objetivos, puede establecer COREML_CODEGEN_LANGUAGE en "Ninguno"
  2. Abra la terminal y luego vaya a la carpeta .mlmodel
  3. Escriba "xcrun coremlcompiler generate <YourModel.mlmodel> --language Swift".
  4. Esto creará el archivo <YourModel.swift> en la misma carpeta.
  5. Abra Xcode y agregue <YourModel.swift> en su proyecto.
  6. Haga clic en <YourModel.swift> y comente el método que el compilador se queja.

En mi caso comento:

class func load(contentsOf modelURL: URL, configuration: MLModelConfiguration = MLModelConfiguration(), completionHandler handler: @escaping (Swift.Result<Nudity, Error>) -> Void)

y

class func load(configuration: MLModelConfiguration = MLModelConfiguration(), completionHandler handler: @escaping (Swift.Result<Nudity, Error>) -> Void)

métodos para arreglar archivos rápidos.