Платформа автоматического связывания не найдена

Я разработал фреймворк под названием BTNavigationDropdownMenu (быстрый проект для ios). все работало нормально, пока я не попытался добавить зависимость к последней версии в созданной ветке. проблема остается неизменной, добавляю ли я другой фреймворк (DYBadge) через подфайл или через Carthage.

Платформа автоматического связывания не найдена DYBadge.

Кажется, есть проблема с расширением UIView, которое является частью DYBadge.

DYBadge отлично работает в моем основном приложении, над которым я работаю (мне он также нужен в целевом приложении).

ошибки ниже. спасибо за любые подсказки в правильном направлении.

ld: warning: Auto-Linking framework not found DYBadge Undefined symbols for architecture x86_64: "(extension in DYBadge):__ObjC.UIView.getBadge() -> DYBadge.DYBadge?", referenced from: Demo.BTNavigationDropdownMenu.updateBadge(text: Swift.String, at: Swift.Int) -> () in BTNavigationDropdownMenu.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
19
0
43 075
8

Ответы 8

Попробуйте этот процесс -

  1. Нажмите "Cmd + Shift + K" или shift + cmd + alt + k для очистки и выйдите из Xcode.
  2. Удаляем кеш Запускаем "rm -rf ~/Library/Developer/Xcode/DerivedData" в терминале
  3. Откройте проект и re-build его

большое спасибо. это не помогло, но я обнаружил, что по какой-то причине пути поиска Framework в целевом приложении отсутствовали, я повторно добавил их, и это сработало. оформлен закрыто и извините за беспокойство. //: configuration = Debug FRAMEWORK_SEARCH_PATHS = $ (унаследованный) $ (PROJECT_DIR) / Carthage / Build / iOS //: configuration = Release FRAMEWORK_SEARCH_PATHS = $ (унаследованный) $ (PROJECT_DIR) / Carthage / Build / iOS //: completeSettings = some FRAMEWORK_SEARCH_PATHS

user3122959 11.04.2018 11:09

@ user3122959 вы можете написать это как ответ

Alexander Khitev 02.08.2018 19:03

Спасибо user3122959 за ответ и @Alexander Khitev за просьбу разместить его в посте. Я пытался сделать это только что.

palme 12.02.2019 14:28

Xcode не может найти ваши фреймворки, потому что FRAMEWORK_SEARCH_PATHS, вероятно, не установлен или неправильный (это случилось со мной, потому что я переместил файл Info.plist).

Вы можете исправить это, зайдя в свою цель и изменив настройки сборки. Просто найдите там FRAMEWORK_SEARCH_PATHS и добавьте правильный, которым обычно является $(PROJECT_DIR)/Carthage/Build/iOS (для проектов iOS). $(inherited) также должен быть там в качестве первой записи.

Это сообщение с ответом @ user3122959 в комментариях, которое помогло мне и другим решить эту проблему и было предложено ввести в качестве ответа на этот вопрос.

У меня была эта проблема с модулем (в данном случае SQLite), и мне пришлось добавить: "$ {PODS_CONFIGURATION_BUILD_DIR} /SQLite.swift"

Jason 24.02.2019 04:39

У меня был $ (унаследованный) в моих путях поиска Framework, но исправление для меня заключалось в том, чтобы установить $ (унаследовано) как recursive вместо non-recursive

Andy Novak 05.04.2021 19:32

Если вы используете Carthage и несколько проектов в одной рабочей области, вам необходимо добавить символическую ссылку в вашу основную папку Carthage. это будет зависеть от того, какая у вас структура, но, например, если у вас есть

Проект -> Карфаген

Project -> Frameworks -> MyImbaFramework, чем cd в терминале в папке MyImbaFramework и запустите

ln -s ../../Carthage Carthage

В моем случае возникла проблема с Bitcode, но Xcode не смог дать точную диагностику ошибок, поскольку ссылки на структуру проекта также были каким-то образом испорчены. Выполнение тестов фреймворка прошло нормально, но при архивировании возникла ошибка автоматического связывания.

Удалил все ссылки на фреймворк из проекта, включая группу Frameworks, в которой они находились, снова добавил их, решил проблему с ссылками, затем у меня возникла проблема с битовым кодом, которую я отключил в целевой структуре, и только тогда архивирование прошло успешно.

Это также может быть ошибкой, если вы используете фреймворк, для которого Bitcode Enabled имеет значение false. Bitcode Enabled может иметь значение true только в том случае, если все платформы также имеют Bitcode Enabled true. Перейдите в настройки вашей целевой сборки и отключите битовый код.

Блин да! Большое спасибо!

Valentin Shamardin 06.02.2020 10:05

У меня возникла проблема с доступом к сторонним фреймворкам из моих тестов. Вот как я это исправил.

  1. В Xcode goto: Your Unit-Test target > Build Phases > Link Binary With Libraries

  2. В Finder перейти: Carthage > Build > yourframework.Framework

  3. Перетащите фреймворк на этапы сборки, затем очистите (cmd - shift - K).

У меня была аналогичная ошибка, и ни одно из предложений на этой странице не сработало. Это произошло при попытке создать архив, когда я указал на мой тестовый iPhone, когда я изменил его на «Любое устройство iOS», он работал правильно. Я подозреваю, что это связано с недавним изменением, касающимся добавления поддержки Apple Silicon, но я не уверен, как это сделать.

Убедитесь, что вы установили не тестовый файл, который импортирует XCTest TargetMembership в основную цель, а в тестовую цель :-)

Другие вопросы по теме