如何在Xcode中删除旧的/未使用的数据模型版本

SAH*_*AHM 162 version-control xcode core-data xcdatamodel

如何删除Xcode中的旧数据模型?菜单上禁用该选项.(我想删除的模型尚未向公众发布 - 它们是临时开发模型.)

Dav*_*ora 365

这是一个黑客,但这对我有用:

  1. 将Xcode中当前版本的模型设置为您要保留的版本
  2. 从项目中删除.xcdatamodeld(右键单击 - >删除 - > 仅删除参考)
  3. 在Finder中显示.xcdatamodeld包的内容(右键单击 - >显示包内容)
  4. 删除您不再需要的.xcdatamodel文件
  5. 将.xcdatamodeld文件重新添加到项目中

这消除了手动修改任何项目元数据文件的需要.

  • 我尝试了这种技术,发现由于我的模型版本的命名方式,模型版本被重新排序不正确,并且在我将 xcdatamodel 文件重新添加到项目中时选择了错误的默认版本。这可能是因为我最多38个模型版本而且我没有更改默认版本名称,所以版本命名为“MY_APP 37.xcdatamodel”。我想删除 38。在导入时,它是按词法顺序拉取的,意思是“MY_APP 10.xcdatamodel”是第一个,并选择为默认值。在我的情况下并不理想。 (4认同)
  • Mike - 对我来说同样的问题,尽管我能够在文本编辑器中重新排序 project.pbxproj 没有任何重大的戏剧性。还是不理想。 (2认同)

Dan*_*ood 35

我刚刚发现需要这样做.我创建了一个新的模型版本然后意识到我毕竟不需要它.我惊讶地发现没有办法从Xcode中删除它(我能找到).仍然,删除它我做了以下:

首先,我确定它不是我当前的型号版本.然后我去了Finder并找到了我的*.xcdatamodeld文件.右键单击并显示包内容.在那里你会找到实际的模型文件,并可以删除它.

这仍然不会从Xcode中删除它,它将在文件和组中显示红色.要阻止这种情况发生,请返回主*.xcodeproj文件中的Finder和Show Package Contents(您可能需要确保先备份此文件).在那里打开并编辑project.pbxproj在你的模型版本名称上查找,在我的情况下为"interval 8".对我而言,它出现在两个单独的行上.我删除了这些行,现在它已完全从Xcode中删除.

  • @Daniel_Wood,是的,我也找到了如何手动完成,但要小心。它可能会导致一些问题......我不得不重新做几次,它有时也会切换活动和非活动版本,然后当你重置正确的版本时,它不会将它移动到导致更多问题的列表顶部(有时)!非常感谢您的投入。他们会删除此功能似乎很奇怪 - 我们永远不必进入 .xcodeproj 文件! (2认同)

Ton*_*ony 8

这在 XCode 10.3 中对我有用,在删除整个模型并再次添加时不会出现排序问题:

  1. 选择要删除的模型版本以外的任何模型版本。
  2. 在 XCode 中,右键单击 .xcdatamodeld 文件并选择“在 Finder 中显示”。
  3. 关闭 XCode。
  4. 在 finder 中,右键单击同一文件并选择“显示包内容”。
  5. 记下要删除的模型的名称,然后从 Finder 中删除它。
  6. 仍然在 Finder 中,导航到项目文件 (.xcodeproj)。
  7. 右键单击并使用Atom或任何其他编辑器打开。
  8. 从“项目”窗格中打开 project.pbxproj 文件。
  9. 删除包含您删除的模型名称的所有行(例如:“ABC 17.xcdatamodel”)。您会发现两行类似于以下内容:

    9D88880323C545B800A789B9 /* ABC 17.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; 路径=“ ABC 17.xcdatamodel ”;源树 = ""; };

    9D88880323C545B800A789B9 /* ABC 17.xcdatamodel */,

    请注意,如果您找到第三行,它将类似于:

    当前版本 = 9D88880323C545B800A789B9 /* ABC 17.xcdatamodel */;

    这意味着它是当前选择的模型。永远不要删除这一行。只需将文本更改为另一个模型版本即可。

  10. 重新打开 XCode。