[英]What is causing this Crashlytics compile warning? (Auto-Linking supplied '…' framework linker option at '…' is not a dylib)
[英]Auto-Linking framework not found
我已經創建了一個名為BTNavigationDropdownMenu
的框架(ios 的 swift 項目)。 一切正常,直到我嘗試向我創建的分支中的最新版本添加依賴項。 無論我是通過 podfile 還是通過Carthage
添加其他框架( DYBadge
),問題都是一樣的。
未找到自動鏈接框架DYBadge
。
作為DYBadge
一部分的UIView
擴展似乎有問題。
DYBadge
在我正在開發的主應用程序中運行良好(我在應用程序目標中也需要它)。
下面的錯誤。 感謝您對正確方向的任何提示。
ld:警告:未找到自動鏈接框架 DYBadge 架構 x86_64 的未定義符號:“(DYBadge 中的擴展):__ObjC.UIView.getBadge() -> DYBadge.DYBadge?”,引用自:Demo.BTNavigationDropdownMenu.updateBadge(text: Swift.String, at: Swift.Int) -> () in BTNavigationDropdownMenu.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Xcode 無法找到您的框架,因為FRAMEWORK_SEARCH_PATHS
可能未設置或錯誤(發生在我身上,因為我移動了Info.plist
文件)。
您可以通過進入目標並調整構建設置來解決此問題。 只需在其中搜索FRAMEWORK_SEARCH_PATHS
並添加正確的$(PROJECT_DIR)/Carthage/Build/iOS
,通常是$(PROJECT_DIR)/Carthage/Build/iOS
(對於 iOS 項目)。 $(inherited)
也應該作為第一個條目在那里。
這是評論中@user3122959 回答的帖子,它幫助我和其他人解決了這個問題,並被要求作為這個問題的答案。
試試這個過程——
"Cmd + Shift + K"
或shift + cmd + alt + k
進行清理,並退出 Xcode。"rm -rf ~/Library/Developer/Xcode/DerivedData"
re-build
它我在從測試中訪問 3rd 方框架時遇到了這個問題。 這是我修復它的方法。
在 Xcode 中,轉到: Your Unit-Test target > Build Phases > Link Binary With Libraries
在 Finder 中轉到: Carthage > Build > yourframework.Framework
將框架拖入構建階段,然后清理(cmd - shift - K)。
如果您使用的框架在 false 上啟用了 Bitcode,這也可能是一個錯誤。 只有當所有框架都啟用了 Bitcode 時,Bitcode Enabled 才能為 true。 轉到您的目標構建設置並禁用位碼。
如果您在一個工作區中使用 Carthage 和多個項目,則必須向您的主 Carthage 文件夾添加符號鏈接。 這將取決於你有什么結構,但例如,如果你有
項目 -> 迦太基
Project -> Frameworks -> MyImbaFramework 而不是 cd 在 MyImbaFramework 文件夾中的終端並運行
ln -s ../../Carthage Carthage
就我而言,Bitcode 存在問題,但 Xcode 無法給出准確的錯誤診斷,因為項目框架引用也以某種方式混亂。 運行框架測試工作正常,但存檔會出現自動鏈接錯誤。
從項目中刪除了所有框架引用,包括它們所在的Frameworks
組,再次添加它們解決了引用問題,然后我遇到了位碼問題,我在目標框架上禁用了該問題,然后才成功存檔
我遇到了類似的錯誤,此頁面上的所有建議均無效。 它發生在指向我的測試 iPhone 時嘗試創建存檔時,當我將其更改為“任何 iOS 設備”時,它可以正常工作。 我懷疑這與最近添加對 Apple Silicon 支持的更改有關,但我不確定如何。
確保您沒有設置將 XCTest 的 TargetMembership 導入主目標的測試文件,而是導入測試目標 :-)
希望這對某人有幫助,這對我有用
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf Pods
rm Podfile.lock
pod cache clean --all
pod install --repo-update
並清理構建文件夾
XCode > 產品 > 清理構建文件夾
或者
⌘ Command + ⇧ Shift + K
然后關閉 XCode 並再次清除派生數據
rm -rf ~/Library/Developer/Xcode/DerivedData
對我來說,這修復了它:
轉到項目 > 目標 > 構建設置(選項卡)> 構建選項(標題)
將Enable Testing Search Paths
設置為Yes
。
立即備份並運行。 老實說,不確定這意味着什么,但它有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.