Skip to content

Conversation

@rajveermalviya
Copy link
Member Author

rajveermalviya commented Sep 10, 2025

There is an update for Android Gradle Plugin too (8.12 -> 8.13), but updating it seems to cause build issues because of package:app_settings and package:file_picker.

EDIT: package:file_picker doesn't block AGP upgrade anymore (see miguelpruivo/flutter_file_picker#1889).

Here are the logs for app_settings (similar errors for file_picker are observed after resolving issues with app_settings by simply removing it):

Logs

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app_settings:checkDebugAarMetadata'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
   > 14 issues were found when checking AAR metadata:

       1.  Dependency 'androidx.fragment:fragment:1.7.1' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

       2.  Dependency 'androidx.window:window:1.2.0' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

       3.  Dependency 'androidx.window:window-java:1.2.0' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

       4.  Dependency 'androidx.activity:activity:1.8.1' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

       5.  Dependency 'androidx.lifecycle:lifecycle-livedata-core-ktx:2.7.0' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

       6.  Dependency 'androidx.lifecycle:lifecycle-livedata:2.7.0' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

       7.  Dependency 'androidx.lifecycle:lifecycle-viewmodel:2.7.0' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

       8.  Dependency 'androidx.lifecycle:lifecycle-livedata-core:2.7.0' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

       9.  Dependency 'androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

      10.  Dependency 'androidx.core:core-ktx:1.13.1' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

      11.  Dependency 'androidx.core:core:1.13.1' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

      12.  Dependency 'androidx.lifecycle:lifecycle-runtime:2.7.0' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

      13.  Dependency 'androidx.lifecycle:lifecycle-process:2.7.0' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

      14.  Dependency 'androidx.annotation:annotation-experimental:1.4.0' requires libraries and applications that
           depend on it to compile against version 34 or later of the
           Android APIs.

           :app_settings is currently compiled against android-33.

           Recommended action: Update this project to use a newer compileSdk
           of at least 34, for example 36.

           Note that updating a library or application's compileSdk (which
           allows newer APIs to be used) can be done separately from updating
           targetSdk (which opts the app in to new runtime behavior) and
           minSdk (which determines which devices the app can be installed
           on).

@gnprice
Copy link
Member

gnprice commented Sep 11, 2025

Thanks for taking care of this! These all look good modulo the CI failure, which we're discussing at #mobile-team > CI failing after Flutter upgrade. So once that's resolved or worked around, this will be ready to merge.

@gnprice gnprice added the integration review Added by maintainers when PR may be ready for integration label Sep 11, 2025
@rajveermalviya
Copy link
Member Author

This is ready for review now @gnprice, PTAL.

Copy link
Member

@gnprice gnprice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Comments below.

Comment on lines -30 to +24
git clone --depth=3000 -b main https://github.com/flutter/flutter ~/flutter
git clone --filter=blob:none -b main https://github.com/flutter/flutter ~/flutter
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ci: Prefer `--filter=blob:none` over `--depth=N`

Flutter upstream changed it's version number calculation and
it now doesn't play well with "shallow clone".

That means this is needed before the Flutter upgrade, right? So it should come before that commit, to avoid having a commit where things are broken.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's also a similar --depth in the other workflow in this directory. Should that be updated the same way?

fi
fi

# Check the commit is an acceptable commit.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This check would still work fine, right? I believe it's just the "Check the version name matches the commit ID" step that's affected.

Flutter upstream changed it's version number calculation and
it now doesn't play well with "shallow clone".

CZO discussion:
  https://chat.zulip.org/#narrow/channel/243-mobile-team/topic/CI.20failing.20after.20Flutter.20upgrade/with/2258300
Flutter upstream changed it's version number format so this check
will need to be updated to accommodate for that, but we leave that
as a follow up (see zulip#1851). So, remove this check for now.
This commit is the result of the following commands:
  flutter pub upgrade --major-versions firebase_messaging firebase_core
  tools/upgrade pod

Changelogs:
  https://pub.dev/packages/firebase_core/changelog#410
  https://pub.dev/packages/firebase_messaging/changelog#1601

Notable changes include bump to Firebase Android BoM (34.0.0 to 34.1.0)
and Firebase iOS SDK (12.0.0 to 12.2.0), changelog for those are at:
  https://firebase.google.com/support/release-notes/android
  https://firebase.google.com/support/release-notes/ios

For Android SDK, no changes in the FCM component (the only one we use).

For iOS SDK, one runtime crash fix for apps built with
(not yet released) Xcode 26:
  firebase/firebase-ios-sdk#15159

which doesn't affect us, as probably no one has tried to build
with Xcode 26 Beta yet.
This commit is the result of the following commands:
  flutter pub upgrade --major-versions pigeon
  tools/check --all-files --fix pigeon

Changelog:
  https://pub.dev/packages/pigeon/changelog#2601

Couple of changes and documentation updates for `@ProxyApi` APIs,
which we do not use.
This commit is the result of the following command:
  flutter pub upgrade --major-versions device_info_plus

Changelog:
  https://pub.dev/packages/device_info_plus/changelog#1200

One breaking change is removal of `serialNumber` from
`AndroidDeviceInfo`, which doesn't affect as we do not use it.
This commit is the result of the following commands:
  flutter pub upgrade --major-versions package_info_plus
  tools/upgrade pod

Changelog:
  https://pub.dev/packages/package_info_plus/changelog#900
This commit is the result of the following command:
  flutter pub upgrade --major-versions share_plus

Changelog:
  https://pub.dev/packages/share_plus/changelog#1200

One notable change is that it fixes a bug that occurs
only on iOS 26:
  fluttercommunity/plus_plugins#3631
Changelog:
  https://kotlinlang.org/docs/whatsnew2220.html

Highlights:
  * Mostly experimental changes.

  * One notable change is improved incremental compilation
    for Kotlin/JVM but currently experimental:
    - https://kotlinlang.org/docs/whatsnew2220.html#preview-improved-incremental-compilation-for-kotlin-jvm

  * And one breaking change for `kapt.use.k2` property, which we do not use.
@rajveermalviya
Copy link
Member Author

Thanks for the review @gnprice! Pushed an update, PTAL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
integration review Added by maintainers when PR may be ready for integration
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants