iOS开发-Build operation failed without specifying any errors 问题fix

Xcode报错如图:


xcode报错图.png
verify final result code for completed build operation
Build operation failed without specifying any errors. Individual build tasks may have failed for unknown reasons.
One possible cause is if there are too many (possibly zombie) processes; in this case, rebooting may fix the problem.
Some individual build task failures (up to 12) may be listed below.

1.cocoapods版本导致

cocoapods官网
cocoapods github发布页面

2018-01-24 发布.png

检查发现本地mac系统上cocoapods版本是最新的1.4.0(2018年1月24日)

//删除1.4.0包
sudo gem uninstall cocoapods -v 1.4.0

//然后安装指定版本的Cocoapods
sudo gem install cocoapods -v 1.3.1

//检查版本
pod --version

然后重新拉代码,pod update
编译运行OK!

2.Perform Single-Object Prelink设置导致

categories in static library

xcode编译的时候不会把静态库里面全部的类都加载进去,它会找主工程用到了哪些符号,然后把用到的加载进去。但是这个看起来很美的机制有个大坑,就是oc的分类是不生成符号的,也就是说,比如你在工程用了一个分类的方法[NSString categoryMethod], 编译器只会认为需要用到NSString, 而不知道categoryMethod是静态库里一个分类的方法,所以不会去加载静态库的分类。

目前的解决方法就是给编译器一个标志,告诉编译器整个静态库都要加载:

1).-all-load. 把所有静态库里的所有.o都加载
2).-force_load. 可以指定加载哪个静态库的所有.o
3).-ObjC. 把所有OC代码都加载。
4).Perform Single-Object Prelink.
前3个编译选项都是设在主工程的,这个选项是设置在静态库的。表示把这个子工程预编译成一个.o文件,当整个静态库有一个符号被引用就把整个.o文件打包进去。
可能是Perform Single-Object Prelink的实现有bug,文件多了就挂了。

参考文章

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,436评论 25 708
  • 正常的使用Service,我们都是在ServiceConnection的回调中强转成自己的service,下面这种...
    NewHigh阅读 348评论 0 0
  • 作为亲身经历的人,我讲真说六号线已经成功超越五号线的拥挤,五号线大家上不去就排队等下一班喽,可六号线好像不存在这种...
    ee085cf29169阅读 381评论 0 0
  • “我们先来看一下体罚的定义,体罚是教师对学生肉体实施惩罚并使其受到伤害的行为,如殴打、罚站、下蹲、超过身体极限的运...
    我是想想的黑眼圈阅读 348评论 1 2
  • LeanMessage 移动开发 SDK 是由 LeanCloud 提供的,专为 iOS、Android 和 Wi...
    丰俊文阅读 2,977评论 1 41