記一次詭異的 CocoaPods 引起的鏈接錯誤

介紹一下環境

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,上一級就是你要找的位置了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容