В настоящее время я пишу в Swift, и у меня есть ошибка:
Нет такого модуля Social
Но я не понимаю, потому что модуль находится в моем проекте, объявлен в «Связанных фреймворках и библиотеках» и во «Встроенных двоичных файлах».
Каркас находится в Objective-C, поэтому я написал для него заголовок моста.
Пожалуйста, как я могу заставить Xcode распознавать фреймворк?
#import "Social/Social.h"
platform :ios, '10.0'
. Это было решение.Ответы:
Я не уверен, почему это происходит, но один из способов решения вашей проблемы состоит в том, чтобы перейти к настройкам сборки и определить пути поиска фреймворка в папке, содержащей нужные фреймворки. Если фреймворки размещены в каталоге вашего проекта, просто установите путь поиска фреймворка
$(SRCROOT)
и установите его на рекурсивный.источник
Project Build Settings
вместоTarget Build Settings
.В случае, если это пятница после полудня или в любое время после 1 часа ночи:
Открытие
xcodeproj
вместоxcworkspace
приведет к ошибке, как это ...источник
Убедитесь, что имена ваших конфигураций в подпроектах совпадают с именами «родительского» проекта. Если имена конфигурации не совпадают точно (с учетом регистра), Xcode прервет процесс архивирования и покажет ошибку «Нет такого модуля ...»
То есть, если у вас есть «родительский» проект с конфигурацией «AppStore», вы должны убедиться, что все подпроекты также имеют это имя конфигурации.
Смотрите мои скриншоты.
источник
Debug
иDistribution
и его родительский проект пытался построить дляRelease
. Решением было сделать копиюDistribution
в дочернем проекте и переименовать эту копиюRelease
.Я не совсем уверен, почему ответ Мартина Р в комментариях к вопросу так игнорируется:
Убедитесь, что вы попытались просто пропустить импорт фреймворка, так как он уже добавлен с заголовком моста .
Надеюсь это поможет
источник
У меня была такая же проблема с использованием Cocoapods и Swift . Я не заметил следующие строки в Podfile:
Итак, все, что мне нужно было сделать, это изменить его на:
... и это сработало :)
источник
Пожалуйста, сравните этот скриншот с настройками сборки. Это может сработать. Перейти к поиску по фреймворку:
источник
Я тоже испытывал эту проблему. Я решил, что схемы архивов между двумя проектами не совпадают. У меня есть xcworkspace с проектом и проектом приложения. Проблема заключалась в том, что в схеме архива для моего приложения я использовал конфигурацию сборки, отличную от используемой в ее структуре схемы. Я установил обе конфигурации сборки в Release, и это решило проблему.
источник
Следующие шаги работали для меня.
"pod update"
в терминале.xcworkspace
и соберите снова.источник
pod install
того , как он работает.В моем случае, после многих попыток выяснить, что я делал неправильно при импорте фреймворка, я обнаружил, что проблема заключается в самой фреймворке. Если вы не получаете ваш фреймворк из надежного источника, вы должны проверить фреймворк и убедиться, что он содержит папку Modules с файлом module.modulemap внутри. Если файл module.modulemap отсутствует, вы получите ошибку «Нет такого модуля« MyFramework »».
Если в папке «Модули» отсутствует папка «MyFramework.swiftmodule», то платформа будет найдена, но XCode не будет знать о ее содержимом, поэтому вы получите различные ошибки.
источник
Предполагая, что Framework действительно есть и находится в пути, и т. Д. ... удалите каталог ~ / Library / Developer / Xcode / DerivedData / ModuleCache (и очистите проект и удалите данные, специфичные для проекта, для хорошей меры).
Когда вы выполняете стандартную очистку, каталог ModuleCache не перестраивается.
источник
Что сработало для меня, так это решение другого вопроса. Закрытие Xcode и повторное открытие проекта в качестве рабочей области.
Перейдите в папку вашего проекта и откройте
.xcodeworkspace
файл.После того, как вы откроете рабочую область (вместо проекта), стручки должны появиться как проект верхнего уровня в Навигаторе проекта.
источник
Будьте уверены, что
Find implicit Dependencies
в Build options в Scheme включены!источник
Я также столкнулся с той же ошибкой несколько дней назад. Вот как я решил проблему:
Ошибка "модуль не найден"
Перейдите в настройки сборки проекта:
Создайте новый файл заголовка моста: например, TestProject-Bridging-Header.h и поместите его в Swift Compiler → Имя заголовка сгенерированного интерфейса Objective-C (см. Рисунок выше)
Вот и все.
источник
Хорошо, для меня была решена та же проблема: установить местоположение производных данных относительно каталога рабочей области, а не сохранять его по умолчанию. Зайдите в настройки в xcode. Перейдите на вкладку «Местоположения» в настройках и установите «Производные данные» в «Относительный». Надеюсь, поможет.
источник
Я получаю ту же ошибку для
Но потом заметил, что я не добавляю pod в основной раздел целей, а только добавляю к целям Test и TestUI в Podfile.
С помощью команды
для проекта xcode swift создается следующий подфайл
Итак, нужно убедиться, что каждый добавляет стручки в любой соответствующий заполнитель.
источник
Если вы создаете платформу, такую как tvOS, убедитесь, что у вас выбран симулятор Apple TV (т.е. соответствующий).
Создание приложения для tvOS с выбранным имитатором iOS дало мне именно эту ошибку. Потратил лучшую часть часа на поиски всевозможных проблем со сборкой ... дох.
источник
В моем случае приложение IPHONEOS_DEPLOYMENT_TARGET было установлено на 9.3, тогда как в моем недавно созданном фреймворке оно было установлено на 10.2
Средство распознавания неявных зависимостей проигнорировало мою новую платформу, поскольку требования целевой платформы выше требований приложения.
После настройки фреймворка iOS Deployment Target в соответствии с моей целью развертывания приложения, фреймворк успешно скомпилирован и связан.
источник
Я получаю ту же ошибку, когда я добавил пару фреймворков, используя
Cocoapods
. Если мы используем стручки в нашем проекте, мы должны использоватьxcodeworkspace
вместоxcodeproject
. Чтобы запустить проект через xcodebuild, я добавил-workspace <workspacename>
параметр вxcodebuild
команду, и он работал отлично.источник
Я обнаружил , что
Import Paths
вBuild Settings
ошиблась для модуля пользовательского (MySQL). После указания, что в правильном направлении сообщение пропало.источник
find
если вы этого не знаете.Я исправил это с
Цели -> Общие -> Связанные фреймворки и библиотеки
Добавьте структуру, которая должна быть вверху в
Workspace
папке. Боль в заднице.источник
Я только что удалил свой Cocoapod. Затем я установил модуль, чтобы удалить его. Затем я просто добавил его обратно в свой подфайл и переустановил. Это заставило это работать. Не уверен почему.
источник
Я уже установил стручки. Сборка работала без проблем, когда я собирал приложение на своем устройстве, но архив не работал. Я просто бегу:
новые модули не были установлены, просто был восстановлен файл .xcodeproj и архив начал работать
источник
В Xcode 10.1 для меня решение состояло в том, чтобы изменить систему сборки в настройках Workspace в меню File. По умолчанию он установлен в New Build System , изменил его на Legacy Build System, и это помогло.
источник
Есть несколько возможных неправильных конфигураций, для которых может возникнуть проблема,
.xcworkspace
но не.xcodeproj
файл. Также убедитесь, что у вас есть сборка,Social
прежде чем строитьTriviaApp
.TriviaApp
цель развертывания s установлена9.0
,Social
цель развертывания s также должна быть установлена9.0
.TriviaApp
) и используемая вами платформа (Social
) имеют одинаковый набор конфигураций. то есть , если ваш проект имеет три конфигурации,Debug
,Release
,ReleasePremium
чем ваши социальные структуры также должно иметь три конфигурацииDebug
,Release
,ReleasePremium
. Также убедитесь, что конфигурация архива одинакова для обоихTriviaApp
иSocial
. то есть, если вашаTriviaApp
архивная схема установлена наReleasePremium
, вашаSocial
архивная схема также должна быть установленаReleasePremium
.Social
в каждый.swift
файл, когда он уже добавлен вBridging-Header.h
.#use_frameworks!
вuse_frameworks!
от васPodfile
. Иногда переустановка модуля работает, еслиSocial
есть какая-либо зависимость от модуля .источник
Если вы используете Карфаген, рамки в строительном окружении обычно остаются в
$(PROJECT_DIR)/Carthage/Build/iOS
Если вы запустите
carthage update --platform ios --no-build
(чтобы сэкономить время) файлы в папке Build не будут повторно создаваться, то модули не будут доступны для XCode.В моем случае я бегал
carthage update --platform ios
, тогда моя проблема была решена.источник
В общем => Связанные фреймворки и библиотеки, я добавил свой,
./Pods/Pods.xcodeproj
и он добился целиисточник
Для меня Build Active Architecture Only был установлен на Да для выбранной конфигурации. Это сделало трюк:
Выберите «Модули» в левом навигаторе проекта> Выберите «Параметры сборки»> «Создать активную архитектуру только для Нет»
источник
Если все вышеперечисленные методы не работают для вас, как в моем случае. В предыдущий день проблем не было, но на следующее утро я столкнулся с той же ошибкой. Я просто удалил рамки, удалив ссылки, и снова добавил их. Я знаю, это может звучать глупо, но вуаля это сработало.
источник
У меня была похожая проблема с загрузкой FacebookSDK, я добавил ~ / Documents / FacebookSDK (поиск, где находятся ваши фреймворки) в пути поиска фреймворков в настройках Build, и после этого я смог импортировать модуль FBSDKShareKit.
источник
Для чего это стоит (я новичок в этом, используя Xcode 7.2 / Swift 2), но я заметил, что просто наличие файла .swift из библиотеки в каталоге проекта автоматически дает вам доступ к нему и не нуждается в выражении using.
Пример: я использую SwiftyJSON и просто наличие файла SwiftyJSON.swift в проекте - все, что мне нужно.
using
Заявление было на самом деле дает мне ошибку «нет такого модуля» и вынимая его решить, и это работает отлично.источник