我正在使用带有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
。我该怎么办?
答案 0 :(得分:0)
我在构建设置中将Build Active Architecture Only
设置为NO,然后按照答案中的建议进行“深度清理”:Undefined symbols for architecture armv7: cocoaPods iPhone 5
这似乎解决了我的问题。