Я разработал фреймворк под названием 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)





Попробуйте этот процесс -
"Cmd + Shift + K" или shift + cmd + alt + k для очистки и выйдите из Xcode."rm -rf ~/Library/Developer/Xcode/DerivedData" в терминалеre-build его@ user3122959 вы можете написать это как ответ
Спасибо user3122959 за ответ и @Alexander Khitev за просьбу разместить его в посте. Я пытался сделать это только что.
Xcode не может найти ваши фреймворки, потому что FRAMEWORK_SEARCH_PATHS, вероятно, не установлен или неправильный (это случилось со мной, потому что я переместил файл Info.plist).
Вы можете исправить это, зайдя в свою цель и изменив настройки сборки. Просто найдите там FRAMEWORK_SEARCH_PATHS и добавьте правильный, которым обычно является $(PROJECT_DIR)/Carthage/Build/iOS (для проектов iOS). $(inherited) также должен быть там в качестве первой записи.
Это сообщение с ответом @ user3122959 в комментариях, которое помогло мне и другим решить эту проблему и было предложено ввести в качестве ответа на этот вопрос.
У меня была эта проблема с модулем (в данном случае SQLite), и мне пришлось добавить: "$ {PODS_CONFIGURATION_BUILD_DIR} /SQLite.swift"
У меня был $ (унаследованный) в моих путях поиска Framework, но исправление для меня заключалось в том, чтобы установить $ (унаследовано) как recursive вместо non-recursive
Если вы используете Carthage и несколько проектов в одной рабочей области, вам необходимо добавить символическую ссылку в вашу основную папку Carthage. это будет зависеть от того, какая у вас структура, но, например, если у вас есть
Проект -> Карфаген
Project -> Frameworks -> MyImbaFramework, чем cd в терминале в папке MyImbaFramework и запустите
ln -s ../../Carthage Carthage
В моем случае возникла проблема с Bitcode, но Xcode не смог дать точную диагностику ошибок, поскольку ссылки на структуру проекта также были каким-то образом испорчены. Выполнение тестов фреймворка прошло нормально, но при архивировании возникла ошибка автоматического связывания.
Удалил все ссылки на фреймворк из проекта, включая группу Frameworks, в которой они находились, снова добавил их, решил проблему с ссылками, затем у меня возникла проблема с битовым кодом, которую я отключил в целевой структуре, и только тогда архивирование прошло успешно.
Это также может быть ошибкой, если вы используете фреймворк, для которого Bitcode Enabled имеет значение false. Bitcode Enabled может иметь значение true только в том случае, если все платформы также имеют Bitcode Enabled true. Перейдите в настройки вашей целевой сборки и отключите битовый код.
Блин да! Большое спасибо!
У меня возникла проблема с доступом к сторонним фреймворкам из моих тестов. Вот как я это исправил.
В Xcode goto: Your Unit-Test target > Build Phases > Link Binary With Libraries
В Finder перейти: Carthage > Build > yourframework.Framework
Перетащите фреймворк на этапы сборки, затем очистите (cmd - shift - K).
У меня была аналогичная ошибка, и ни одно из предложений на этой странице не сработало. Это произошло при попытке создать архив, когда я указал на мой тестовый iPhone, когда я изменил его на «Любое устройство iOS», он работал правильно. Я подозреваю, что это связано с недавним изменением, касающимся добавления поддержки Apple Silicon, но я не уверен, как это сделать.
Убедитесь, что вы установили не тестовый файл, который импортирует XCTest TargetMembership в основную цель, а в тестовую цель :-)
большое спасибо. это не помогло, но я обнаружил, что по какой-то причине пути поиска 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