Skip to content

Releases: fluttertv/engine-artifacts

Flutter 3.44.8 tvOS Engine Artifacts

Choose a tag to compare

@MAUstaoglu MAUstaoglu released this 25 Jul 10:53
a5f9aa9

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, team 866PPL96Z4), 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 mprotect crash, so the RWX fix is intact.
  • tvOS 17.5 simulator — JIT/debug runs clean with zero Target OS is incompatible errors. 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, isTvOS and the package-level FlutterTvosPlatform.isTvos all true, with defaultTargetPlatform == TargetPlatform.iOS — so the vm:platform-const fold is still being avoided correctly under AOT.
  • CLI suite — 297 tests pass; dart analyze reports 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

Choose a tag to compare

@MAUstaoglu MAUstaoglu released this 21 Jul 12:31
a5f9aa9

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 the vm:platform-const fold is still being avoided correctly.
  • JIT / debug on a tvOS 17.5 simulator — runs clean, zero Target OS is incompatible errors. The metallib platform-triple fix from v1.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, team 866PPL96Z4), the hardened gate from engine#7.
  • CLI suite — 297 tests pass against the 3.44.7 API; dart analyze reports 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)

Choose a tag to compare

@MAUstaoglu MAUstaoglu released this 19 Jul 17:06
a5f9aa9

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)

Choose a tag to compare

@MAUstaoglu MAUstaoglu released this 11 Jul 06:52
a5f9aa9

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

Choose a tag to compare

@MAUstaoglu MAUstaoglu released this 19 Jul 16:11
a5f9aa9

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

Choose a tag to compare

@MAUstaoglu MAUstaoglu released this 07 Jul 20:59
a5f9aa9

tvOS engine artifacts for Flutter 3.44.5. Built from flutter/flutter@f94f4fc.

Flutter 3.44.3 tvOS Engine Artifacts

Choose a tag to compare

@MAUstaoglu MAUstaoglu released this 22 Jun 22:06
a5f9aa9

tvOS engine artifacts for Flutter 3.44.3. Built from flutter/flutter@e1fd963 (Dart d684a576).

Flutter 3.44.2 tvOS Engine Artifacts

Choose a tag to compare

@MAUstaoglu MAUstaoglu released this 14 Jun 08:25
a5f9aa9

tvOS engine artifacts for Flutter 3.44.2. Built from flutter/flutter@c9a6c48 (Dart d684a576).

Flutter 3.44.1 tvOS Engine Artifacts

Choose a tag to compare

@MAUstaoglu MAUstaoglu released this 05 Jun 17:46
a5f9aa9

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 (appletvos SDK) 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

Choose a tag to compare

@DenisovAV DenisovAV released this 24 May 00:29
a5f9aa9

tvOS engine artifacts for Flutter 3.44.0 (Dart 3.12.0). Built from flutter/flutter@3.44.0 with tvOS patches.