Ответ 1
Вы не можете. XCode 8.2 была последней версией для поддержки Swift 2.3. Вы должны либо обновиться до Swift 3, либо использовать Xcode 8.2.
Я только что сделал последнее обновление XCode (8.3), и у меня есть сообщение:
"Версия языка Swift" (SWIFT_VERSION) должна быть правильно настроена для целей, которые используют Swift. Используйте меню [Правка> Преобразовать> В текущий синтаксис Swift...], чтобы выбрать версию Swift, или используйте редактор параметров сборки, чтобы напрямую настроить параметры сборки.
Зная, что опция "Использовать устаревшую языковую версию Swift" была только что удалена из настроек сборки, как я могу сгенерировать свое приложение в Swift 2.3 без каких-либо преобразований на данный момент?
Вы не можете. XCode 8.2 была последней версией для поддержки Swift 2.3. Вы должны либо обновиться до Swift 3, либо использовать Xcode 8.2.
На панели выбора навигатора щелкните увеличительное стекло, затем найдите "SWIFT_VERSION
". Вы найдете места в проекте, где вы можете соответствующим образом отрегулировать быструю версию.
Для программного изменения быстрой версии модулей вы можете добавить это в свой 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
Вы не можете, поскольку XCode 8.2 была последней версией для поддержки Swift 2.3. Вам придется либо обновить свой код до Swift 3, либо использовать Xcode 8.2.
Черт бы тебя побрал Xcode, теперь мне нужно перейти на Swift 3.0. Он ясно показывает это предупреждение при открытии или создании старого проекта с Swift 2.3, поэтому я предлагаю вам выполнить миграцию:(: (
Измените версию языка Swift на поддерживаемую версию в настройках сборки
В моем случае я выбрал Pod и изменил версию Swift для конкретного модуля. Это работает для меня.
Обновлено, у меня работает:
Шаг 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, очистите и соберите.