Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_MailDetailsV", referenced from: XXX
今天在自己的電腦上編譯一份別人的代碼時遇到這個經典的編譯錯誤,相信很多人也遇到過,我按照常規的辦法處理后問題仍重復出現,各種百度谷歌都是無補於事,百思不得其解;花了一個多小時,最終問題還是得以解決了,在此分享解決該問題的經驗。
1,大部分情況下是因為忘記添加系統某些庫文件或自定義類文件導致的,解決方法是添加對應的文件即可,如果是缺少自定義文件_OBJC_CLASS_$_后面跟的是類名,那么到compile sources中添加缺省文件:TARGETS -- Build Phases-- Compile Sources ;若缺少類庫,則到Link Binary With Libraries中加入對應類庫即可。
2,文件路徑缺失,檢查工程文件路徑是否正確: TARGETS -- Build Settings -- Search Paths
3,若1、2都無法解決問題,那么最終解決方案是:
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 設置為NO