Xcode build的時(shí)候報(bào)錯(cuò)
Undefined symbols for architecture arm64: ... "_OBJC_CLASS_$_AFHTTPRequestOperationManager", referenced from:_OBJC_CLASS_$_AppDelegate in AppDelegate.o"_OBJC_CLASS_$_AFHTTPResponseSerializer", referenced from:objc-class-ref in AppDelegate.o...
在cocoapods管理第三方的時(shí)候經(jīng)常遇見(jiàn)破喻,很煩人泞遗,解決辦法有一下幾種:
1跛蛋、檢查庫(kù)文件是否導(dǎo)入
檢查Compile Sources中是否有缺少.m文件庆揪;檢查link binary with libraries中是否缺少依賴庫(kù)匙握,但是在Xcode7上面好像很少出現(xiàn)這種問(wèn)題,但是出問(wèn)題也了不能不查派诬。
2劳淆、確定系統(tǒng)依賴庫(kù)是否導(dǎo)入
我們用到的大部分第三方庫(kù)都需要導(dǎo)入響應(yīng)的系統(tǒng)依賴庫(kù),例如libz.dylib(或者libz.tbd)默赂,當(dāng)缺少依賴庫(kù)時(shí)也會(huì)報(bào)錯(cuò)沛鸵,具體需要哪些系統(tǒng)依賴庫(kù)要看第三方文檔。
3、檢查導(dǎo)入庫(kù)路徑是否正確
檢查所導(dǎo)入庫(kù)文件路徑的下文件是否存在曲掰,并檢查targets-->building setting下search paths下相應(yīng)路徑是否正確疾捍。4、設(shè)置Other Linker Flags
很多第三方庫(kù)直接導(dǎo)入xcode栏妖,編譯的時(shí)候都不能正確識(shí)別乱豆,需要在build settings 中設(shè)置 Other Linker Flags:
a、添加值$(inherited)
b吊趾、添加值-ObjC
c咙鞍、添加值-force_load path/to/yourSdk
5、設(shè)置Link With Standerd Libraries
有時(shí)候工程中需要用到混編趾徽,如果Link With Standerd Libraries的值不小心設(shè)置成NO的話很可能許多函數(shù)找不到续滋,報(bào)Undefined symbols for architecture arm64錯(cuò)誤,將其值設(shè)置成YES就可以了孵奶。
6疲酌、DerivedData
設(shè)置完以上步驟,clean 一下工程 重新編譯了袁,如果還出錯(cuò)朗恳,關(guān)閉xcode,打開(kāi)finder 载绿,使用快捷鍵command +shift +g 搜索目錄~/Library/Developer/Xcode/DerivedData/ 找到你的app對(duì)應(yīng)的文件夾粥诫,刪除這個(gè)文件夾,重新打開(kāi)xcode運(yùn)行崭庸,應(yīng)該就OK了怀浆。