介绍一下环境
Xcode 7.3.1
Mac OS X 10.11.5
iPhone 6 Plus
CocoaPods 1.0.1
首先看一下 Bug
报错的原因是 Undefined symbols for architecture arm64
看起来应该是 arm64 下没有链接到 AFNetworking 的 .a 文件
首先确认一下这个 .a 文件有没有存在,在 Products 文件夹里可以看到这个 libAFNetworking.a 是存在的,那么为什么 arm64 链接不到呢?
各种 Clean、百度、Google 之后,并没有解决,但是每次重新 Clone 下来的工程(与原工程在不同的目录里),都是 OK 的,然后复制到原工程目录下,又会报出这个问题。
经过探索,终于找到了这个蛋疼的问题根源,并解决。
原因
TeamLeader 在配置 CocoaPods 的时候,用的是 0.39.0 的版本,我在我的分支里,升级了 CocoaPods 到1.0.1,在升级 CocoaPods 之后,改变了编译之后 .a 文件的目录
但是老版本的 libAFNetworking.a 依然存在,在链接时,首先找到了老的 libAFNetworking.a,并链接,导致新的 AFNetworking 有些类、变量,没有链接到。
升级之后的每次 Clean,都只会 Clean 到新目录下的文件,老的文件并不会被 Clean 到。
一个大写的尴尬😅
解决方案
1、给工程改个名字
2、给工程换个目录
3、删除这个工程对应的 Products 文件夹下的老文件,如果不知道这个文件夹在哪里,你可以右键单击 libAFNetworking.a,点击 Show in Finder,上一级就是你要找的位置了。