Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: AppsDevTeam/flutter-tools
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main@{1day}
Choose a base ref
...
head repository: AppsDevTeam/flutter-tools
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
  • 1 commit
  • 4 files changed
  • 1 contributor

Commits on Aug 13, 2026

  1. Verify the Android artifact carries the Dart snapshot this build prod…

    …uced
    
    A release APK went out containing a libapp.so from the previous day, and with no
    libapp.so at all for arm64-v8a and x86_64. Gradle reported success, so nothing caught
    it. A missing snapshot means the app dies right after the splash screen — the Dart VM
    never comes up and the engine null-dereferences in Shell::Create.
    
    The cause is packagingOptions.pickFirst "**/*.so" in the project combined with an
    incremental local build: files covered by pickFirst are not refreshed on re-merge, and
    Flutter's libapp.so falls under that pattern. The project-side fix is to narrow the
    pattern, but the build tool should not be able to ship such an artifact either way.
    
    - android_snapshot_check.py reads GNU build-ids straight out of ELF via PT_NOTE, so it
      needs no NDK and handles ELF32 and ELF64 alike. Build-ids survive stripDebugSymbols,
      which makes them comparable between the intermediates and the packaged library.
    - Non-debug apk/appbundle builds drop merged_native_libs and stripped_native_libs for
      their variant beforehand. Other variants keep their caches.
    - After the build every lib/<abi>/libapp.so in the artifact is matched against what
      Flutter produced into intermediates/flutter/<variant>/jniLibs. Handles the AAB
      base/lib/ prefix, skips debug builds, warns instead of failing when there is nothing
      to compare.
    - A mismatch or a missing ABI raises, so the existing failure path reverts the version
      bump and no symbols get uploaded for a rejected artifact.
    
    find_and_rename_output now returns the artifact path as well, since the verification
    needs the file and not just its directory.
    Martin Filípek
    Martin Filípek committed Aug 13, 2026
    Configuration menu
    Copy the full SHA
    34632ff View commit details
    Browse the repository at this point in the history
Loading