symbol(s) not found for architecture i386

今天想跟大家分享一个关于cocopoads管理依赖库的经历,我接手了一个别人开发了一个版本的项目。原项目没有使用cocoaPods来管理依赖库,由于要开发新功能使用Stripe来支付,所以就想利用cocopoads直接pod stripe的sdk来做。此处略过pod 的install,安装好strip之后可是怎么都不能编译成功,巧的是release模式下可以编译成功,debug就是不能成功。我也试了headPath的修改、libraryPath的修改、bulidPhase的添加,可就是不行。

报错的图片1
报错的图片2

其实二者的原因都是同一个。最后在一遍博客中找到了一个关于Active Architecture Only的设置项

Architecture

其实并不陌生,这是一个针对编译方式的集合设置,Build Active Architecture Only:是否只编译当前设备适用的指令集(如果这个参数设为YES,那么如果你用iPhone 6调试,最终生成的一个支持arm64指令集的Binary;如果你用iPhone4编译,最终生成一个支持armv7指令集的Binary,所以一般在DEBUG模式下设为YES,RELEASE设为NO),我将debug模式改成yes之后巧的是,居然编译通过了 ,原因是:引入静态库的工程文件的Build Active Architecture Only属性设置要和你的静态库的属性设置一致,不然就会报architecture不对的错误,详情请跳到(http://blog.csdn.net/htmlgood/article/details/51534891),感谢该博主的解惑。

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

推荐阅读更多精彩内容