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

Модуль, скомпилированный с быстрым 4.0, не может быть импортирован в swift 3.1

По-видимому, мне удалось создать свой проект в Xcode 9 beta, и теперь я получаю ошибку

Модуль, скомпилированный с помощью swift 4.0, не может быть импортирован в swift 3.1

Когда я запускаю проект в Xcode 8. Модуль в моем случае - Alamofire. Я попытался перезапустить Xcode, но ничего не возникает, как решить эту проблему?

4b9b3361

Ответ 1

У вас есть два варианта, которые вы можете сделать:

Clean проект, а затем попробуйте re-build ваше решение и посмотрите, работает ли оно.

Если он не работает, и вы все равно получаете одно и то же сообщение об ошибке, выполните следующие шаги и он должен работать для вас:

  • Откройте podfile и удалите Alamofire
  • Запустить pod update
  • Добавьте Alamofire в свой podfile
  • Запустить pod update
  • Когда это будет сделано, Clean ваш проект и запустите его

Ответ 2

Такая же проблема здесь, но с использованием Карфагена. И вот ответ:

  • rm -rf ~/Library/Caches/org.carthage.CarthageKit/DerivedData
  • удалите папку Carthage для проекта
  • Обновление Карфагена: carthage update --platform iOS

И вуаля!

Ответ 3

У меня была такая же проблема, и очистка папки сборки помогла:

Command+Option+Shift+K

или

ProductOption+Clean

Ответ 4

Просто удаление данных Derived для меня работало, вам не нужно снова устанавливать Pod install

Ответ 5

Я встретил эту проблему в проекте, где зависимость управляется Карфагеном. В моем случае я не установил инструмент командной строки в xcode (введите в xcodebuild -version, вы узнаете, настроите ли вы его или нет), поэтому первым шагом будет переход на XCode → Предпочтение → Местоположение затем выберите xcode, который вы хотите использовать в качестве инструмента командной строки. Затем вы можете выполнить шаги, описанные выше, для восстановления всех фреймворков, которые вы собираетесь использовать.

===============================================

Та же проблема здесь, но с использованием Карфагена. И вот ответ:

rm -rf ~/Library/Caches/org.carthage.CarthageKit/DerivedData
delete the Carthage folder for the project
Update Carthage: carthage update --platform iOS

===============================================

Затем не забудьте удалить старые ссылки в разделе "Связанные фреймворки и библиотеки" и перетащите все фреймворки из папки /Carthage под вашим проектом в "Связанные фреймворки и библиотеки".

Тогда вуаля!

Для тех, кто использует CocoaPods, я подозреваю (отказ от ответственности: я не сталкивался с этой проблемой в проекте, где CocoaPods является менеджером зависимостей), в решении будет выполняться следующая команда в терминале:

$ pod deintegrate
$ pod clean
$ pod install

где вам может понадобиться установить "деинтегратировать" и "очистить" инструмент для CocoaPod

$ sudo gem install cocoapods-deintegrate cocoapods-clean

подробнее см. сообщение Как удалить CocoaPods из проекта?

Ответ 6

Добавьте следующие строки в конец вашего файла подкачки:

post_install do |installer|
    print "Setting the default SWIFT_VERSION to 4.0\n"
    installer.pods_project.build_configurations.each do |config|
        config.build_settings['SWIFT_VERSION'] = '4.0'
    end

    installer.pods_project.targets.each do |target|
        if ['SomeTarget-iOS', 'SomeTarget-watchOS'].include? "#{target}"
            print "Setting #{target} SWIFT_VERSION to 3.0\n"
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_VERSION'] = '3.0'
            end
        else
            print "Setting #{target} SWIFT_VERSION to Undefined (Xcode will automatically resolve)\n"
            target.build_configurations.each do |config|
                config.build_settings.delete('SWIFT_VERSION')
            end
        end
    end
end