web-dev-qa-db-ja.com

このCrashlyticsコンパイル警告の原因は何ですか? (自動リンクが提供する「...」フレームワークリンカーオプション「...」はdylibではありません)

メインターゲット( here などのテストターゲットではない)をコンパイルすると、次のエラーが発生します。

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

このビルドコマンドから:

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/Developer/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〜/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /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-シミュレータバージョン分= 8.0 -framework CoreGraphics -lPods -framework MapKit -frameworkファブリック-lPods-のMyApp -Xlinker -dependency_info -Xlinker〜/ライブラリ/開発/ Xcodeの/ DerivedData/MyAppに-dbmrsjmskpqxmnegayfzfxgcwvsm /ビルド/中間体/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

53
Robert

ミッシングリンク:

このエラーは、ほとんどの場合、ライブラリにリンクされたバイナリがないことによって生成されます(この場合、Crashlytics.frameworkになります)。

Link Fail

ターゲットMyApp#import <Crashlytics/Crashlytics.h>のヘッダーを含む)をビルドしようとすると、エラーが生成されます。

ld:警告:提供された自動リンク '../../Crashlytics.framework/Crashlytics'、../../Crashlytics.framework/Crashlyticsのフレームワークリンカーオプションはdylibではありません

フレームワークをリンク:

Link Success 幸いなことに、プロジェクトナビゲータのFrameworksフォルダからCrashlytics.frameworkのリストにLink Binary With Librariesをドラッグするか、+を使用するだけで、問題を簡単に修正できます。 。

  • このプロセスの実行中に、[ターゲット]でアプリを選択/強調表示してください。

enter image description here

80
l'L'l

私は同じ問題を抱えていたが、私の理由は異なっていた。

エラー出力

ld:警告:自動リンクが提供されます '〜/ GameFolder/Pods/Fabric/tvOS/Fabric.framework/Fabric'、〜/ GameFolder/Pods/Fabric/tvOS/Fabric.framework/Fabricのフレームワークリンカーオプションはdylib Undefinedではありませんアーキテクチャx86_64のシンボル:「_OBJC_CLASS _ $ _ Answers」、参照元:GameScene.oの__ObjC.AnswersのタイプメタデータアクセサーAppDelegate.oの__ObjC.Answersのタイプメタデータアクセサー「_OBJC_CLASS _ $ _ Crashlytics」、参照元:__ObjCのタイプメタデータアクセサー.CrashlyticsのAppDelegate.o "_OBJC_CLASS _ $ _ Fabric"から参照:AppDelegate.oの__ObjC.Fabricの型メタデータアクセサーld:シンボルがアーキテクチャx86_64で見つかりませんclang:エラー:終了コマンド1でリンカーコマンドが失敗しました(使用-v呼び出しを表示)

理由

  • 私のターゲットは_OTHER_LDFLAGS_をオーバーライドしていました。

溶液

  • _OTHER_LDFLAGS_がリンカーフラグを継承するように変更されました。基本的に、$(inherited)に変更しました
16
xemacobra

@ i'L'iが提供するすべてのステップに従いましたが、ビルドフェーズで_Crashlytics.framework_および_Fabric.framework_ファイルを見つけることができませんでした。

だからこれは私を助けた。

ステップ1:指定されたすべてのステップに従います ここで

ステップ2:_Crashlytics.framework_内の_Fabric.framework_および_Link Binary With Libraries_ファイルが_+_をクリックしても見つからない場合SOMECODE)__フォローします。

2.1:_+_の_Link Binary With Libraries_ボタンをクリックします。
2.2:_Add Other..._ボタンをクリックします。
2.3:Podフォルダから_Crashlytic.framework_および_Fabric.framework_を選択-ココアポッドを使用する場合または、ダウンロードした場所から両方のファイルを選択します。

ステップ3:ビルド成功、お楽しみください。 :)

5
Zaid Pathan

将来の参考のために、これはテストファイルをアプリのターゲットにリンクする場合にも発生する可能性があります。

例: https://github.com/realm/realm-cocoa/issues/1661

4
iagomr

I'L'Iとuser3517250が言及していることとは逆に、問題は、そこにあるべきではない#importステートメントがあることかもしれません。

Xcodeは、#importステートメントからリンクするフレームワークを推測します。リンクしていないフレームワークをインポートすると、この警告が表示されます。

1
KPM

同じ問題がありました。たぶん、最初のファブリックのインストールを台無しにしたかもしれませんが、Fabric.frameworkをフレームワークのリストに追加すると(デフォルトではアプリのルートフォルダーにあるはずです)、すべてが機能しました。

1
user3517250