"Быстрая версия языка" (SWIFT_VERSION) требуется правильно настроить для целей, которые используют Swift

Я только что сделал последнее обновление XCode (8.3), и у меня есть сообщение:

"Версия языка Swift" (SWIFT_VERSION) должна быть правильно настроена для целей, которые используют Swift. Используйте меню [Правка> Преобразовать> В текущий синтаксис Swift...], чтобы выбрать версию Swift, или используйте редактор параметров сборки, чтобы напрямую настроить параметры сборки.

Зная, что опция "Использовать устаревшую языковую версию Swift" была только что удалена из настроек сборки, как я могу сгенерировать свое приложение в Swift 2.3 без каких-либо преобразований на данный момент?

Ответы

Ответ 1

Вы не можете. XCode 8.2 была последней версией для поддержки Swift 2.3. Вы должны либо обновиться до Swift 3, либо использовать Xcode 8.2.

Ответ 2

На панели выбора навигатора щелкните увеличительное стекло, затем найдите "SWIFT_VERSION". Вы найдете места в проекте, где вы можете соответствующим образом отрегулировать быструю версию.

введите описание изображения здесь

введите описание изображения здесь

Ответ 3

Для программного изменения быстрой версии модулей вы можете добавить это в свой Podfile

post_install do |installer|
    installer.pods_project.targets.each do |target|
        if ['Alamofire','OtherPod','AnotherPod'].include? target.name
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_VERSION'] = '4.0'
            end
        end
    end
end

В Swift 4, если вы также используете target-c,

вы можете включить вывод @objc, чтобы проект swift работал правильно на target-c.

post_install do |installer|
    installer.pods_project.targets.each do |target|
        if ['Alamofire','OtherPod','AnotherPod'].include? target.name
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_SWIFT3_OBJC_INFERENCE'] = 'On'
            end
        end
    end
end

Ответ 4

Вы не можете, поскольку XCode 8.2 была последней версией для поддержки Swift 2.3. Вам придется либо обновить свой код до Swift 3, либо использовать Xcode 8.2.

Ответ 5

Черт бы тебя побрал Xcode, теперь мне нужно перейти на Swift 3.0. Он ясно показывает это предупреждение при открытии или создании старого проекта с Swift 2.3, поэтому я предлагаю вам выполнить миграцию:(: (

введите описание изображения здесь

Ответ 6

Измените версию языка Swift на поддерживаемую версию в настройках сборки

введите описание изображения здесь

Ответ 7

В моем случае я выбрал Pod и изменил версию Swift для конкретного модуля. Это работает для меня.

enter image description here

Ответ 8

Обновлено, у меня работает:

Шаг 1: Зайдите в вашу папку ios и откройте podfile и сделайте ниже простые изменения;

первое изменение:

target 'Runner' do
      use_frameworks! # <--- add this single line
      # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
      # referring to absolute paths on developers' machines.
      system('rm -rf .symlinks')
      system('mkdir -p .symlinks/plugins')

Вторые изменения:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
      config.build_settings['SWIFT_VERSION'] = '3.2' # <--- add this single line
    end
  end
end

Шаг 2: Откройте ваш текущий рабочий проект из Xcode, т.е. перейдите в папку ios и откройте файл yourProjectName.xcworkspace;

Add an empty Swift file to your Flutter iOS project in Xcode and accept to add bridging header.

Шаг 3: Откройте Терминал и снова установите, используя приведенную ниже команду;

pod install

Если проект уже открыт, закройте его и откройте снова, т.е. файл yourProjectName.xcworkspace, очистите и соберите.