Структуры Swift не работают с конфигурациями сборки, отличными от "Debug" или "Release": нет такого модуля
Всякий раз, когда я пытаюсь использовать конфигурацию сборки, отличную от "Debug" или "Release", Xcode внезапно не может найти мои структуры Swift. Конфигурации - это то же самое, что и их имя (фактически, новая конфигурация дублируется из рабочей конфигурации "Отладка" ).
![Build configurations screenshot]()
Отчеты Xcode "Нет такого модуля"
![Xcode error]()
Это похоже на действительно странную ошибку. Неужели кто-то сталкивался с этим раньше? Мой поиск Google не дал никаких результатов. Кто-нибудь знает, что может вызвать эту проблему? Я уверен, что правильно добавил фреймворк.
Я создал короткий скринкаст, чтобы показать вам, что именно я делаю: http://www.screencast.com/t/zpgZ5ZYgvH
Нижняя строка:
- Убедитесь, что проект в настоящее время работает с использованием сторонних инфраструктур Swift.
- Выберите проект в навигаторе проекта/файла
- Выберите проект выше Цели на левой боковой панели редактора и убедитесь, что вы находитесь на вкладке "Информация"
- Дублируйте текущую конфигурацию (вероятно, "Debug" ), нажав кнопку + под списком конфигураций и выбрав "Дублировать конфигурацию XXX"
- Измените свою схему, чтобы использовать новую конфигурацию, выбрав "Продукт" (меню) > "Схема" > "Изменить схему...
- Выберите "Выполнить" на левой боковой панели
- Выберите новую конфигурацию в разделе Конфигурация сборки
- Попытка построить снова
Вы также можете скачать образец проекта: http://s000.tinyupload.com/?file_id=48797763216274271820
Я запускаю Xcode 6.0.1 (6A317) и Yosemite 10.10 (14A361c).
Ответы
Ответ 1
Добавьте следующий Framework Search Path
в Build Settings
вашей цели: $(SYMROOT)/Release$(EFFECTIVE_PLATFORM_NAME)
и сделайте его non-recursive
В моем случае это было для Alamofire, который был добавлен в мой проект как подмодуль git.
Фреймворк строится правильно, что можно увидеть в журналах сборки, но я предполагаю, что путь поиска фреймворка по умолчанию получен из имени схемы. Структура Alamofire и файл dSYM находятся в Release-iphoneos
/Release-iphonesimulator
.
Я предполагаю, что это будет работать с любым фреймворком Swift, если имена схем по умолчанию. Если нет, проверьте журналы сборки и соответствующим образом скорректируйте путь поиска.
Ответ 2
У меня также была эта проблема, и я исправил ее, добавив те же имена конфигурации в проект Alamofire.
Мои схемы сборки в моем основном проекте: ![main project configs]()
И схемы сборки внутри проекта Alamofire: ![screenshot of schemes]()
Примечание. Также убедитесь, что цель развертывания iOS одинакова в обоих проектах.
Ответ 3
Если вы используете CocoaPods, попробуйте pod install
это сгенерирует некоторые файлы .xcconfig с вашим именем конфигурации. Очистите папку сборки и выполните сборку заново.
Ответ 4
Убедитесь, что вы открываете рабочую область, а не проект для своего проекта xcode.
Ошибка "Нет такого модуля" может быть результатом, если вы откроете файл xcodeproj вместо xcworkspace. Пожалуйста, см. Комментарий capikaw:
Получение ошибки "Нет такого модуля" используя Xcode, но инфраструктура там