我正在使用带有可可录的sdwebimage,而我正在使用的应用程序必须支持ios7。
使用可可录安装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。
因此,看起来库libSDWebImage.a
正在为ARM64构建。我该怎么办?
i在构建设置中将Build Active Architecture Only
设置为no,然后按照答案所建议的"深清洁":架构ARMV7的未定义符号:Cocoapods:Cocoapods iPhone 5
似乎为我解决了问题。