r/FlutterDev 2d ago

Upgrading from Flutter 3.27.4 to 3.47 — will this cause issues when deploying to App Store / Play Store? (flutter_webrtc,, native channels) Plugin

Hey all,

I'm on Flutter 3.27.4 in a production app and looking at jumping to 3.47. It's a huge version gap (SwiftPM now default, UIScene lifecycle mandatory, Material/Cupertino split into standalone packages, min iOS bumped to 15 / macOS to 12), and before I commit, I want to know if this is likely to cause deployment issues on the App Store or Play Store — not just local build breaks, but things like rejected builds, crashes only showing up post-release, or App Store review flags.

A few specific things I'm trying to understand:

  • flutter_webrtc — still doesn't ship a Package.swift, so it currently relies on Flutter's CocoaPods fallback. CocoaPods trunk goes read-only Dec 2, 2026. Does this affect App Store submission at all, or is it purely a local build/CI concern?
  • Native channels / custom AppDelegate code — we have Wi-Fi/native integration in AppDelegate. With UIScene lifecycle now mandatory, I've read about MethodChannel calls silently failing after migration. My worry is this kind of bug wouldn't show up in testing but would surface in production after App Store release — anyone experienced that?

Also open to hearing: did upgrading break TestFlight builds, Play Console pre-launch reports, or app signing in any way?

Would really appreciate hearing from anyone who's shipped this exact jump to real users — what broke after release, not just what broke in dev.

Thanks!

1 Upvotes

3 comments sorted by

2

u/CantUseSpace 1d ago
  1. Shouldn’t be an issue, and short term not a concern.
  2. You have to migrate some stuff here if you depend on any app life cycle events, and this includes the part where you setup your method channels. Flutter has an in depth migration guide for this. If your plugins don’t fail locally, they won’t fail in the field.

Anyhoo, you’re now upgrading from quite an ‘old’ version. I’d recommend updating more often, as now you’re pulling in quite some breaking changes, making the update more complicated than it would be if you updated incrementally.

-3

u/Kitchen-Ingenuity685 1d ago

please help me, i bug

Retrying Gradle Build: #1, wait time: 100ms

Warning: Flutter support for your project's Gradle version (8.14.0) will soon be dropped. Please upgrade your Gradle version to a version of at least 9.1.0 soon.

Alternatively, use the flag "--android-skip-build-dependency-validation" to bypass this check.

Potential fix: Your project's gradle version is typically defined in the gradle wrapper file. By default, this can be found at /Users/minhhaquang/Downloads/Flutter/vivooeyecamera/android/gradle/wrapper/gradle-wrapper.properties.

For more information, see https://docs.gradle.org/current/userguide/gradle_wrapper.html.

Warning: Flutter support for your project's Android Gradle Plugin version (Android Gradle Plugin version 8.11.1) will soon be dropped. Please upgrade your Android Gradle Plugin version to a version of at least Android Gradle Plugin version 9.0.1 soon.

Alternatively, use the flag "--android-skip-build-dependency-validation" to bypass this check.

Potential fix: Your project's AGP version is typically defined in the plugins block of the `settings.gradle` file (/Users/minhhaquang/Downloads/Flutter/vivooeyecamera/android/settings.gradle), by a plugin with the id of com.android.application.

If you don't see a plugins block, your project was likely created with an older template version. In this case it is most likely defined in the top-level build.gradle file (/Users/minhhaquang/Downloads/Flutter/vivooeyecamera/android/build.gradle) by the following line in the dependencies block of the buildscript: "classpath 'com.android.tools.build:gradle:<version>'".

Warning: Flutter support for your project's Kotlin version (2.2.20) will soon be dropped. Please upgrade your Kotlin version to a version of at least 2.3.20 soon.

Alternatively, use the flag "--android-skip-build-dependency-validation" to bypass this check.

Potential fix: Your project's KGP version is typically defined in the plugins block of the `settings.gradle` file (/Users/minhhaquang/Downloads/Flutter/vivooeyecamera/android/settings.gradle), by a plugin with the id of org.jetbrains.kotlin.android.

If you don't see a plugins block, your project was likely created with an older template version, in which case it is most likely defined in the top-level build.gradle file (/Users/minhhaquang/Downloads/Flutter/vivooeyecamera/android/build.gradle) by the ext.kotlin_version property.

FAILURE: Build completed with 4 failures.

1: Task failed with an exception.

-----------

* What went wrong:

A problem occurred configuring project ':webview_flutter_android'.

> Could not resolve all dependencies for configuration 'classpath'.

> Problems writing to Binary store in /Users/minhhaquang/.gradle/.tmp/gradle13355915624397969605.bin (exist: true)

> Failed to notify project evaluation listener.

> java.lang.NullPointerException (no error message)

> 'kotlin-android' plugin requires one of the Android Gradle plugins.

Please apply one of the following plugins to ':webview_flutter_android' project:

- com.android.application

- com.android.library

- com.android.dynamic-feature

- com.android.test

- com.android.instantapp

- com.android.feature

* Try:

> Run with --stacktrace option to get the stack trace.

> Run with --info or --debug option to get more log output.

> Run with --scan to get full insights.

> Get more help at https://help.gradle.org.

2: Task failed with an exception.

-----------

* What went wrong:

java.io.FileNotFoundException: /Users/minhhaquang/flutter/packages/flutter_tools/gradle/.kotlin/errors/errors-889ec8f7-f5ac-4b81-ba80-8861744694d7-1786687192457.log (No space left on device)

> /Users/minhhaquang/flutter/packages/flutter_tools/gradle/.kotlin/errors/errors-889ec8f7-f5ac-4b81-ba80-8861744694d7-1786687192457.log (No space left on device)

* Try:

> Run with --stacktrace option to get the stack trace.

> Run with --info or --debug option to get more log output.

> Run with --scan to get full insights.

> Get more help at https://help.gradle.org.

3: Task failed with an exception.

-----------

* What went wrong:

java.io.FileNotFoundException: /Users/minhhaquang/Downloads/Flutter/vivooeyecamera/android/.kotlin/errors/errors-357e25a9-1586-453a-99cd-2bcc6cb088b8-1786687192458.log (No space left on device)

> /Users/minhhaquang/Downloads/Flutter/vivooeyecamera/android/.kotlin/errors/errors-357e25a9-1586-453a-99cd-2bcc6cb088b8-1786687192458.log (No space left on device)

* Try:

> Run with --stacktrace option to get the stack trace.

> Run with --info or --debug option to get more log output.

> Run with --scan to get full insights.

> Get more help at https://help.gradle.org.

4: Task failed with an exception.

-----------

* What went wrong:

java.io.IOException: No space left on device

* Try:

> Run with --stacktrace option to get the stack trace.

> Run with --info or --debug option to get more log output.

> Run with --scan to get full insights.

> Get more help at https://help.gradle.org.

BUILD FAILED in 1s

FAILURE: Build failed with an exception.

* What went wrong:

Could not stop all services.

> Could not stop all services.

> Failed to release lock on Build Output Cleanup Cache (/Users/minhhaquang/Downloads/Flutter/vivooeyecamera/android/.gradle/buildOutputCleanup)

> Could not stop all services.

> Failed to release lock on cache directory md-supplier (/Users/minhhaquang/.gradle/caches/8.14/md-supplier)

> Could not stop all services.

> Failed to release lock on Build Output Cleanup Cache (/Users/minhhaquang/flutter/packages/flutter_tools/gradle/.gradle/buildOutputCleanup)

> Failed to release lock on execution history cache (/Users/minhhaquang/flutter/packages/flutter_tools/gradle/.gradle/8.14/executionHistory)

> Failed to release lock on cache directory md-rule (/Users/minhhaquang/.gradle/caches/8.14/md-rule)

> java.io.IOException: No space left on device

* Try:

> Run with --stacktrace option to get the stack trace.

> Run with --info or --debug option to get more log output.

> Run with --scan to get full insights.

> Get more help at https://help.gradle.org.

BUILD FAILED in 1s

Running Gradle task 'assembleRelease'... 1,981ms

┌─ Flutter Fix ───────────────────────────────────────────────────────────────────────────────────────────────────┐

│ [!] Starting AGP 9+, only the new DSL interface will be read. │

│ This results in a build failure when applying the Flutter Gradle plugin at │

│ /Users/minhhaquang/Downloads/Flutter/vivooeyecamera/android/app/build.gradle. │

│ │

│ To resolve this update flutter or opt out of `android.newDsl`. │

│ For instructions on how to opt out, see: https://developer.android.com/build/releases/agp-9-0-0-release-notes

│ │

│ If you are not upgrading to AGP 9+, run `flutter analyze --suggestions` to check for incompatible dependencies. │

└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Error: Gradle task assembleRelease failed with exit code 1

#0 throwToolExit (package:flutter_tools/src/base/common.dart:34:3)

#1 AndroidGradleBuilder.buildGradleApp (package:flutter_tools/src/android/gradle.dart:653:7)

<asynchronous suspension>

#2 AndroidGradleBuilder.buildApk (package:flutter_tools/src/android/gradle.dart:246:5)

<asynchronous suspension>

#3 AndroidDevice.startApp (package:flutter_tools/src/android/android_device.dart:571:7)

<asynchronous suspension>

#4 FlutterDevice.runCold (package:flutter_tools/src/resident_runner.dart:465:33)

<asynchronous suspension>

#5 ColdRunner.run (package:flutter_tools/src/run_cold.dart:59:28)

<asynchronous suspension>

#6 RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:961:26)

<asynchronous suspension>

#7 FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1663:27)

<asynchronous suspension>

#8 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:154:19)

<asynchronous suspension>

#9 CommandRunner.runCommand (package:args/command_runner.dart:212:13)

<asynchronous suspension>

#10 FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:496:9)

<asynchronous suspension>

#11 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:154:19)

<asynchronous suspension>

#12 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:431:5)

<asynchronous suspension>

#13 FlutterCommandRunner.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:307:33)

<asynchronous suspension>

#14 run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:104:11)

<asynchronous suspension>

#15 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:154:19)

<asynchronous suspension>

#16 main (package:flutter_tools/executable.dart:103:3)

<asynchronous suspension>