我需要在单元测试中添加一个.mlmodel文件,以便检查框架中的编程模型编译。但是,从版本12开始,Xcode会自动编译添加到项目中的任何.mlmodel文件,并将其替换为.mlmodelc,这在本文中是不需要的。
因此,如果我在项目中添加TestModel.mlmodel
,我就无法获得资源URL:
NSBundle *bundle = [NSBundle bundleForClass:ModelTest.class];
// modelURL is nil
NSURL *modelURL = [bundle URLForResource:@"TestModel"
withExtension:@"mlmodel"];
如果我打开编译后的捆绑包,我可以在那里看到TestModel.mlmodelc
。
如何在Xcode中禁用CoreML模型的自动编译?
当在项目导航器中选择项目时,所有编译的文件都可以在BuildPhases选项卡的CompileSource部分找到。你能在那里找到文件吗?如果是,你可以直接删除它。
当在项目导航器中选择文件时,您可以从文件检查器的目标成员资格部分执行相同操作:如果选中了目标名称旁边的框,请取消选中它。
最后,如果您希望将此文件添加到应用程序的资源中,您可能需要将其添加到构建阶段选项卡的复制捆绑包资源部分(或者您可以为其创建特定的复制文件阶段(