Затем я удалил данные, сделал чистую сборку и все было в порядке.

о я перекомпилировал фреймворк, используя тот же XCode, и он все еще дает мне эту ошибку.

Базовый SDK iOS 11.1 для обоихЯзык Swift Версия Swift 4.0 для обоихНе используя стручки / карфаген

Я надеюсь, что кто-то может знать

Ответы на вопрос(5)

которая добавляет Swift 4.2

Перейти кBuild Settings > Swift Language Version для всех ваших целей.

Мои были все настроены наSwift 4.

После добавления фазы сборки файлов копирования я начал получать сообщение об ошибке

: 0: ошибка: модуль, скомпилированный с использованием Swift 4.1.2, не может быть импортирован компилятором Swift 4.2 MyAppExtension.build/Objects-normal/x86_64/MyClass~partial.swiftmodule

Сбой команды MergeSwiftModule с ненулевым кодом выхода

Затем я устанавливаю для каждой версии языка Target Swift значениеSwift 4.2, что устранило ошибку.

Я не уверен, почему ошибка возникла в первую очередь, поскольку все цели установлены вSwift 4 должен быть одинаково действительным.

которая работала для вас изВот.

Набор инструментов Xcode включает в себя копию компилятора, lldb и других связанных инструментов, необходимых для обеспечения целостного опыта разработки для работы в определенной версии Swift.

Откройте «Настройки XCode», перейдите к «Компоненты»> «Наборы инструментов» и выберите установленный набор инструментов Swift.

Это позволит вам скомпилировать и запустить приложение на данный момент.

Решение Вопроса

Обновить:

Для версий выпуска Xcode:

Эта ошибка (и аналогичные ошибки, связанные со Swift 4.1, 4.2 и т. Д.) Будут возникать при открытии проекта с Xcode 9.1, 9.2, 9.3, 9.4, 10 и т. Д., В котором используются платформы, созданные с помощью более ранних инструментов Xcode.

Чтобы решить эту проблему, обновите и перестройте свои фреймворки с помощью Carthage (carthage update --platform iOS), Cocoapods (pod update или жеpod install) или вручную, с новыми обновленными инструментами XCode. Инструменты должны обновляться автоматически при обновлении XCode, но если нет, вы можете выполнить шаги, описанные ниже в оригинальном ответе.

Вам также может понадобиться очистить ваш проектcmd + shift + k и, возможно, ваша папка сборкиcmd + option + shift + k заставить Xcode не использовать кэшированные сборки фреймворка.

В некоторых случаях вам также может понадобиться удалить папку с производными данными (это легко найти, перейдя в «Настройки XCode» -> «Местоположения» -> «Папка производных данных» (спасибо Stunner).

Для бета-версий Xcode:

Смотрите оригинальный ответ ниже, а затем следуйте инструкциям выше.

Оригинальный ответ:

Вероятно, у вас все еще установлены инструменты xcodebuild для Xcode 9.0, который собирается с Swift 4.0 и несовместим с Swift 4.0.1 бета-версии Xcode 9.1.

Проверьте в терминале, используя команду:

xcodebuild -version

Или просто зайдите в настройки Xcode -> Locations и проверьте / измените инструменты командной строки на Xcode 9.1. Вы должны быть установлены тогда.

 Joseph Beuys' Mum21 дек. 2017 г., 13:15
Привет @ Зиг. Репозиторий, который я использую на github (mattdonnelly / swifter), находится в Swift 4.0, но, очевидно, был скомпилирован с использованием XCode 9.0, поэтому я получаю эту проблему. Какие шаги необходимы для перекомпиляции чужого cocoapod на Github для XCode 9.1 и выше?
 Simon16 окт. 2017 г., 20:49
Я также очистил Производные данные и очистил проект, не знаю, если это необходимо для всех, но здесь это, казалось, было. Спасибо
 tara tandel30 апр. 2018 г., 09:04
Есть ли способ добавить инструмент командной строки? У меня просто есть Xcode 9.3 в выпадающем списке моей командной строки. и у меня тоже есть эта проблема
 LinusGeffarth06 июн. 2018 г., 09:16
Это также работает для беты Xcode 10.
 skofgar14 сент. 2018 г., 18:13
Некоторые из моих модулей не готовы к Swift 4.2, поэтому мне пришлось прикрепитьSwift Language Version вSwift 4 для тех. Тогда это сработало.

что внешняя структура не была скомпилирована для Swift 4.0.2. Я добавил этот файл черезКарфагентак работает:

carthage update --platform iOS

А потом уборка проектаcmd + shift + k и создать папкуcmd + option + shift + k и удаление папки с производными данными (просто перемещение ее в мусорную корзину) также работало для меня.

 Leonardo Leite02 мая 2018 г., 19:22
cmd + option + shift + k - это то, что удалось после обновления Карфагена. Спасибо!
 Fattie30 мар. 2018 г., 20:57
действительно, это по сути решение. То же самое произошло сегодня (18 апреля) благодаря последнему быстрому обновлению Apple! :)
 Kishore Kumar06 апр. 2018 г., 11:47
исправь свои работы в моем случае

Я пошел в XcodePreferences > Locations > Derived Data

Затем я удалил данные, сделал чистую сборку и все было в порядке.

Ваш ответ на вопрос