From 7d76f157ff04bd3ba3fcd0ed8dd9b79b1423125e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Ali=20Ustao=C4=9Flu?= Date: Sun, 19 Jul 2026 18:13:02 +0200 Subject: [PATCH 1/2] chore: bump engine and SDK to Flutter 3.44.6 Repins the Flutter SDK to 3.44.6 (ee80f08b) and the tvOS engine artifacts to v1.0.0-flutter3.44.6, and releases this as 1.4.1. 3.44.6 is a three-commit hotfix over 3.44.5 (a Linux native-assets crash fix and an Android Gradle jniLibs staging fix). It carries no engine source changes and no DEPS movement, so dart_revision is unchanged and there is no SDK-hash break. The artifacts were rebuilt from the 3.44.6 tree anyway so the engine tag and the SDK pin stay in lockstep; all 17 tvOS patches applied unchanged. Upstream's build_system targets were untouched, so the four mirrored subclasses (TvosKernelSnapshot, TvosCopyFlutterBundle, TvosDartPluginRegistrantTarget, TvosAotElfRelease) needed no re-mirroring. The rebuild used tvOS SDK 26.5 (Xcode 26.6) and is origin-signed, passing verify_artifacts.sh on all six variants. Verified against the new artifacts: dart analyze lib/ clean (0 errors, 0 warnings), 295 tests pass, simulator debug and device release/AOT builds both succeed with all 10 FFI symbols exported and App.framework at minos 13.0 (ITMS-90208 clear). Folds the unreleased #37 plugin-registration fix into the 1.4.1 entry. --- CHANGELOG.md | 20 ++++++++++++++++++++ README.md | 6 +++--- bin/internal/engine.version | 2 +- bin/internal/flutter.version | 2 +- pubspec.yaml | 2 +- 5 files changed, 26 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cecd3ec..c2bd9a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,21 @@ All notable changes to flutter-tvos will be documented here. Do not add a version heading or bump pubspec.yaml — maintainers assign versions at release time. --> +## [1.4.1] — 2026-07-19 + +Refreshes the pinned engine to **Flutter 3.44.6** (`ee80f08b`, Dart 3.12.2). + +### Engine / SDK +- Bumped `bin/internal/flutter.version` to `ee80f08b` (Flutter 3.44.6) and + `bin/internal/engine.version` to `v1.0.0-flutter3.44.6`. +- Rebuilt and origin-signed all six engine artifact variants from the 3.44.6 + source tree, against tvOS SDK 26.5 (Xcode 26.6). +- All 17 tvOS engine patches apply unchanged: the 3.44.5 → 3.44.6 delta touches + only `flutter_tools` and the Android Gradle plugin, so no patched file moved. +- Dart revision is unchanged from 3.44.5, so this is not an SDK-hash-breaking + roll — the artifacts were rebuilt anyway to keep the engine tag and the SDK + pin in lockstep. + ### Fixed - **Debug builds launched outside `flutter-tvos run` on a physical Apple TV no longer crash during plugin registration.** The debug engine refuses to start @@ -18,6 +33,11 @@ All notable changes to flutter-tvos will be documented here. the `flutter-tvos run` requirement, and skips registration instead of crashing. (#37) +### Upstream fixes picked up +- Flutter 3.44.6 hotfixes for a native-assets crash on Linux custom devices and + for jniLibs staging in the Android Gradle plugin. Neither affects tvOS builds; + they ship because the SDK pin moves as a whole. + ## [1.4.0] — 2026-07-11 Ships the last of the App Store submission blockers: the engine artifact is now diff --git a/README.md b/README.md index dfaeee9..a105931 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ A Flutter toolchain for building and running Flutter apps on **Apple TV (tvOS)** ## Current version -- flutter-tvos: `1.4.0` -- Flutter SDK: `3.44.5` (`f94f4fc76b4d74543ed9b085bbd75341ef65de22`) -- tvOS engine artifacts: `v1.0.1-flutter3.44.5` (origin-signed) +- flutter-tvos: `1.4.1` +- Flutter SDK: `3.44.6` (`ee80f08bbf97172ec030b8751ceab557177a34a6`) +- tvOS engine artifacts: `v1.0.0-flutter3.44.6` (origin-signed) ## Installation diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 4d6bbb2..107c0c1 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -v1.0.1-flutter3.44.5 +v1.0.0-flutter3.44.6 diff --git a/bin/internal/flutter.version b/bin/internal/flutter.version index 067c539..06222d4 100644 --- a/bin/internal/flutter.version +++ b/bin/internal/flutter.version @@ -1 +1 @@ -f94f4fc76b4d74543ed9b085bbd75341ef65de22 \ No newline at end of file +ee80f08bbf97172ec030b8751ceab557177a34a6 \ No newline at end of file diff --git a/pubspec.yaml b/pubspec.yaml index 69871ef..4982202 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_tvos description: Flutter CLI tool for building and running Flutter apps on Apple TV (tvOS). A custom embedder wrapping Flutter SDK with tvOS-specific build targets, device management, and plugin support. -version: 1.4.0 +version: 1.4.1 homepage: https://fluttertv.dev repository: https://github.com/fluttertv/flutter-tvos publish_to: "none" From cbab2f6cfa29f616cbb90572007ff789d691a161 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Ali=20Ustao=C4=9Flu?= Date: Sun, 19 Jul 2026 19:07:15 +0200 Subject: [PATCH 2/2] fix: repin engine to v1.0.1-flutter3.44.6 (tvOS simulator metallib fix) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #38 — apps crashed on the first frame on tvOS simulators older than 26, with all ~60 Impeller render pipelines failing "Target OS is incompatible" followed by a raw_ptr FATAL. The simulator engine embedded Impeller metallibs compiled for the *iOS* simulator (air64-apple-ios13.0.0-simulator). Metal validates a library's target platform when creating a pipeline, so the mismatch failed every pipeline; tvOS 26 tolerates it, which is why it only reproduced on older runtimes. The engine now compiles simulator metallibs against the AppleTVSimulator SDK (air64-apple-tvos13.0.0-simulator). Device builds were never affected. Engine fix in fluttertv/engine#6; artifacts republished under a new tag because the CLI caches by the engine.version string, so replacing assets on the existing tag would not refresh anyone who already precached. Verified on a tvOS 17.5 simulator with the flutter_tvos example: 60 errors and a FATAL before, 0 and 0 after, app launches and renders with hot reload and DevTools. tvOS 26.5 re-checked for regression. 297 tests pass, analyze clean. --- CHANGELOG.md | 14 +++++++++++++- README.md | 2 +- bin/internal/engine.version | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c2bd9a4..c1a975b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ Refreshes the pinned engine to **Flutter 3.44.6** (`ee80f08b`, Dart 3.12.2). ### Engine / SDK - Bumped `bin/internal/flutter.version` to `ee80f08b` (Flutter 3.44.6) and - `bin/internal/engine.version` to `v1.0.0-flutter3.44.6`. + `bin/internal/engine.version` to `v1.0.1-flutter3.44.6`. - Rebuilt and origin-signed all six engine artifact variants from the 3.44.6 source tree, against tvOS SDK 26.5 (Xcode 26.6). - All 17 tvOS engine patches apply unchanged: the 3.44.5 → 3.44.6 delta touches @@ -24,6 +24,18 @@ Refreshes the pinned engine to **Flutter 3.44.6** (`ee80f08b`, Dart 3.12.2). pin in lockstep. ### Fixed +- **Apps no longer crash on first frame on tvOS simulators older than 26.** The + simulator engine embedded Impeller metallibs compiled for the *iOS* simulator + (target triple `air64-apple-ios13.0.0-simulator`), because the shader build + assumed the tvOS simulator would load iphonesimulator libraries fine — it runs + on the host Mac GPU, after all. Metal actually validates the library's target + platform when a pipeline is created, so on a tvOS 17.5 simulator every one of + the ~60 render pipelines failed with `Target OS is incompatible` and the engine + aborted with a `raw_ptr` check failure. tvOS 26 tolerates the mismatch, which + is why it only showed up on older runtimes. The simulator engine is now built + against the AppleTVSimulator SDK (`air64-apple-tvos13.0.0-simulator`). Device + builds were never affected. Requires the engine bump to + `v1.0.1-flutter3.44.6`. (#38) - **Debug builds launched outside `flutter-tvos run` on a physical Apple TV no longer crash during plugin registration.** The debug engine refuses to start without an attached debugger, so the plugin registry hands back nil diff --git a/README.md b/README.md index a105931..cff284a 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A Flutter toolchain for building and running Flutter apps on **Apple TV (tvOS)** - flutter-tvos: `1.4.1` - Flutter SDK: `3.44.6` (`ee80f08bbf97172ec030b8751ceab557177a34a6`) -- tvOS engine artifacts: `v1.0.0-flutter3.44.6` (origin-signed) +- tvOS engine artifacts: `v1.0.1-flutter3.44.6` (origin-signed) ## Installation diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 107c0c1..5eb99a5 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -v1.0.0-flutter3.44.6 +v1.0.1-flutter3.44.6