CatalystのMLビルドエラー(Xcode 12 GM)

Sep 16 2020

MLモデルでのGMリリースに問題があり、これに対する解決策を持っている人は他にいますか?次のエラーが発生します。

Type 'MLModel' has no member '__loadContents'

プロジェクトをクリーンアップし、派生データを削除しました(これは、派生データフォルダーに配置される生成ファイルです)

私が使用しているmacOS 10.15にはメソッドが存在しないはずですが、何らかの理由で存在していることに気付きました。

また、GMが本番ビルドである間、このAPIはまだベータ版であることに気づきましたか? https://developer.apple.com/documentation/coreml/mlmodel

MLモデルを再生成する必要がありますか?

回答

6 COzkurt Sep 28 2020 at 06:19

これの根本的な原因は次のとおりです。

Xcode 12.0 GMのCoreMLコンパイラは、macOSBigSurでのみ使用可能なシンボルを持つコードを生成しているためコンパイルの問題が発生します。目標がXcode12.0で触媒またはmacOSのみのアプリを構築することである場合

修正手順:

  1. ターゲットのビルド設定で、COREML_CODEGEN_LANGUAGEを「なし」に設定できます
  2. ターミナルを開き、.mlmodelフォルダーの場所に移動します
  3. 「xcrunco​​remlcompilergenerate <YourModel.mlmodel> --languageSwift」と入力します。
  4. これにより、同じフォルダーに<YourModel.swift>ファイルが作成されます。
  5. Xcodeを開き、プロジェクトに<YourModel.swift>を追加します。
  6. <YourModel.swift>をクリックして、コンパイラが文句を言うメソッドをコメントアウトします。

私の場合、コメントアウトします:

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

そして

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

迅速なファイルを修正する方法。