Ответ 1
Я пока не могу найти решение.
Сейчас я исправляю настройку Swift Language Version
После изменения с 3.2 на 4.0 я компилирую и исправляю ошибки и предупреждения вручную.
Я жду лучшего решения!
В Xcode 9 я пытаюсь сделать автоматическое преобразование в Swift 4. Он выходит из строя со следующим сообщением:
Ошибка перехода к текущему синтаксису Swift
Перед попыткой переноса убедитесь, что все выбранные цели успешно сработали с текущей версией Swift.
Он жалуется на недостающий модуль. Но когда я делаю регулярную сборку, проблем нет. Не уверен, что это актуально, но модуль (который отсутствует в Xcode) уже был преобразован в Swift 4 ранее (в нем собственный проект).
Примечание: здесь не используются Cocoapods/Carthage.
Примечание. Два решения пробовали (и работали), но не затрагивают основную проблему.
Я пока не могу найти решение.
Сейчас я исправляю настройку Swift Language Version
После изменения с 3.2 на 4.0 я компилирую и исправляю ошибки и предупреждения вручную.
Я жду лучшего решения!
У меня также возникла проблема при преобразовании моего проекта в Swift 4.0. Похоже, проблема возникает при попытке конвертировать цель, которая импортирует фреймворк, который уже находится в Swift 4.0. На скриншоте вы пытаетесь преобразовать "RecipeTextParser", который импортирует "SovaTools" , который уже является Swift 4.0.
Я нашел грязное, но рабочее решение. При конвертации вы можете использовать более старую (Swift 3.2) версию "SovaTools" . Вы должны НЕ проверить его отметку в окне выбора цели инструмента преобразования. Затем, когда "RecipeTextParser" будет успешно преобразован, вы можете снова использовать версию Swift 4.0 "SovaTools" .
Я получил эту ошибку, и в моем случае один из моих Pods (один Xcode жаловался) был целью Swift 4, а остальные были Swift 3.2. Глядя на журналы сборки, похоже, что Xcode построил эту инфраструктуру в одном месте и искал ее в другом. Когда я вернул это Pod в более старую версию (использующую Swift3.2), проблема исчезла. Очевидно, ошибка Xcode. HTH
Функция миграции языка Xcode (Xcode 9) не так точна, что может переносить ваш полный код/проект из одной быстрой версии в другую с нулевым допуском. Он пропускает немного миграции кода для нас (разработчиков). Это может быть ошибка или неточность инструмента. Но вам нужно также приложить некоторые усилия вручную, чтобы полностью перенести быструю языковую версию для вашего проекта/кода.
Теперь, согласно вашему снимку, отображается Xcode и ошибка для рамки "RecipeTextParser". Я думаю, что это внешняя/сторонняя структура. Еще одно замечание: вы интегрировали эту инфраструктуру с помощью CocoaPods:
Любая из следующих причин может быть причиной отказа в миграции кода:
Предложение как решение:
Для полной миграции кода между быстрыми языками требуется некоторое ручное усилие. Я попробовал быструю миграцию с указанными выше параметрами, и все мои проекты теперь совместимы с быстрым 4.
Просто обновите ваш модуль, и это решит проблему.
Чтобы обновить модуль:
Это решило мою проблему.