[英]Error: ld: library not found for -lPods with CocoaPods
在我使用 Cocoapods 安裝 DTCoreText ( https://github.com/Cocoanetics/DTCoreText ) 后,當我嘗試運行模擬器或設備時,總是出現錯誤!
ld: warning: directory not found for option '-L/Users/example/Desktop/ios/Pods/build/Release-iphoneos'
ld: warning: directory not found for option '-L/Users/example/Desktop/ios/Pods/build/Debug-iphoneos'
ld: library not found for -lPods-example
clang: error: linker command failed with exit code 1 (use -v to see invocation)
在我的“Link Binary With Libraries”中,“libPods”部分是紅色的:
這是我的構建設置:
我的項目的設置:
我的 Pod 的設置:
編輯:
我不確定是什么問題,但是當我刪除所有 DTCoreText 和 Cocoapods 內容並重新安裝所有內容時,我解決了它!
建議嘗試以下對我有用的方法:
a) 從目標設置視圖中的“庫”中搜索並雙擊以檢查Library Search Paths
的值
b) 列出$(inherited)
兩個值$(inherited)
和$(PROJECT_DIR)/Pods/build/Debug-iphoneos
。 刪除后者。
c) 徹底清理、構建和運行
d) 再次運行pod install
。 請注意,該條目未恢復。
這也可能有幫助:
確保您打開的是 .xcworkspace 文件,而不是 .xcodeproj
在我鏈接的二進制文件中,我同時擁有libPods.a
和libPods-MyProj.a
。 我之前已經將我的 Podfile 更新為有兩個單獨的目標(以使其在 Swift 中通過橋接編譯測試),這意味着我必須手動刪除舊的libPods.a
依賴項。
我發現我的其他鏈接器標志構建設置中缺少$(inherited)
。 應用此選項修復了我看到的缺少庫的問題。
我發現選擇“查找隱式依賴項”(在產品/編輯方案下)將解決此問題,而不必添加 pod 作為目標。
在目標的構建設置頁面中查找“庫搜索路徑”。 將 Debug 的文件夾名稱從 Debug-iphoneos 更改為 Debug-iphonesimulator
確保缺失的 pods 庫得到實際構建。 為此,請打開構建方案
Product > Scheme > Edit Scheme... > Build
添加 Pods 目標並將其放在抱怨庫丟失的目標之前(在我的情況下,這是 UI 測試 - 我只是為此掙扎了幾個小時......)
造成這個問題的原因有很多。
我們需要檢查:
$(inherited)
故障排除: http : //guides.cocoapods.org/using/troubleshooting.html
對我來說,錯誤是:Pods 目標不包含 i386 所需的架構切片。 因此,我單擊了 Pods 項目 --> Pods-ProjectName 目標,然后在構建設置中,將Debug和Release 的Build Active Architecture Only 設置為 NO 。 這可確保構建模擬器和設備切片。 模擬器使用i386架構,實際設備使用x86-64。 所以你必須確保所有依賴項目的所有依賴目標都同時構建,如果你想同時在模擬器上運行和側面加載到設備。
使用App擴展時,導航到擴展目標,過濾到庫搜索路徑,刪除編譯警告給你的路徑。
在Build Settings
從VALID_ARCHS
刪除armv7
為我解決了這個問題(Xcode 10.3)。 我能有后才提交armv7s
, arm64
和arm64e
在VALID_ARCHS
。
首先我跑了
sudo rm -r /Library/Developer/CommandLineTools
刪除命令行工具目錄。 然后我再次安裝了命令行工具
xcode-select --install
這為我解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.