Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_MailDetailsV", referenced from: XXX
今天在自己的電腦上編譯一份別人的代碼時(shí)遇到這個(gè)經(jīng)典的編譯錯(cuò)誤,相信很多人也遇到過,我按照常規(guī)的辦法處理后問題仍重復(fù)出現(xiàn),各種百度谷歌都是無(wú)補(bǔ)于事,百思不得其解;花了一個(gè)多小時(shí),最終問題還是得以解決了,在此分享解決該問題的經(jīng)驗(yàn)。
1,大部分情況下是因?yàn)橥浱砑酉到y(tǒng)某些庫(kù)文件或自定義類文件導(dǎo)致的,解決方法是添加對(duì)應(yīng)的文件即可,如果是缺少自定義文件OBJC_CLASS$_后面跟的是類名,那么到compile sources中添加缺省文件:TARGETS -- Build Phases-- Compile Sources ;若缺少類庫(kù),則到Link Binary With Libraries中加入對(duì)應(yīng)類庫(kù)即可。
2,文件路徑缺失,檢查工程文件路徑是否正確: TARGETS -- Build Settings -- Search Paths
3,若1、2都無(wú)法解決問題,那么最終解決方案是:
1)清理Xcode緩存
rm -rf ~/Library/Developer/Xcode/DerivedData/
2)清理CocoaPods緩存
rm -rf "${HOME}/Library/Caches/CocoaPods"
rm -rf "`pwd`/Pods/"
pod update
3)最后將Build
Active Architectures Only 設(shè)置為NO