Что вызывает предупреждение Crashlytics? (Автоматическое связывание поставляется с параметром '...' рамки компоновщика в '...' не является dylib)
Компиляция моей основной цели (не тестовой цели, такой как здесь) дает эту ошибку:
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 экспорт IPHONEOS_DEPLOYMENT_TARGET = 8.0 экспорт PATH = "/Applications/Xcode.app/Содержание/Разработчик/Платформы/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/Разработчик/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 - Xlinker -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/Разработчик/Xcode/DerivedData/MyApp-dbmrsjmskpqxmnegayfzfxgcwvsm/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects -normal/i386/MyApp_dependency_info.dat -o ~/Library/Разработчик/Xcode/DerivedData/MyApp-dbmrsjmskpqxmnegayfzfxgcwvsm/Build/Products/Debug-iphonesimulator/MyApp.app/MyApp
Ответы
Ответ 1
Отсутствующая ссылка:
Эта ошибка почти всегда возникает из-за отсутствия бинарного файла, связанного с библиотекой (в этом случае это будет Crashlytics.framework
):
![Link Fail]()
Попытка создать цель MyApp
(включающая заголовки с #import <Crashlytics/Crashlytics.h>
приведет к ошибке:
ld: предупреждение: включена автоматическая ссылка '../../Crashlytics.framework/Crashlytics', вариант компоновщика ссылок в.. /../Crashlytics.framework/Crashlytics не является dylib
Связать структуру:
К счастью, легко устранить проблему, просто перетащив Crashlytics.framework
из папки Frameworks
в навигаторе проекта в список Link Binary With Libraries
или используя +
.
- Убедитесь, что ваше приложение выбрано/выделено в разделе "Цели" во время выполнения этого процесса.
![enter image description here]()
Ответ 2
У меня была такая же проблема, но моя причина была другая.
Выход ошибки
ld: предупреждение: автоматическое связывание поставляется "~/GameFolder/Pods/Fabric/tvOS/Fabric.framework/Fabric", опция компоновщика ссылок в ~/GameFolder/Pods/Fabric/tvOS/Fabric.framework/Fabric is not дилиб Undefined символы для архитектуры x86_64: "_OBJC_CLASS _ $_ Answers", на который ссылаются: типа для метаданных для __ObjC. Отверстия в GameScene.o типа для метаданных для __ObjC.nde в приложении AppDelegate.o "_OBJC_CLASS _ $_ Crashlytics", на который ссылаются: тип метаданных для __ObjC.Crashlytics в AppDelegate.o "_OBJC_CLASS _ $_ Fabric", на который ссылаются: тип метаданных для __ObjC.Fabric в AppDelegate.o ld: символ (-ы) не найден для архитектуры x86_64 clang: ошибка: команда компоновщика не сработала с кодом выхода 1 (используйте -v для вызова вызова)
Причина
- Моя цель была переопределить
OTHER_LDFLAGS
.
Решение
- Изменен
OTHER_LDFLAGS
, чтобы просто наследовать флаги компоновщика. В основном, он изменил его на $(inherited)
Ответ 3
Я выполнил все шаги, предоставленные @i'L'i, но мне не удалось найти файлы Crashlytics.framework
и Fabric.framework
в фазах сборки.
Так это помогло мне.
Шаг 1: Следуйте всем шагам, указанным здесь.
Шаг 2: Теперь, когда вы не можете найти файлы Crashlytics.framework
и Fabric.framework
в Link Binary With Libraries
, нажав +
сделать следующее.
2.1: Нажмите кнопку +
в Link Binary With Libraries
.
2.2: Нажмите кнопку Add Other...
.
2.3: Теперь выберите Crashlytic.framework
и Fabric.framework
из Pod
папки - если вы используете cocoapods, выберите другой файл, из которого вы его загрузили.
Шаг 3: Постройте преемственность, наслаждайтесь.:)
Ответ 4
Для справок в будущем это также может произойти, если вы связываете свои тестовые файлы с целевым объектом.
Например:
https://github.com/realm/realm-cocoa/issues/1661
Ответ 5
У меня была та же проблема. Возможно, я испортил установку исходной ткани, но как только я добавил Fabric.framework в список фреймворков (должен быть в корневой папке вашего приложения по умолчанию), все сработало.
Ответ 6
В отличие от того, о чем упоминается I'L'I и user3517250, проблема также может заключаться в том, что у вас есть #import
заявления, которых не должно быть.
Xcode делает фреймворки привязаны к операторам #import
. Если вы импортируете фреймворк, с которым вы не связываетесь, вы получите это предупреждение.