使用cocoaPod移除第三方后编译报错 apple mach-o linker (ld)error

    编辑Podfile,删除第三方后,执行  $pod install --verbose --no-repo-update

    删除成功后 编译报错apple mach-o linker (ld)error

    这是一个常见错误,无非就是依赖没有link,buildSetting 中没有load网上一搜解决办法一大堆。但是自己看,报错的库是一个非cocoaPod管理的支付sdk这就有些头疼了,毕竟和cocoaPod关联不大,然后也是什么办法都想了,重新添加库,重新添加依赖,最后看到一个不太可能解决的办法,博主也说了,这个方法他也觉得不管用,但是解决了

/Users/$(apple)/Library/Developer/Xcode/DerivedData

    进入finder下,xcode缓存目录,清除和本工程相关的缓存(也提供了一个思路,如果笔记本内存较小,可定期清理这个目录下缓存,会大大减小xcode所占用空间)然后 clean工程  shift +  command + k 重新运行,报错就消失了

    个人猜测是cocopod的缺陷,清除第三方库却没有清除xcode缓存,编译时,还会以缓存为主。

当然报这个错的原因是多样的,不过关键还是和 link  库文件相关,重复导入,缺少添加依赖等等。如果报错中,有指定的 xxx.o   xxxx.a 那还是老老实实检查是否有依赖库没有添加。

    当然,还有一种是模拟器不报错,但是真机运行就会报错,这种很可能是因为第三方库不支持Enable Bitcode,这个到底是个什么呢,我也不知道,查了下资料,大概是后期允许apple对包的优化,可能会获取或者更改包里的东西,所有有些私密性比较强的sdk会不支持这个 bitcode 在bulidSetting中,关闭他,将YES改为NO。再编译就会好了。

你可能感兴趣的:(使用cocoaPod移除第三方后编译报错 apple mach-o linker (ld)error)