Подтвердить что ты не робот

Что вызывает предупреждение 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

4b9b3361

Ответ 1

Отсутствующая ссылка:

Эта ошибка почти всегда возникает из-за отсутствия бинарного файла, связанного с библиотекой (в этом случае это будет Crashlytics.framework):

Link Fail

Попытка создать цель MyApp (включающая заголовки с #import <Crashlytics/Crashlytics.h> приведет к ошибке:

ld: предупреждение: включена автоматическая ссылка '../../Crashlytics.framework/Crashlytics', вариант компоновщика ссылок в.. /../Crashlytics.framework/Crashlytics не является dylib

Связать структуру:

Link Success К счастью, легко устранить проблему, просто перетащив 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. Если вы импортируете фреймворк, с которым вы не связываетесь, вы получите это предупреждение.