升级到Xcode 7会在CoreData模型上创建"缺少当前版本声明"警告

Sit*_*ric 8 xcode core-data objective-c ios

想我会在这里发一个完整的问题/答案给已知的bug:

从先前版本升级到Xcode 7(稳定版/测试版)时,您的构建突然会为您的CoreData模型文件提供一个新警告:"缺少当前版本声明".

最糟糕的是,双击此警告无处可去,并且Xcode中没有关于分辨率的明显提示.你是如何解决这个问题的?

Sit*_*ric 10

注意:这是在Xcode 6.4和Xcode 7 beta 3上测试的 - 从Xcode 7 beta 4开始,似乎有一个内置解决方案,手动创建文件不再有效 - 请参阅接受的答案

打开终端,然后导航到项目目录和模型文件 - 您的命令应如下所示:

cd /Users/YOU/Documents/MyProject/MyProject/MyDataModel.xcdatamodeld
Run Code Online (Sandbox Code Playgroud)

现在列出数据模型目录的所有内容:

ls -la
Run Code Online (Sandbox Code Playgroud)

如果您没有看到名为".xccurrentversion"的文件,则需要创建该文件.

nano .xccurrentversion
Run Code Online (Sandbox Code Playgroud)

复制/粘贴模型版本所需的XML:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
<plist version="1.0">  
<dict>  
  <key>_XCCurrentVersionName</key>  
  <string>YOURDATAMODELNAME.xcdatamodel</string>  
</dict>  
</plist>
Run Code Online (Sandbox Code Playgroud)

YOURDATAMODELNAME替换为数据模型目录的名称,减去扩展名(例如,MyDataModel.xcdatamodeld - > MyDataModel).

现在,您可能需要修复该文件的权限:

chmod 775 .xccurrentversion
Run Code Online (Sandbox Code Playgroud)

..这就足够了.

清理项目,重新启动Xcode,重建 - 警告应该消失.

主要是从这个线程编译,具有一些更具体的特权+权限修复:https://forums.developer.apple.com/thread/8861


amb*_*ght 8

在Xcode的Core Data模型编辑器中,在菜单栏中选择Editor - > Add Model Version.

在此输入图像描述

然后在version name您可以自由指定您喜欢的内容,您只需输入您的型号名称即可.(在Xcode 7 beta 4上验证)

(这将导致在数据模型包中创建.xccurrentversion)