Migrate your app to Swift 6
Asked on 2025-07-10
1 search
To migrate your app to Swift 6, you can follow a structured process as outlined in the session "Migrate your app to Swift 6" from WWDC 2024. Here are the key steps:
-
Enable Complete Concurrency Checking: Start by enabling complete concurrency checking for each module. This will leave your project in Swift 5 mode but will provide warnings for code that would fail under Swift 6's enforced data isolation.
-
Resolve Warnings: Address all the warnings generated by the compiler. This step is crucial for ensuring that your code is ready for Swift 6's data isolation features.
-
Enable Swift 6 Mode: Once all warnings are resolved for a module, enable Swift 6 mode. This locks in your changes and prevents future regressions to unsafe states.
-
Repeat for Each Target: Apply the above steps to each target in your project.
-
Consider Whole App Refactoring: After enabling Swift 6 mode across your app, you might want to refactor the entire app to remove any unsafe opt-outs.
The session also emphasizes the importance of adopting Swift 6 for public Swift packages to help users who want to migrate their codebases. You can follow the adoption of Swift 6 in popular packages on swiftpackageindex.com.
For more detailed guidance, you can watch the session Migrate your app to Swift 6 (07:17) which provides a comprehensive walkthrough of the migration process.

Migrate your app to Swift 6
Experience Swift 6 migration in action as we update an existing sample app. Learn how to migrate incrementally, module by module, and how the compiler helps you identify code that’s at risk of data races. Discover different techniques for ensuring clear isolation boundaries and eliminating concurrent access to shared mutable state.

Platforms State of the Union
Discover the newest advancements on Apple platforms.

What’s new in SwiftUI
Learn how you can use SwiftUI to build great apps for any Apple platform. Explore a fresh new look and feel for tabs and documents on iPadOS. Improve your window management with new windowing APIs, and gain more control over immersive spaces and volumes in your visionOS apps. We’ll also take you through other exciting refinements that help you make expressive charts, customize and layout text, and so much more.