什么导致这个Crashlytics编译警告? (自动链接提供'…'框架链接器选项'…'不是一个dylib)
编译我的主要目标(而不是像这里的testing目标)产生这个错误:
ld: warning: Auto-Linking supplied '~/Documents/my_app/MyApp/Crashlytics.framework/Crashlytics', framework linker option at ~/Documents/my_app/MyApp/Crashlytics.framework/Crashlytics is not a dylib
从这个构build命令:
Ld /Build/Products/Debug-iphonesimulator/MyApp.app/MyApp normal i386 cd〜/ Documents / my_app / MyApp export IPHONEOS_DEPLOYMENT_TARGET = 8.0 export PATH =“/ Applications / Xcode.app / Contents / Developer / Platforms / iPhoneSimulator.platform /开发者/ usr / bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/ usr / bin:/ bin:/ usr / sbin:/ sbin“/Applications/Xcode.app/Contents/Developer/Toolchains/ XcodeDefault.xctoolchain / usr / bin / clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.2.sdk -L〜/ Library / Developer / Xcode / DerivedData / MyApp-dbmrsjmskpqxmnegayfzfxgcwvsm / Build / Products / Debug-iphonesimulator -F〜/ Library / Developer / Xcode / DerivedData / MyApp-dbmrsjmskpqxmnegayfzfxgcwvsm / Build / Products / Debug-iphonesimulator -F〜/ Documents / my_app / MyApp -filelist〜/ Library /Developer/Xcode/DerivedData/MyApp-dbmrsjmskpqxmnegayfzfxgcwvsm/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/MyApp.LinkFileList -Xlin ker -rpath -Xlinker @ executable_path / Frameworks -Xlinker -objc_abi_version -Xlinker 2 -ObjC -lPods-CocoaLumberjack -lPods -Mantle -framework CFNetwork -framework Foundation -framework Security -framework SystemConfiguration -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min = 8.0 -framework CoreGraphics -lPods -framework MapKit -framework Fabric -lPods-MyApp -Xlinker -dependency_info -Xlinker〜/ Library / Developer / Xcode / DerivedData / MyApp-dbmrsjmskpqxmnegayfzfxgcwvsm / Build / Intermediates /MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/MyApp_dependency_info.dat -o〜/ Library / Developer / Xcode / DerivedData / MyApp-dbmrsjmskpqxmnegayfzfxgcwvsm / Build / Products / Debug-iphonesimulator / MyApp.app / MyApp的
缺失的环节:
这个错误几乎总是由没有链接到库的二进制产生的(在这种情况下,它将是Crashlytics.framework
):
尝试构build目标MyApp
(其中包含带#import <Crashlytics/Crashlytics.h>
标头将产生错误:
ld:警告:提供的自动链接“../../Crashlytics.framework/Crashlytics”,框架链接器选项../../Crashlytics.framework/Crashlytics不是dylib
链接框架:
幸运的是,只需将项目导航器中的“ Frameworks
文件夹中的Crashlytics.framework
拖动到“ Link Binary With Libraries
”列表中或者使用+
,就可以轻松解决问题。
- 确保您在执行此过程时已在“目标”下选中/突出显示您的应用程序。
我有同样的问题,但我的理由是不同的。
错误输出
ld:警告:在〜/ GameFolder / Pods / Fabric / tvOS / Fabric.framework / Fabric中提供的自动链接提供的“〜/ GameFolder / Pods / Fabric / tvOS / Fabric.framework / Fabric”框架链接器选项不是dylib Undefined符号体系结构x86_64:“_OBJC_CLASS _ $ _答案”,引用来自:types元数据访问器为__ObjC.Answers在GameScene.otypes元数据访问器为__ObjC.Answers在AppDelegate.o“_OBJC_CLASS _ $ _ Crashlytics”,引用来自:types元数据访问器为__ObjC AppDelegate.o中的碎片types“_OBJC_CLASS _ $ _ Fabric”,引用来自:AppDelegate.o中__ObjC.Fabric的types元数据访问器ld:体系结构x86_64中找不到符号clang:error:连接器命令失败,退出代码1 -v看到调用)
原因
- 我的目标是重写
OTHER_LDFLAGS
。
解
- 将
OTHER_LDFLAGS
更改为仅inheritance链接器标志。 基本上把它改成$(inherited)
为了将来的参考,如果您将testing文件链接到您的应用程序目标,也会发生这种情况。
例如: https : //github.com/realm/realm-cocoa/issues/1661
我遵循@ i'L'i提供的所有步骤,但是在构build阶段我无法findCrashlytics.framework
和Fabric.framework
文件。
所以这帮助了我。
第1步:按照这里给出的所有步骤。
第2步:现在,当您无法通过单击+
执行以下操作在Link Binary With Libraries
findCrashlytics.framework
和Fabric.framework
文件。
2.1:点击Link Binary With Libraries
+
button。
2.2:点击Add Other...
button。
2.3:现在从Pod
文件夹中selectCrashlytic.framework
和Fabric.framework
– 如果使用cocoapods,则从下载的文件夹中select两个文件。
步骤3:build立成功,享受。 🙂
我有同样的问题。 也许我搞砸了初始结构安装,但是一旦我添加Fabric.framework到框架列表(应该在你的应用程序的根文件夹默认情况下)一切正常。
与我所说的和user3517250提到的相反,问题可能是你有#import
语句不应该在那里。
Xcode确实推断了从#import
语句链接的框架。 如果你导入一个你不链接的框架,那么你会得到这个警告。