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

介紹一下環(huán)境

Xcode 7.3.1

Mac OS X 10.11.5

iPhone 6 Plus

CocoaPods 1.0.1

首先看一下 Bug

報錯的原因是 Undefined symbols for architecture arm64

看起來應(yīng)該是 arm64 下沒有鏈接到 AFNetworking 的 .a 文件

首先確認(rèn)一下這個 .a 文件有沒有存在,在 Products 文件夾里可以看到這個 libAFNetworking.a 是存在的,那么為什么 arm64 鏈接不到呢?

各種 Clean、百度、Google 之后,并沒有解決,但是每次重新 Clone 下來的工程(與原工程在不同的目錄里),都是 OK 的,然后復(fù)制到原工程目錄下,又會報出這個問題。

經(jīng)過探索,終于找到了這個蛋疼的問題根源,并解決。

原因

TeamLeader 在配置 CocoaPods 的時候,用的是 0.39.0 的版本,我在我的分支里,升級了 CocoaPods 到1.0.1,在升級 CocoaPods 之后,改變了編譯之后 .a 文件的目錄

但是老版本的 libAFNetworking.a 依然存在,在鏈接時,首先找到了老的 libAFNetworking.a,并鏈接,導(dǎo)致新的 AFNetworking 有些類、變量,沒有鏈接到。

升級之后的每次 Clean,都只會 Clean 到新目錄下的文件,老的文件并不會被 Clean 到。

一個大寫的尷尬??

解決方案

1、給工程改個名字

2、給工程換個目錄

3、刪除這個工程對應(yīng)的 Products 文件夾下的老文件,如果不知道這個文件夾在哪里,你可以右鍵單擊 libAFNetworking.a,點擊 Show in Finder,上一級就是你要找的位置了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 項目組件化、平臺化是技術(shù)公司的共同目標(biāo),越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件,一方面使項目架構(gòu)...
    swu_luo閱讀 22,847評論 0 39
  • CocoaPods 是什么? CocoaPods 是一個負(fù)責(zé)管理 iOS 項目中第三方開源庫的工具。CocoaPo...
    朝洋閱讀 25,990評論 3 50
  • 原文:http://www.itdecent.cn/p/88d7ada1b58b 一、git clone方法安裝c...
    希望_希望_閱讀 10,964評論 1 9
  • 十年后的我: 你好! 第一次這樣稱呼很不舒服!當(dāng)然,現(xiàn)在寫信的人是我,以后收到這封信的人同時也是我。感覺好奇怪,貌...
    420_c644閱讀 359評論 0 0
  • 2017.11.14 原創(chuàng)分享第二十八天 星期二 焦點網(wǎng)五中 晴 鄭州 張婷 我這兩天不管是沙盤呈現(xiàn)出我的...
    覺察的蝴蝶閱讀 206評論 0 0

友情鏈接更多精彩內(nèi)容