You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xcode App Playgrounds(.swiftpm)项目中添加.mlmodel文件?

在Xcode App Playgrounds(.swiftpm)中添加.mlmodel文件的错误解决方法

问题描述

开发Xcode App Playgrounds项目(.swiftpm格式)时,添加Exercises.mlmodel这类模型文件会触发错误:

Exercises.mlmodel: No predominant language detected. Set COREML_CODEGEN_LANGUAGE to preferred language.

该模型文件在常规Xcode项目(.xcodeproj)中可正常使用,仅在.swiftpm环境下报错。已尝试以下操作但未解决:

  • 确认.mlmodel文件已正确添加到项目文件夹
  • 在.xcodeproj环境中验证生成的Core ML Swift代码可正常运行
  • 尝试在Xcode中为.swiftpm项目设置COREML_CODEGEN_LANGUAGE,但未找到对应选项
  • 试过相关解决方案但无效

可行解决方案

方案1:手动修改Package.swift添加编译参数

直接在项目的Package.swift文件中,为包含.mlmodel的target添加编译标记,指定Core ML代码生成语言为Swift:

let package = Package(
    name: "你的项目名称",
    products: [
        .executable(name: "你的App名称", targets: ["你的App目标名"]),
    ],
    dependencies: [],
    targets: [
        .executableTarget(
            name: "你的App目标名",
            dependencies: [],
            resources: [
                .process("Exercises.mlmodel") // 确保模型文件被作为资源处理
            ],
            swiftSettings: [
                .unsafeFlags(["-Xcc", "-DCOREML_CODEGEN_LANGUAGE=Swift"])
            ]
        ),
    ]
)

修改后重新加载项目,Xcode会根据指定的语言自动生成Core ML代码。

方案2:预先生成Swift代码再导入项目

如果方案1无效,可以先在常规.xcodeproj项目中生成模型对应的Swift代码,再将代码和模型文件一起导入.swiftpm项目:

  1. 在.xcodeproj项目中选中.mlmodel文件,在右侧检查器中将「Code Generation Language」设置为Swift
  2. 找到Xcode自动生成的同名.swift文件(比如Exercises.swift)
  3. 将Exercises.swift和Exercises.mlmodel一起添加到.swiftpm项目中
  4. 在Package.swift的target资源配置中添加:.process("Exercises.mlmodel")

这样可以绕开.swiftpm环境下自动代码生成的语言检测问题,直接使用预先生成的代码。

内容的提问来源于stack exchange,提问作者MohAliBou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 03:13:13