ObjC类别没有链接到iOS7

时间:2017-03-02 11:20:17

标签: objective-c ios7 cocoapods sdwebimage objective-c-category

我正在使用带有CocoaPods的SDWebImage,而我正在使用的应用程序必须支持iOS7。

使用CocoaPods安装SDWebImage版本4.0.0后,我将其导入到#import <SDWebImage/UIImageView+WebCache.h>的类中。

我使用其中一种类别的方法sd_setImageWithURL:来异步下载图像。

这适用于iOS8-10。但出于某种原因(仅在iOS7上),该应用程序崩溃说sd_setImageWithURL:是一个无法识别的选择器。

为什么类别只能在一个操作系统上正确加载?这对我来说根本没有任何意义。 :/

更新 我对项目进行了分析,我注意到了这个警告:

ld: warning: ignoring file <path/to/file>/libSDWebImage.a, file was built for archive which is not the architecture being linked (armv7): <path/to/file>/libSDWebImage.a

(路径真的很长。我用<path/to/file>替换了

正如我所怀疑的,当在较新版本的iOS上运行时,此警告不会显示,该版本也使用不同的架构arm64。

因此,看起来正在为arm64构建库libSDWebImage.a。我该怎么办?

1 个答案:

答案 0 :(得分:0)

我在构建设置中将Build Active Architecture Only设置为NO,然后按照答案中的建议进行“深度清理”:Undefined symbols for architecture armv7: cocoaPods iPhone 5

这似乎解决了我的问题。