如何解决Catalyst的ML构建错误Xcode 12 GM
还有其他人对带有ML模型的GM版本有疑问,并且对此有解决方案吗?我收到以下错误:
for (var i = 0; i < 100; i++) {
data.push({name:'name',value:10});
}
我已经清理了Project +删除的派生数据(这是一个生成的文件,放在派生数据文件夹中)
我注意到该方法不适用于我使用的mac OS 10.15,但是由于某种原因而存在。
我还注意到,当GM是量产版本时,此API仍处于beta版吗? https://developer.apple.com/documentation/coreml/mlmodel
我应该重新生成ML模型吗?
解决方法
根本原因是:
Xcode 12.0 GM中的CoreML编译器正在生成仅具有在macOS BigSur上可用的符号的代码,从而导致编译问题。如果目标是使用Xcode 12.0构建催化剂或仅限macOS的应用程序
修复步骤:
- 在目标构建设置中,您可以将COREML_CODEGEN_LANGUAGE设置为“无”
- 打开终端,然后转到您的.mlmodel文件夹
- 键入“ xcrun coremlcompiler生成
--language Swift。” - 这将在同一文件夹中创建
文件。 - 打开Xcode并在项目中添加
。 - 单击
并注释掉编译器抱怨的方法。
就我而言,我将其注释掉:
class func load(contentsOf modelURL: URL,configuration: MLModelConfiguration = MLModelConfiguration(),completionHandler handler: @escaping (Swift.Result<Nudity,Error>) -> Void)
和
class func load(configuration: MLModelConfiguration = MLModelConfiguration(),Error>) -> Void)
修复快速文件的方法。