Включение проверки полной конкурентности
Безопасность от гонок данных в режиме языка Swift 6 разработана для поэтапной миграции. Вы можете решать проблемы безопасности от гонок данных в своих проектах по модулям, а также включить изоляцию акторов компилятора и проверку Sendable как предупреждения в режиме языка Swift 5, что позволит вам оценить свой прогресс в устранении гонок данных перед включением режима языка Swift 6.
Проверку полной безопасности от гонок данных можно включить как предупреждения в режиме языка Swift 5 с помощью флага компилятора -strict-concurrency.
Использование компилятора Swift
Чтобы включить полную проверку конкурентности при запуске swift или swiftc непосредственно в командной строке, передайте -strict-concurrency=complete:
~ swift -strict-concurrency=complete main.swift
Использование SwiftPM
В вызове SwiftPM командной строки
-strict-concurrency=complete можно передать в вызове Swift package manager командной строки, используя флаг -Xswiftc:
~ swift build -Xswiftc -strict-concurrency=complete
~ swift test -Xswiftc -strict-concurrency=complete
Это может быть полезно для оценки количества предупреждений о конкурентности перед постоянным добавлением флага в манифест пакета, как описано в следующем разделе.
В манифесте пакета SwiftPM
Чтобы включить полную проверку конкурентности для целевого объекта в пакете Swift с использованием инструментов Swift 5.9 или Swift 5.10, используйте SwiftSetting.enableExperimentalFeature в настройках Swift для данного целевого объекта:
.target(
name: "MyTarget",
swiftSettings: [
.enableExperimentalFeature("StrictConcurrency")
]
)
При использовании инструментов Swift 6.0 или более поздних версий используйте SwiftSetting.enableUpcomingFeature в настройках Swift для данного целевого объекта:
.target(
name: "MyTarget",
swiftSettings: [
.enableUpcomingFeature("StrictConcurrency")
]
)
Использование Xcode
Чтобы включить полную проверку конкурентности в проекте Xcode, установите значение параметра «Строгая проверка конкурентности» на «Полная» в настройках сборки Xcode. В качестве альтернативы можно установить SWIFT_STRICT_CONCURRENCY на complete в файле xcconfig:
// In a Settings.xcconfig
SWIFT_STRICT_CONCURRENCY = complete;
The Swift Programming Language, Copyright © 2014-2025 Apple Inc.
Swift and the Swift logo are trademarks of Apple Inc.
Documentation for Swift 6.0.3
https://www.swift.org/documentation/concurrency/