Модуль, скомпилированный с Swift 3.0, не может быть импортирован в Swift 2.3
Это то, что я делаю:
import BSTableViewReorder
и получите следующую ошибку:
Модуль, скомпилированный с Swift 3.0, не может быть импортирован в Swift 2.3
Что я могу сделать, чтобы скомпилировать его? Я сделал:
Edit > Convert -> Current Swift Syntax
Использование Xcode 8 и macOS Sierra.
Для обоих: для цели и проекта у меня есть следующие настройки Use Legacy Swift Language Version
![введите описание изображения здесь]()
Проект - мой контейнер для зависимостей cocoapods. Я просто преобразовал проект в Swift 3.0, но он не компилируется.
Ответы
Ответ 1
Вам нужно изменить Use Legacy Swift Language Version
на NO
- это гарантирует, что ваш проект будет использовать swift 3.
Если вы хотите упаковать свой проект в виде POD (для cocoapods), вам нужно будет добавить файл с именем .swift-version (содержащий 1 единственную строку, "3.0" ).
Это скажет cocoapods использовать быстрый компилятор 3.
Все должно работать после этих изменений.
Ответ 2
Если вы используете какие-либо сторонние фреймворки, просто обновляйте их один раз для Xcode 8.1 и измените версию использования Legacy Swift Language на NO.
Ответ 3
в моем случае разработчики инфраструктуры добавили эту строку в код, предназначенный для Podfile
:
config.build_settings['SWIFT_VERSION'] = '2.3' # or '3.0'
как вы можете видеть, они по умолчанию были "2.3", что вызвало проблемы, поскольку я запускал 3.0. просто удалив '2.3' # or
и оставив '3.0'
исправленную проблему.
Ответ 4
Если приведенные выше предложения не работают, попробуйте удалить библиотеку/Developer/Xcode/DerivedDatap >