1.在使用了cocoapods的project中得整个编译链接过程大致为:先编译每一个第三方库链接生成.a文件,然后pods依赖各个第三方的库编译链接生成的.a文件编译链接生成libPods.a静态库,最后project依赖libPods.a编译链接生成可执行程序.
2.pods生成的.a静态库会添加到工程的Frameworks中,这里会出现一个project链接问题:project是在libPods.a库的基础上编译链接的但是报错链接时找不到第三方库中的.m文件??
原因是:1.project中Frameworks里面的libPods.a静态库可能不是在当前设备(真机或模拟器)下编译链接生成的,然而project在链接libPods.a并不会做出判断,导致出现第三方库中的类文件在第三方库被编译生成.a文件后找不到(正常情况是第三方库中的.m文件会被编译生成.a文件,此时project是不需要在编译该.m文件的).
解决方法:goto -> project和pods的targets -> build setting -> build active architecture only 均选择 NO.(不仅是只编译链接生成当前框架下的工程)