使用cocoaPod移除第三方后編譯報錯 apple mach-o linker (ld)error

? ? 編輯Podfile,刪除第三方后,執行 ?$pod install --verbose --no-repo-update

? ? 刪除成功后 編譯報錯apple mach-o linker (ld)error

? ? 這是一個常見錯誤,無非就是依賴沒有link,buildSetting 中沒有load網上一搜解決辦法一大堆。但是自己看,報錯的庫是一個非cocoaPod管理的支付sdk這就有些頭疼了,畢竟和cocoaPod關聯不大,然后也是什么辦法都想了,重新添加庫,重新添加依賴,最后看到一個不太可能解決的辦法,博主也說了,這個方法他也覺得不管用,但是解決了

/Users/$(apple)/Library/Developer/Xcode/DerivedData

? ? 進入finder下,xcode緩存目錄,清除和本工程相關的緩存(也提供了一個思路,如果筆記本內存較小,可定期清理這個目錄下緩存,會大大減小xcode所占用空間)然后 clean工程 ?shift + ?command + k 重新運行,報錯就消失了

? ? 個人猜測是cocopod的缺陷,清除第三方庫卻沒有清除xcode緩存,編譯時,還會以緩存為主。

當然報這個錯的原因是多樣的,不過關鍵還是和 link ?庫文件相關,重復導入,缺少添加依賴等等。如果報錯中,有指定的 xxx.o ? xxxx.a 那還是老老實實檢查是否有依賴庫沒有添加。

? ? 當然,還有一種是模擬器不報錯,但是真機運行就會報錯,這種很可能是因為第三方庫不支持Enable Bitcode,這個到底是個什么呢,我也不知道,查了下資料,大概是后期允許apple對包的優化,可能會獲取或者更改包里的東西,所有有些私密性比較強的sdk會不支持這個 bitcode 在bulidSetting中,關閉他,將YES改為NO。再編譯就會好了。

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

推薦閱讀更多精彩內容