2016-12-15 13 views
13

С тех пор как я обновился до Xcode 8.2 (семена GM, из App Store), я застрял в следующее сообщение об ошибке:«Использовать устаревшую версию языка Swift» (SWIFT_VERSION) необходимо правильно настроить для целей, которые используют Swift. »

Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.

Так что я пошел в Строительства Настройки моей цели, и искали SWIFT_VERSION, чтобы увидеть, где я был заблудший Однако, я с удивлением обнаружил, что он уже установлен в No.

Как это исправить?

+1

Под капотом, «Использовать устаревшую версию языка Swift» - это 'SWIFT_VERSION' ключ в' buildSettings'. В настройке XCode 8.1 параметр «Нет» означает «SWIFT_VERSION = 3.0.1», в XCode 8.2 это просто «SWIFT_VERSION = 3.0». Отсюда «смешные» побочные эффекты. – courteouselk

ответ

13

Xcode 8, кажется, неправомерно отображает несуществующий («фантом», если вы это сделаете) No. Там тривиальные исправить это:

  1. Нажмите на крошечную стрелку рядом с SWIFT_VERSION для переключения выпадающего списка.
  2. Установите значения для Debug и Release к Yes.
  3. Установите значения для Debug и Release назад No.

Изображение ниже было принято только после установки Debug в No. Xcode показывает, что оба Debug и Release устанавливаются No, однако SWIFT_VERSION читает <Multiple Values>:

enter image description here

Из этого я могу только заключить, что это ошибка; и что некоторая величина (или, более вероятно, нулевое значение) искажается как No.

+0

это сделало трюк для меня! –

0

У меня была та же проблема, о «Использование Наследства Swift Язык версии ..», мой решил, установив версию, Насадки для решения этой проблемы являются:

  1. при открытии ворот , появится сообщение «Преобразовать в текущий быстрый синтаксис», вы должны выбрать «Позже», затем еще одно уведомление, по-прежнему выберите «Позже».
  2. Если ваша цель уже добавил CocoaPods, пожалуйста добавьте этот код в конце вашего podFile:

    post_install сделать | установщиком | installer.pods_project.targets.each do | target | target.build_configurations.each do | config | конфигурации.build_settings [ 'SWIFT_VERSION'] = '3,0' конец конец конец

после добавления этого кода, пожалуйста, обновите cocoaPods.

  1. Нажмите pod file, там будет показан список всех сторонних библиотек. узнайте «Настройка сборки» в каждой библиотеке и выполните поиск по типам «Использовать устаревшую версию языка Swift», установите для нее значение «ДА».
  2. Возможно, есть некоторые предупреждения или ошибки, они получены из загрузки версии, вы можете исправить их через подсказку красного круга.

----- Если вы не добавить cocoaPods, вы можете установить версию Мишени будет YES (TARGETS-> Build Настройки -> Использование устаревшего Swift Язык версия -> YES) Надежды, которая может помочь вы.

1

Фантом Ответ не будет работать. Настоящая причина, по которой XCode нарушена, заключается в том, что Apples XCode «использует устаревшие настройки» - это действительно номер версии Swift. В XCode 8.1 «Нет» переведено в 3.0.1, в XCode 8.2 «Нет» переводится в 3.0. Поэтому вам нужно переключить версию на Swift 3.0. Это имеет смысл. Я думаю, ошибка была в XCode 8.1.

Мой мерзавец дифф:

--- 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; 

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

0

У меня была такая же проблема вчера. фиксируем шаг:

  1. параметры сборки -> Поиск быстры, выбор использования устаревших быстры версия языка

  2. не переключается, чтобы да -> строить. Вы получите больше ошибок.

  3. Назад toggled yes to no. build -> успех!

Иногда яблоко заставляют нас быть приходят так с ума :)

Все сделано.

17

Пожалуйста, выберите цель в pod alamofire, найдите «SWIFT_VERSION», выберите swift3. enter image description here

2

На всякий случай кто-то другой сталкивается с тем же вопросом, что и я.

У меня было приложение, которое было готово к запуску в магазине приложений, но я ждал, между тем я обновился до Xcode 9 beta и стал возиться, изменил несколько вещей в своем приложении. Я пошел загружать его в магазин приложений, и он сказал, что вы не можете использовать бета-версии для загрузки, поэтому я вернулся к Xcode 8, но он начал давать мне ошибку Swift Language Version (SWIFT_VERSION) ... ».

Моего фикс

по вашей сборке проекта Настройки> Swift Compiler Version> я должен был изменить это от Swift 4(currently not supported) к Swift 3.

проблема решена :)

6

Xcode 8.3.2 перейти к:

Строительства Настройки> Swift Compiler - Viersion> изменить Swift Версия

.... работает