<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/5-migrations-to-finish-before-flutter-3-50-lands-pmkcm6pxz" -->

---
title: 5 Migrations to Finish Before Flutter 3.50 Lands | daily.dev
description: Flutter 3.50 stable is expected in November, and it turns several current warnings into deprecations. Developers should first upgrade to 3.47.8 immediately, a...
canonical: https://daily.dev/posts/5-migrations-to-finish-before-flutter-3-50-lands-pmkcm6pxz
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: 5 Migrations to Finish Before Flutter 3.50 Lands | daily.dev
og:description: Flutter 3.50 stable is expected in November, and it turns several current warnings into deprecations. Developers should first upgrade to 3.47.8 immediately, a...
og:url: https://daily.dev/posts/5-migrations-to-finish-before-flutter-3-50-lands-pmkcm6pxz
og:image: https://api.daily.dev/og/posts/PmkCm6pXZ.png
og:image:alt: 5 Migrations to Finish Before Flutter 3.50 Lands
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 5 Migrations to Finish Before Flutter 3.50 Lands

**[Medium](https://daily.dev/sources/medium_js)** · 10 min read · 2 upvotes · 0 comments

## Summary

Flutter 3.50 stable is expected in November, and it turns several current warnings into deprecations. Developers should first upgrade to 3.47.8 immediately, a security release fixing compromised eMudhra CA certificates that affect dart:io's own certificate validation on Android and Windows. Other migrations include moving off the in-SDK Material and Cupertino widgets to the new material_ui package via 'dart fix --apply --code=migrate_design_widgets', adopting the UIScene lifecycle before Xcode 27 (or apps crash on launch), raising minimum targets to iOS 15 and macOS 12, migrating from CocoaPods to Swift Package Manager before CocoaPods trunk goes read-only on 2 December 2026, and retesting custom shaders since Impeller is now the default renderer on desktop.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://medium.com/@debasmitasarkar.93/5-migrations-to-finish-before-flutter-3-50-lands-4061a1113128>

## Questions this post answers

### Why do I need to update my Flutter app even though my phone's OS already blocked the compromised eMudhra certificates?

Because on Android and Windows, Flutter's dart:io validates TLS using its own bundled BoringSSL and an embedded root certificate bundle inside the app binary, ignoring the OS-level certificate blocklist entirely. Eight compromised eMudhra intermediate CA certificates were disclosed in October due to weak key generation. Flutter 3.47.8 explicitly distrusts those certificates, and apps must upgrade and rebuild to be protected; iOS, macOS, and web are unaffected since they use the platform verifier.

_Developers patching TLS trust issues across platforms can track framework security releases like this on daily.dev._

### How do I migrate my Flutter app away from the SDK's built-in Material and Cupertino widgets?

Run 'dart fix --apply --code=migrate_design_widgets', which adds the material_ui package to your pubspec and rewrites imports from 'package:flutter/material.dart' to 'package:material_ui/material_ui.dart'. You'll still need to handle localization manually using the Material delegate from material_ui, and wrap any dependency still importing the old SDK copy in a MaterialUiCompatibilityBridge so it can find ThemeData and MaterialLocalizations.

_Teams planning Flutter upgrades can follow migration guides like this one on daily.dev before the next stable release._

### What happens to my Flutter iOS app if I don't migrate to the UIScene lifecycle before Xcode 27?

The app will crash on startup instead of just showing a warning, because any UIKit app built with the iOS 27 SDK must use the UIScene lifecycle or it will not launch. Flutter has migrated most apps automatically since version 3.41; check for the log line 'Finished migration to UIScene lifecycle' after running flutter build ios. Apps with a customized AppDelegate need two manual edits: moving plugin registration into a new engine callback and adding an Application Scene Manifest to Info.plist.

_Developers maintaining iOS apps can stay ahead of lifecycle breaking changes like this by following Flutter updates on daily.dev._

## Similar posts on daily.dev

- [How Flutter’s Material and Cupertino Decoupling is Changing Cross-Platform UI Development](https://daily.dev/posts/how-flutter-s-material-and-cupertino-decoupling-is-changing-cross-platform-ui-development-q9slpuvxn) · Flutter Community · 0 upvotes · 0 comments
- [August 2026: Flutter 3.47, Dart 3.13, Material and Cupertino Decoupling, Listen Package](https://daily.dev/posts/august-2026-flutter-3-47-dart-3-13-material-and-cupertino-decoupling-listen-package-qabcps2uv) · Code with Andrea · 8 upvotes · 0 comments
- [Moving a Flutter App to material\_ui and cupertino\_ui: The Import Swap Is the Easy Part](https://daily.dev/posts/moving-a-flutter-app-to-material-ui-and-cupertino-ui-the-import-swap-is-the-easy-part-7wgdoqph4) · Medium · 0 upvotes · 0 comments
- [Flutter’s Material and Cupertino code freeze](https://daily.dev/posts/flutter-s-material-and-cupertino-code-freeze-ptpowftya) · Flutter · 13 upvotes · 0 comments

---

Tags: [#mobile](https://daily.dev/tags/mobile), [#ios](https://daily.dev/tags/ios), [#flutter](https://daily.dev/tags/flutter), [#dart](https://daily.dev/tags/dart)

[View this post on daily.dev](https://daily.dev/posts/5-migrations-to-finish-before-flutter-3-50-lands-pmkcm6pxz)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"5 Migrations to Finish Before Flutter 3.50 Lands","url":"https://daily.dev/posts/5-migrations-to-finish-before-flutter-3-50-lands-pmkcm6pxz","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/5-migrations-to-finish-before-flutter-3-50-lands-pmkcm6pxz"},"datePublished":"2026-11-03T03:17:38.340Z","dateModified":"2026-11-03T03:19:33.232Z","description":"Flutter 3.50 stable is expected in November, and it turns several current warnings into deprecations. Developers should first upgrade to 3.47.8 immediately, a...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/28c2d5b84d3ba3d32c3b97b7a4644652?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/28c2d5b84d3ba3d32c3b97b7a4644652?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Medium","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Medium","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium","url":"https://daily.dev/sources/medium_js"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/5-migrations-to-finish-before-flutter-3-50-lands-pmkcm6pxz","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"mobile,ios,flutter,dart","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Medium","item":"https://daily.dev/sources/medium_js"},{"@type":"ListItem","position":3,"name":"5 Migrations to Finish Before Flutter 3.50 Lands"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/5-migrations-to-finish-before-flutter-3-50-lands-pmkcm6pxz#faq","mainEntity":[{"@type":"Question","name":"Why do I need to update my Flutter app even though my phone's OS already blocked the compromised eMudhra certificates?","acceptedAnswer":{"@type":"Answer","text":"Because on Android and Windows, Flutter's dart:io validates TLS using its own bundled BoringSSL and an embedded root certificate bundle inside the app binary, ignoring the OS-level certificate blocklist entirely. Eight compromised eMudhra intermediate CA certificates were disclosed in October due to weak key generation. Flutter 3.47.8 explicitly distrusts those certificates, and apps must upgrade and rebuild to be protected; iOS, macOS, and web are unaffected since they use the platform verifier. Developers patching TLS trust issues across platforms can track framework security releases like this on daily.dev."}},{"@type":"Question","name":"How do I migrate my Flutter app away from the SDK's built-in Material and Cupertino widgets?","acceptedAnswer":{"@type":"Answer","text":"Run 'dart fix --apply --code=migrate_design_widgets', which adds the material_ui package to your pubspec and rewrites imports from 'package:flutter/material.dart' to 'package:material_ui/material_ui.dart'. You'll still need to handle localization manually using the Material delegate from material_ui, and wrap any dependency still importing the old SDK copy in a MaterialUiCompatibilityBridge so it can find ThemeData and MaterialLocalizations. Teams planning Flutter upgrades can follow migration guides like this one on daily.dev before the next stable release."}},{"@type":"Question","name":"What happens to my Flutter iOS app if I don't migrate to the UIScene lifecycle before Xcode 27?","acceptedAnswer":{"@type":"Answer","text":"The app will crash on startup instead of just showing a warning, because any UIKit app built with the iOS 27 SDK must use the UIScene lifecycle or it will not launch. Flutter has migrated most apps automatically since version 3.41; check for the log line 'Finished migration to UIScene lifecycle' after running flutter build ios. Apps with a customized AppDelegate need two manual edits: moving plugin registration into a new engine callback and adding an Application Scene Manifest to Info.plist. Developers maintaining iOS apps can stay ahead of lifecycle breaking changes like this by following Flutter updates on daily.dev."}}]}
```

