The Wire · Showcase
FLUTTER LOCKS DOWN XCODE VERSIONS, SWIFT TIGHTENS SENDABLE RULES
By RepoJournal · Filed · About Mobile platforms
Flutter blocked a dangerous downgrade path in Xcode project files while Swift toolchain hardens concurrency guarantees across three separate commits.
Flutter shipped a critical fix that prevents the build system from downgrading `project.pbxproj` version numbers when a higher version already exists [1], closing a long-standing issue where migrations could corrupt Xcode project state. In parallel, the Skia graphics engine rolled forward nine revisions [2] with improvements to CanvasKit path handling and PNG gainmap support, while Flutter's empty app template got reformatted to match current Dart style conventions [3]. Over on the Swift side, the compiler tightened sendability checking for isolated classes to reject the illegal `@MainActor` plus Sendable plus non-Sendable superclass combination [4], a pattern that exists in production but will become an error in a future minor version. Swift also fixed invalid extension handling to prevent them from leaking into generated Clang headers [5] and made runtime lookups gracefully fail when encountering type mismatches in mangled names [6]. Kotlin's JavaScript export now respects file-level annotations in the Analysis API [7], while the test framework gained lazy message-producing lambda overloads for assertions [8].
Action items
- → Review Xcode project file migrations in your build pipeline - the version downgrade fix prevents silent corruption flutter/flutter [plan]
- → Check for @MainActor isolated classes with non-Sendable superclasses - they will error in Swift's next minor version apple/swift [monitor]
- → Update Kotlin test assertions to use lazy message lambdas for expensive error message construction JetBrains/kotlin [plan]
References
- [1] Prevent downgrading `project.pbxproj` when greater version number (#186250) flutter/flutter
- [2] Roll Skia from d7196b0b4939 to 2ffd155313f5 (9 revisions) (#188081) flutter/flutter
- [3] [flutter_tools] Format empty app template with latest dart format (#187443) flutter/flutter
- [4] [Sema] Reject Sendable on isolated class with non-Sendable superclass ↗ apple/swift
- [5] [Sema] A few invalid `extension` fixes ↗ apple/swift
- [6] [Runtime] Gracefully fail when looking up a mangled name with an integer where a type is required. ↗ apple/swift
- [7] [JS] Respect file-level annotations in Analysis API-based TypeScript export ↗ JetBrains/kotlin
- [8] KT-31305: Introduce kotlin.test assertions overloads accepting a message-producing lambda ↗ JetBrains/kotlin
FAQ
- What changed in Mobile platforms on June 17, 2026?
- Flutter blocked a dangerous downgrade path in Xcode project files while Swift toolchain hardens concurrency guarantees across three separate commits.
- What should Mobile platforms teams do about it?
- Review Xcode project file migrations in your build pipeline - the version downgrade fix prevents silent corruption • Check for @MainActor isolated classes with non-Sendable superclasses - they will error in Swift's next minor version • Update Kotlin test assertions to use lazy message lambdas for expensive error message construction
- Which Mobile platforms repositories shipped on June 17, 2026?
- flutter/flutter, apple/swift, JetBrains/kotlin