Releases: fluttertv/engine-artifacts
Release list
Flutter 3.44.8 tvOS Engine Artifacts
tvOS engine artifacts for Flutter 3.44.8, built from flutter/flutter@058e0af2c2b57e369d905a03ac9748b0ebf543c6.
A real rebuild, not a republish
Unlike v1.0.1-flutter3.44.7 — which republished the 3.44.6 binaries — these are compiled from source against the 3.44.8 tree.
| 3.44.6 → 3.44.8 | |
|---|---|
DEPS |
untouched — Dart stays at d684a576, so the AOT SDK hash does not move |
| engine source | Android only (AccessibilityBridge.java, FlutterRenderer.java, Android toolchain GN) plus a host-clang-arch fix in copy_info_plist.py |
darwin/ios/BUILD.gn |
an ASan-only copy rule — not compiled into a shipped framework |
impeller/ |
untouched |
Why these binaries differ from 3.44.7, and by how much
An earlier version of these notes said "within ~500 bytes". That was measured from one asset and generalised — the actual range is +3 to +1204:
| asset | 3.44.7 | 3.44.8 | delta |
|---|---|---|---|
host_debug_unopt.zip |
14 984 806 | 14 984 809 | +3 |
host_release.zip |
10 893 675 | 10 893 679 | +4 |
tvos_debug_sim_arm64.zip |
105 808 785 | 105 809 331 | +546 |
tvos_profile_arm64.zip |
26 856 108 | 26 857 299 | +1191 |
tvos_debug_arm64.zip |
106 195 959 | 106 197 152 | +1193 |
tvos_release_arm64.zip |
25 388 252 | 25 389 456 | +1204 |
The split is explained rather than build noise. copy_info_plist.py generates the Info.plist embedded in Flutter.framework, and in this range its subprocess.check_output gained text=True — changing the recorded clang version from a bytes repr to a plain string. The two assets that embed no framework moved 3-4 bytes; all four that embed one moved 546-1204.
This also corrects the claim above it: that file does reach a shipped Flutter.framework, via the Info.plist. No compiled code changed.
Verified before publishing
Every check ran against these exact zips, extracted fresh after clearing the previous extraction so no stale content could be reused:
verify_artifacts.sh— all pass: platform triples, origin signature checked against a designated requirement (Developer ID, team866PPL96Z4), the on-device JIT RWX fix, and the platform-identity patch in both host SDKs.- Physical Apple TV 4K (tvOS 26.5) — debug/JIT, profile and release all install, launch and render. On-device hot reload works over the wireless tunnel with no
mprotectcrash, so the RWX fix is intact. - tvOS 17.5 simulator — JIT/debug runs clean with zero
Target OS is incompatibleerrors. This is the run that matters for shaders: tvOS 26 tolerates a wrong metallib platform triple and older runtimes reject every pipeline, so the old runtime is what actually catches a bad engine. - Platform identity in all four modes (sim debug, device debug, device profile, device release):
Platform.operatingSystem == "tvos",isIOS,isTvOSand the package-levelFlutterTvosPlatform.isTvosall true, withdefaultTargetPlatform == TargetPlatform.iOS— so thevm:platform-constfold is still being avoided correctly under AOT. - CLI suite — 297 tests pass;
dart analyzereports no errors or warnings.
Also in this cycle
engine/generate_patches.sh built patch 01 from a hardcoded file list that omitted runtime/vm/virtual_memory_posix.cc, silently dropping the tvOS 26 on-device JIT (RWX) fix from any regenerated patch set. Fixed in fluttertv/engine#8, which also adds a coverage assertion so a modified file captured by no patch fails generation outright. These artifacts are built from a patch set that includes it, and verify_artifacts.sh asserts its presence.
Version numbering
Tagged v1.0.1, not v1.0.0, for continuity: the v1.0.1 line carries the metallib fix that first shipped in v1.0.1-flutter3.44.6, and a v1.0.0-flutter3.44.8 would read as though it predates that fix.
Flutter 3.44.7 tvOS Engine Artifacts
tvOS engine artifacts for Flutter 3.44.7.
These are the same binaries as v1.0.1-flutter3.44.6
Byte-for-byte identical — not a rebuild. Flutter 3.44.7 contains nothing that reaches the tvOS engine:
| 3.44.6 → 3.44.7 | |
|---|---|
| functional change | Android only (FlutterRenderer.java — texture SyncFence lifetime) |
engine/src/flutter/DEPS |
byte-identical (same SHA1) |
| Dart submodule | unchanged |
darwin/ · ios/ · impeller/ |
untouched |
The other four commits in the range are CI config and changelog text. Rebuilding would burn hours to emit functionally identical output, so the tested binaries are republished under the 3.44.7 name to keep the version story coherent.
Verified before publishing
Hardware and simulator, using these exact artifacts against the 3.44.7 SDK:
- AOT / profile on a physical Apple TV 4K (tvOS 26.5) —
operatingSystem=tvos,isIOS=true,isTvOS=true,defaultTargetPlatform=iOS. Platform identity survives AOT, so thevm:platform-constfold is still being avoided correctly. - JIT / debug on a tvOS 17.5 simulator — runs clean, zero
Target OS is incompatibleerrors. The metallib platform-triple fix fromv1.0.1-flutter3.44.6(issue #38) still holds on the oldest runtime we support testing on. verify_artifacts.sh— passed, including origin-signing checked against a designated requirement (Developer ID, team866PPL96Z4), the hardened gate from engine#7.- CLI suite — 297 tests pass against the 3.44.7 API;
dart analyzereports no errors or warnings.
Version numbering
Tagged v1.0.1, not v1.0.0, deliberately: these carry the metallib fix that shipped in v1.0.1-flutter3.44.6, and a v1.0.0-flutter3.44.7 would read as though it predates that fix.
SHA-256
| file | sha256 |
|---|---|
host_debug_unopt.zip |
d00175e0aff7f7258acc6e470060f3ee849814fbaa5d76728f234f29f1a5c502 |
host_release.zip |
020cfc0ba2069bcf7f951ea54738fef2aed62883479b806f0df311a78e6908a2 |
tvos_debug_arm64.zip |
cd8d6450409c1b826e7ea34c748deaa7acc3bda95e8d418ca4f9e656ddfbed10 |
tvos_debug_sim_arm64.zip |
c228ad583dbac3c2ac750560f47b75460dba92a82cf227ddaa05243b22d9d354 |
tvos_profile_arm64.zip |
c092e1969a17db76513fca43453b2ea8d941df61fcef1554617cc2d6e7d68c87 |
tvos_release_arm64.zip |
eac6ab39efca33f8a2ed8545356278b5b1ce5908ed728c702120c5013edadf60 |
Flutter 3.44.6 tvOS Engine Artifacts (tvOS simulator metallib fix)
tvOS engine artifacts for Flutter 3.44.6. Built from flutter/flutter@ee80f08 (Dart d684a576a6aa954ae107a03b2b4e1d61c3bebe93).
Supersedes v1.0.0-flutter3.44.6, which shipped a simulator engine whose embedded Impeller metallibs were compiled for the iOS Simulator (air64-apple-ios13.0.0-simulator) rather than the tvOS simulator. Metal validates a library's target platform when creating a pipeline, so on tvOS simulators older than 26 every render pipeline failed with Target OS is incompatible and the engine aborted on the first frame (fluttertv/flutter-tvos#38). tvOS 26 tolerates the mismatch, which is why it went unnoticed.
The simulator engine is now compiled against the AppleTVSimulator SDK and carries air64-apple-tvos13.0.0-simulator. Device artifacts are unchanged in content — they already targeted appletvos (air64_v24-apple-tvos15.0.0).
Verified on a tvOS 17.5 simulator: 60 Target OS is incompatible errors + a FATAL before, 0 + 0 after; app launches and renders with hot reload and DevTools. tvOS 26.5 re-checked for regression.
All six variants are origin-signed (Developer ID Application, hardened runtime + secure timestamp) and pass verify_artifacts.sh.
Consumed by flutter-tvos 1.4.1+ (bin/internal/engine.version = v1.0.1-flutter3.44.6).
Flutter 3.44.5 tvOS Engine Artifacts (origin-signed)
tvOS engine artifacts for Flutter 3.44.5. Built from flutter/flutter@f94f4fc.
Same engine build as v1.0.0-flutter3.44.5, re-published with the tvOS Flutter.framework / Flutter.xcframework origin-signed (Developer ID Application, hardened runtime + secure timestamp). This is required so downstream apps pass Apple's commonly-used-SDK signature check (ITMS-91065) at App Store / external TestFlight review — an app-identity re-sign at export does not satisfy it. Consumed by flutter-tvos 1.4.0+ (bin/internal/engine.version = v1.0.1-flutter3.44.5).
Flutter 3.44.6 tvOS Engine Artifacts
Warning
Superseded by v1.0.1-flutter3.44.6 — do not use.
The simulator engine in this release embeds iOS-Simulator Impeller metallibs, so apps crash on the first frame on tvOS simulators older than 26 with Target OS is incompatible on every render pipeline (fluttertv/flutter-tvos#38). Device artifacts are unaffected.
tvOS engine artifacts for Flutter 3.44.6. Built from flutter/flutter@ee80f08 (Dart d684a576a6aa954ae107a03b2b4e1d61c3bebe93).
Rebuilt from the 3.44.6 source tree against tvOS SDK 26.5 (Xcode 26.6), origin-signed.
Flutter 3.44.5 tvOS Engine Artifacts
tvOS engine artifacts for Flutter 3.44.5. Built from flutter/flutter@f94f4fc.
Flutter 3.44.3 tvOS Engine Artifacts
tvOS engine artifacts for Flutter 3.44.3. Built from flutter/flutter@e1fd963 (Dart d684a576).
Flutter 3.44.2 tvOS Engine Artifacts
tvOS engine artifacts for Flutter 3.44.2. Built from flutter/flutter@c9a6c48 (Dart d684a576).
Flutter 3.44.1 tvOS Engine Artifacts
tvOS engine artifacts for Flutter 3.44.1 (Dart 3.12.1). Built from flutter/flutter@924134a with tvOS patches.
Notable changes since 3.44.0:
- Impeller Metal shaders are now compiled tvOS-native (
appletvosSDK) and embedded directly in Flutter.framework — removes the per-app MetalLibInterposer workaround. - Fixed an Impeller StrokedCircle DCHECK abort (debug builds) when the stroke half-width >= radius (e.g. the widget inspector outlining small circular elements).
Flutter 3.44.0 tvOS Engine Artifacts
tvOS engine artifacts for Flutter 3.44.0 (Dart 3.12.0). Built from flutter/flutter@3.44.0 with tvOS patches.