Подтвердить что ты не робот

Модуль, скомпилированный с 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, но он не компилируется.

4b9b3361

Ответ 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/DerivedData​​p >