【iOS开发】iOS开发中的编译问题

一、使用Cocoapod时出现 Pod Error in Xcode “Id: framework not found Pods-xxx”

根据这个答案,成功解决了问题,但是原理不清楚 。
Pod Error in Xcode “Id: framework not found Pods”

二、ld: symbol(s) not found for architecture armv7

【iOS开发】iOS开发中的编译问题_第1张图片

错误详情如上图。
意思就是未找到这个类或方法的声明。

这个错误目前遇到的分两种情况

1、静态库(.a)本身不支持这个架构

验证方法

  1. cd 到放静态库的文件夹
  2. 使用命令:lipo -info xxxx.a 下面会输出此静态库所支持的架构。如图:
【iOS开发】iOS开发中的编译问题_第2张图片
Snip20170515_14.png

如果没有确实是.a库本身不支持,那就需要重新编译一个.a库,如果是第三方SDK,则需要向第三方要包含所需要架构的SDK。

2、project.pbxproj 设置问题

参考文章:
坑爹的 LD: SYMBOL(S) NOT FOUND FOR ARCHITECTURE ARMV7
symbol(s) not found for architecture armv7

xcode项目import文件会根据project.pbxproj来查找,查找不到文件的引用则会有上述的错误。

解决方法点击工程,在主界面中点击Build Phases,根据提示信息“XXX”来判断缺少什么文件,一般如果缺少自定义的文件,Complie Sources下没有XXX文件,那么就在Complie Sources中加入该文件。如果缺少类库,则在Link Binary With Libraries中加入该类库。

另外,需要注意的是,有时你所使用的第三方库中需要系统库,但是报错又会报到你使用的第三方库,结果就不知道该添加那个库,这时最好去问第三方库的开发人员。

你可能感兴趣的:(【iOS开发】iOS开发中的编译问题)