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

如何在Xcode中可靠导入.mlpackage模型并生成Swift存根

在Xcode中导入并使用.mlpackage模型的正确流程与问题解决

一、正确导入.mlpackage的流程

  • 将.mlpackage文件夹从Finder直接拖入Xcode项目导航栏,弹出窗口中勾选「Copy items if needed」,并确保目标应用/框架target处于选中状态
  • 选中项目中的.mlpackage文件,在右侧属性检查器的「Target Membership」区域,只勾选你的目标target,不要勾选「Compile Sources」(确保文件被归类到「Copy Bundle Resources」中)
  • 切换到属性检查器的「Model」标签页:
    • 「Language」选择Swift
    • 「Class」设置为你需要的类名(建议和模型文件名一致,比如模型叫model.mlpackage就设为Model)
    • 「Access Level」根据需求选择public或internal

二、强制生成Swift存根的方法

如果遇到「Model class has not been generated yet」或「Cannot find 'xxx' in scope」错误,按以下步骤操作:

  • 彻底清理DerivedData:手动删除~/Library/Developer/Xcode/DerivedData/下对应项目的文件夹(比Xcode自带的「Clean Build Folder」更彻底)
  • 重新触发模型代码生成:
    1. 完全关闭Xcode,重新打开项目
    2. 选中正确的target,执行「Product > Build For > Testing」(这个操作比普通Build更易触发CoreML的代码生成逻辑)
    3. 若仍未生成,可在.mlpackage的「Model」属性检查器中临时修改「Access Level」(比如从internal改到public再改回去),触发Xcode的文件变更检测后重新构建
  • 验证生成结果:构建完成后,前往~/Library/Developer/Xcode/DerivedData/[项目目录]/Build/Intermediates.noindex/[项目名].build/[target名].build/DerivedSources/CoreMLGenerated/路径,查看是否存在与你设置的类名一致的Swift文件

三、常见问题排查

  • 报错「Cannot find 'model' in scope」:注意生成的类名是首字母大写的(比如Model),不要用小写的model去调用
  • 若生成的Swift文件存在但Xcode仍报错:执行「File > Project Settings > Build Location」,确认「Derived Data」路径正确,然后执行「Product > Clean Build Folder」,再重新构建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:02:44