随着iOS10的发布,越来越少人用iOS7.x的系统了,再加上xcode8现在也没有iOS7系列的模拟器可以调试,所以最近升级的一款应用最低支持提升到了8.0。可是发布没几天就不断的有家长打电话声称应用安装不上,大部分都是因为他们的手机是iOS7.x的系统,所以无奈只能将最低支持降低到7.0。可是改完应用的PROJECT和TARGETS却报错了。

1
ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later (@rpath/AFNetworking.framework/AFNetworking) for architecture x86_64

可是不应该啊,我pod中的AFNetworking版本是2.6.3是支持iOS7的为什么报错呢?
几经谷歌搜索看到论坛中有人解决了(cocoapods 添加的库部署到iOS7.0上报错),但是我并不明白这种解决方法是什么意思,最后请教群里的大牛解决了,所以写出详细解决方法,方便日后有人遇到相同问题。
特此感谢大神AK。

其实该问题的主要原因是Pods中的PROJECT和各个TARGETS版本与我们项目的PROJECT和各个TARGET版本不一致造成的。为了兼容低版本我们通常不会忘记修改项目的PROJECT和各个TARGET,但是Pods中的各个版本不一定会自动跟着改变,尤其是现在Xcode8默认最低版本是ios8.0,所以Pods的各版本最低是8.0才会造成这个错误,需要我们手动改成7.0。

1. 首先修改项目的PROJECT和TARGET

修改项目的PROJECT
修改项目的TARGET

2. 修改Pods的PROJECT

修改Pods的PROJECT

3. 修改Pods的各个TARGETS

pods中有很多targets,所以需要一个个修改,这里以第一个AFNetworking为例。
修改Pods的TARGETS

4. 注意事项

这样修改其实并不完美,因为当你重新pod install 或者pod update的时候,pods中的这些project 和targets就会重新变回8.0,毕竟Xcode8最低支持的是iOS8.0的系统,所以还是要重复2和3的操作,不知道有没有一劳永逸的方法,目前只能先这么改。

5. 补充

后来找到了一个完美的解决办法,就是按照文章Xcode8兼容iOS7手记中的方法,使Xcode最低支持到7.0,这样每次pod install或者pod update的时候pods中的这些project 和targets不会重新变回8.0。