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のみのアプリを構築することである場合
修正手順:
- ターゲットのビルド設定で、COREML_CODEGEN_LANGUAGEを「なし」に設定できます
- ターミナルを開き、.mlmodelフォルダーの場所に移動します
- 「xcruncoremlcompilergenerate <YourModel.mlmodel> --languageSwift」と入力します。
- これにより、同じフォルダーに<YourModel.swift>ファイルが作成されます。
- Xcodeを開き、プロジェクトに<YourModel.swift>を追加します。
- <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)
迅速なファイルを修正する方法。