Errore di build ML per Catalyst (Xcode 12 GM)

Sep 16 2020

Qualcun altro ha problemi con la versione GM con i modelli ML e ha una soluzione per questo? Ottengo il seguente errore:

Type 'MLModel' has no member '__loadContents'

Ho pulito il progetto + cancellato i dati derivati ​​(questo è un file generato che viene inserito nella cartella dei dati derivati)

Noto che il metodo non dovrebbe essere lì per mac OS 10.15 che uso, ma per qualche motivo.

Ho anche notato che questa API è ancora in beta mentre il GM è una build di produzione? https://developer.apple.com/documentation/coreml/mlmodel

Devo rigenerare il modello ML?

Risposte

6 COzkurt Sep 28 2020 at 06:19

La causa principale di questo è:

Il compilatore CoreML in Xcode 12.0 GM sta generando codice che ha simboli disponibili solo su macOS BigSur causando il problema di compilazione. Se l'obiettivo è creare un'app catalyst o solo per macOS con Xcode 12.0

Passaggi per risolvere:

  1. Nelle impostazioni di creazione dei target puoi impostare COREML_CODEGEN_LANGUAGE su "Nessuno"
  2. Apri il terminale, quindi vai alla cartella .mlmodel
  3. Digita "xcrun coremlcompiler generate <YourModel.mlmodel> --language Swift".
  4. Questo creerà il file <YourModel.swift> nella stessa cartella.
  5. Apri Xcode e aggiungi <YourModel.swift> nel tuo progetto.
  6. Fare clic su <YourModel.swift> e commentare il metodo lamentato dal compilatore.

Nel mio caso commento:

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

e

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

metodi per riparare file swift.