"Использовать устаревшую версию языка Swift" (SWIFT_VERSION) необходимо правильно настроить для целей, которые используют Swift ".
С тех пор как я обновился до Xcode 8.2 (семена GM, из App Store), я застрял в следующей ошибке:
Использовать устаревшую версию языка Swift "(SWIFT_VERSION) требуется правильно настроен для целей, которые используют Swift. Используйте [Edit > Convert > To Current Swift Syntax...], чтобы выбрать версию Swift или используйте редактор настроек Build, чтобы напрямую настроить параметры сборки.
Итак, я пошел в свою целевую Настройки сборки и искал SWIFT_VERSION
, чтобы увидеть, где я ошибался. Однако я с удивлением обнаружил, что он уже установлен на No
!
Как это исправить?
Ответы
Ответ 1
Xcode 8, кажется, неправомерно отображает несуществующий ( "phantom", если вы это сделаете) No
. Для этого существует тривиальное исправление:
- Нажмите на маленькую стрелку рядом с
SWIFT_VERSION
, чтобы переключить раскрывающийся список.
- Задайте значения
Debug
и Release
до Yes
.
- Установите значения
Debug
и Release
обратно на No
.
Изображение ниже было взято сразу после установки Debug
на No
. Xcode показывает, что для Debug
и Release
установлено значение No
, однако SWIFT_VERSION
читает <Multiple Values>
:
![введите описание изображения здесь]()
Из этого я могу только сделать вывод, что это ошибка; и что некоторое значение (или, скорее, нулевое значение) искажается как No
.
Ответ 2
Выберите цель в pod alamofire, найдите "SWIFT_VERSION", выберите swift3. ![введите описание изображения здесь]()
Ответ 3
Xcode 8.3.2 перейти к:
Настройки сборки > Swift Compiler - Viersion > change Swift Version
.... работа
Ответ 4
На всякий случай, если кто-то еще сталкивается с той же проблемой, что и я.
У меня было приложение, которое было готово к запуску в хранилище приложений, но я ждал, между тем я обновился до Xcode 9 beta и стал возиться, изменил несколько вещей в моем приложении. Я пошел загружать его в магазин приложений, и он сказал, что вы не можете использовать бета-версии для загрузки, поэтому я вернулся к Xcode 8, но он начал давать мне ошибку "Swift Language Version (SWIFT_VERSION)...".
Мое исправление
В вашем проекте "Настройки сборки" > "Быстрая версия компилятора" > мне пришлось изменить это значение с Swift 4(currently not supported)
на Swift 3
.
Проблема решена:)
Ответ 5
phantom Нет ответа. Настоящая причина, по которой XCode нарушена, заключается в том, что Apples XCode "использует устаревшие настройки" - это действительно номер версии Swift. В XCode 8.1 "Нет" переведено в 3.0.1, в XCode 8.2 "Нет" переводится в 3.0. Поэтому вам нужно переключить версию на Swift 3.0. Это имеет смысл. Я думаю, ошибка была в XCode 8.1.
Мой git diff:
--- a/ios/myapp.xcodeproj/project.pbxproj
+++ b/ios/myapp.xcodeproj/project.pbxproj
@@ -1757,7 +1757,7 @@
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 3.0.1;
+ SWIFT_VERSION = 3.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
Я вижу комментарий выше, который имеет тот же ответ, просто думаю, что ему нужно выделяться больше.
Ответ 6
У меня была такая же проблема с "Использовать устаревшую версию языка Swift..", я решил ее, установив версию. Советы по устранению проблемы:
- когда вы откроете цель, появится сообщение "Преобразовать в текущий быстрый синтаксис", вы должны выбрать "Позже", затем еще одно уведомление, по-прежнему выберите "Позже".
-
Если ваша цель уже добавлена CocoaPods, добавьте этот код в конец вашего podFile:
post_install
do | установщик | installer.pods_project.targets.each
do | target | target.build_configurations.each
do | config | config.build_settings ['SWIFT_VERSION'] = '3.0'
end end end
после добавления этого кода, пожалуйста, обновите cocoaPods.
- Нажмите pod file, там будет показан список всех сторонних библиотек. узнайте "Настройка сборки" для каждой библиотеки и выполните поиск по типам "Использовать устаревшую версию языка Swift", установите для нее значение "ДА".
- Могут быть некоторые предупреждения или ошибки, поступающие из загрузки версии, вы можете исправить их через приглашение красного круга.
----- Если вы не добавляете cocoaPods, вы можете установить версию целей YES (TARGETS- > Build Setting → Use Legacy Swift Language Version → YES)
Надеюсь, что это может вам помочь.
Ответ 7
У меня была такая же проблема вчера. Шаг исправления:
-
Настройки сборки → быстрый поиск, выбор использовать устаревшую версию с быстрым языком
-
Переключить no на yes → build. Вы получите больше ошибок.
-
Снова переключится, да нет. build → success!
Когда-нибудь яблоко заставит нас стать такими сумасшедшими:)
Все сделано.