关于ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later (@rpath/XXX.framework/XXX) for architecture x86_64 错误解决

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

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上报错](http://www.cocoachina.com/bbs/read.php?tid=1677683)),但是我并不明白这种解决方法是什么意思,最后请教群里的大牛解决了,所以写出详细解决方法,方便日后有人遇到相同问题。

特此感谢大神AK。

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

#### **1. 首先修改项目的PROJECT和TARGET**
![修改项目的PROJECT](http://upload-images.jianshu.io/upload_images/138622-68f7f3133ed538f7.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![修改项目的TARGET](http://upload-images.jianshu.io/upload_images/138622-0f09a542cd0b3766.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### **2. 修改Pods的PROJECT**
![修改Pods的PROJECT](http://upload-images.jianshu.io/upload_images/138622-56f033d5073d972c.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### **3. 修改Pods的各个TARGETS**
pods中有很多targets,所以需要一个个修改,这里以第一个AFNetworking为例。
![修改Pods的TARGETS](http://upload-images.jianshu.io/upload_images/138622-120a7bd2c02f8443.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

#### **4. 注意事项**
这样修改其实并不完美,因为当你重新pod install 或者pod update的时候,pods中的这些project 和targets就会重新变回8.0,毕竟Xcode8最低支持的是iOS8.0的系统,所以还是要重复步骤3的操作,不知道有没有一劳永逸的方法,目前只能先这么改。
#### **5. 补充**
后来找到了一个完美的解决办法,就是按照文章[[Xcode8兼容iOS7手记](http://blog.csdn.net/codingfire/article/details/52638265)](http://blog.csdn.net/CodingFire/article/details/52638265)中的方法,使Xcode最低支持到7.0,这样每次pod install或者pod update的时候pods中的这些project 和targets不会重新变回8.0。

你可能感兴趣的:(关于ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later (@rpath/XXX.framework/XXX) for architecture x86_64 错误解决)