操作项目中数据库属性字段类型的时候,强变更了一个属性的声明类型,导致了再次编译工程的时候出现了 Build system information 的 error: Multiple commands produce 的异常提示;
因为在进行数据库字段强改类型前工程都一切正常的状态,故可以确认其为异常出现的导火索;
其后变顺藤摸瓜排查其抵消异常的方法;
首先,查看了异常中所对应的类是否引起的冲突,但因强行修改了一个类中的某个字段的属性,却同时引起了 CoreData 的所有类属性都关联抛出了通用的异常提示;
尝试还原强行修改的属性后重新编译工程 Build,依然异常未能消除,还原方式无效而终,故怀疑另有蹊跷。
随后利用强大的度娘摸索了一波发现其相关缘由,具体阐述内容如下:
Xcode 10 中使用了一个新的构建系统。其新构建系统提供了改进的可靠性和构建性能,并且它还捕获了构建系统没有的项目配置问题。
新的构建系统对构建中的元素之间循环进行严格的检查,防止不必要的重新构建!重新构建!重新构建!
对于构建中的任何单个文件,由多个构建命令生成都是一个错误。例如,如果两个目标分别从 shell 脚本阶段声明相同的输出文件,则将输出文件的声明分解为单个目标。
通过如上的内容阐述,再回顾其系统抛出的异常信息内容,大致可以揣摩出其问题的导向。
解决方式:(个人选用的第二种,也更偏于尊重其 Xcode 的版本改进)
方式一、将 Xcode 的项目、工作配置中的编译系统选项进行修改为旧的模式,具体操作如下:
1.首先,将 Xcode 项目中选中打开 File => Workspace Settings...
2.其次,找打 Shared Workspace Settings: 一栏中的 Build System 属性
3.最后,将其配置 New Build System(Default) 切换至 Legacy Build System
方式二、将项目编译源 Compile Sources 中对应的类移除掉后,重新引入或创建:
首先,选择项目的 target => Build phases => Compile Sources
其次,将系统异常中对应的类移除掉
最后,重新引入移除掉的类或重新创建即可
以上便是此次内容的小结,希望能对大家有所帮助!