La compilation de ma cible principale (pas une cible de test comme ici ) génère cette erreur:
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
À partir de cette commande de génération:
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/Développeur/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-iphonesimapp /Developer/Xcode/DerivedData/MyApp-dbmrsjmskpqxmnegayfzfxgcwvsm/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/MyApp.LinkFileList -X 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-runobj -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-dbmrsjmscpfmmfcmf /MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/MyApp_dependency_info.dat -o ~/Library/Developer/Xcode/DerivedData/MyApp-dbmrsjmskpqxmnegayfzfxgcwvsmsm/Build/Products/Debug-ip MyApp
Le lien manquant:
Cette erreur est presque toujours produite par le fait que le binaire n'est pas lié à la bibliothèque (dans ce cas, ce serait le Crashlytics.framework
):
Essayer de construire la cible MyApp
(qui inclut les en-têtes avec #import <Crashlytics/Crashlytics.h>
produira l'erreur:
ld: avertissement: Auto-Linking fourni '../../Crashlytics.framework/Crashlytics', option de lieur de framework à ../../Crashlytics.framework/Crashlytics n'est pas un dylib
Lier le Framework:
Heureusement, il devrait être facile de résoudre le problème simplement en faisant glisser le Crashlytics.framework
du dossier Frameworks
dans le navigateur de projet dans la liste de Link Binary With Libraries
ou en utilisant le +
.
J'ai eu le même problème mais ma raison était différente.
ld: avertissement: liaison automatique fournie '~/GameFolder/Pods/Fabric/tvOS/Fabric.framework/Fabric', option de l'éditeur de liens dans ~/GameFolder/Pods/Fabric/tvOS/Fabric.framework/Fabric n'est pas un dylib non défini symboles pour l'architecture x86_64: "_OBJC_CLASS _ $ _ Answers", référencé à partir de: type accesseur de métadonnées pour __ObjC.Answers dans GameScene.o type accesseur de métadonnées pour __ObjC.Answers dans AppDelegate.o "_OBJC_CLASS _ $ _ Crashlytics", référencé pour: type metObata .Crashlytics dans AppDelegate.o "_OBJC_CLASS _ $ _ Fabric", référencé à partir de: type accesseur de métadonnées pour __ObjC.Fabric dans AppDelegate.o ld: symbole (s) introuvable pour l'architecture x86_64 clang: erreur: la commande de l'éditeur de liens a échoué avec le code de sortie 1 (utilisation) -v pour voir l'invocation)
OTHER_LDFLAGS
.OTHER_LDFLAGS
Pour hériter simplement des indicateurs de l'éditeur de liens. Fondamentalement, l'a changé en $(inherited)
J'ai suivi toutes les étapes fournies par @ i'L'i mais je n'ai pas pu trouver Crashlytics.framework
et Fabric.framework
fichier dans les phases de construction.
Cela m'a donc aidé.
Étape 1: Suivez toutes les étapes données Ici.
Étape 2: Maintenant, lorsque vous ne parvenez pas à trouver Crashlytics.framework
et Fabric.framework
fichiers dans Link Binary With Libraries
en cliquant +
faire suivre.
2.1: Cliquez sur +
bouton dans Link Binary With Libraries
.
2.2: Cliquez sur Add Other...
bouton.
2.3: Maintenant, choisissez Crashlytic.framework
et Fabric.framework
du dossier Pod
- si vous utilisez des cocoapods, choisissez les deux fichiers à partir de l'endroit où vous les avez téléchargés.
Étape 3: Build Succeeded, Enjoy. :)
Pour référence future, cela peut également se produire si vous liez vos fichiers de test à la cible de votre application.
Par exemple: https://github.com/realm/realm-cocoa/issues/1661
À l'inverse de ce que I'L'I et user3517250 mentionnent, le problème peut également être que vous avez #import
déclarations qui ne devraient pas être là.
Xcode déduit les cadres de référence à partir du #import
déclarations. Si vous importez un framework contre lequel vous ne liez pas, vous obtenez cet avertissement.
J'ai eu le même problème. J'ai peut-être foiré l'installation initiale de Fabric, mais une fois que j'ai ajouté Fabric.framework à la liste des frameworks (devrait être dans le dossier racine de votre application par défaut), tout a fonctionné.