macOS 26 shrinks irregular .icns icons onto a gray plate. Bundle an Icon Composer document with the iOS light background and the logo as one layer; Tauri compiles it into Assets.car, the system derives the dark, tinted and clear appearances, and icon.icns remains the fallback for macOS 15 and earlier.
Validation: pnpm run check; debug app bundle carries CFBundleIconName and Aqua/DarkAqua/Tintable stacks, rendered by system icon services.
Tauri 2.12.3, swift-rs 1.0.9 and the official plugin releases mark the
Swift `@_cdecl` entry points that Rust links against `public`, so iOS
release builds made with Xcode 27 link again. With the runtime exports
kept in optimized builds, drop the dev-profile overrides that built
Tauri and the Swift plugins unoptimized.
fs 2.7.0 returns only the bytes it read; the file stream already
validates the trailing count, so only its comment changes. The dialog
wrapper stays: 2.8.2 still turns confirm() into async IPC.
OpenHarmony stays on its 2.11 forks until they follow. The Nix pnpmDeps
hash is updated separately.
Validation: pnpm run check. Pending: iOS dev build on device and release
build with Xcode 27.
Upgrade tauri-plugin-pilot to 0.8.1, which reaches mobile webviews,
and register it on every platform the devtools-pilot feature builds.
Mobile builds take the plugin without the desktop-only press backend.
The pilot config lists the mobile capabilities too, since its explicit
list replaces the default capability set.
Add android:dev:pilot and ios:dev:pilot. The Simulator socket is found
directly; Android forwards the app's abstract socket over ADB, as
AndroidDevelopment describes.
Validation: cargo check with devtools-pilot for the host and
aarch64-apple-ios-sim; pilot 0.8.1 ping, eval, assert and snapshot on
macOS dev, the iPhone 17 Simulator and an API 36.1 emulator.
Tao 0.35.3 handed UIKit a UISceneConfiguration it had already
released, so iOS release builds crashed at launch. Tao 0.37 fixes
this and enables the scene lifecycle from the scene manifest alone:
the app now declares a single scene and no longer closes extra ones.
Wry 0.57 enables element fullscreen on every iOS version, so the host
stops configuring it.
Rebase the two Android Wry overrides on the 0.57.0 originals and keep
their approved differences; the chrome client uses WryActivity's
launchers. LAN discovery releases its multicast lock in the plugin's
Activity callback, the same source as Rust's resume event. Align the
CLI, official plugins and tauri-winrt-notification with the 2.12 line,
list the features the CLI writes in every tauri entry, and drop the
no-op macos-private-api feature.
OpenHarmony stays on its 2.11.6 fork and cannot build until the fork
follows. The Nix pnpmDeps hash is updated separately.
Fixes#337
Validation: pnpm run check; cargo check with devtools-pilot and for
aarch64-apple-ios; macOS pilot dev launch and Android API 36.1 debug
launch. Pending: iOS release on device, R8, Windows and Linux
artifacts, TestFlight.
Hide WebKit's form accessory bar and let UIKit's interactive dismissal
own the gesture. A full-window KeyboardScrollView inside WindowHost is
the pan surface: it has no content, recognizes alongside WebKit's
overflow scroll views, never cancels page touches, and keeps a zero
content offset because an empty bounce makes WebKit recompute visible
geometry every frame. The WebView stays constrained to the host's safe
area and keyboard guides.
The accessory bar also caused the two-stage dismissal: keyboardLayoutGuide
tracks the union of bar and keyboard, and the bar leaves about 400 ms
after the keyboard. Without it the guide returns to the safe area in one
animation.
While the pan is active the WebView height is held. iOS WebKit treats
every view-height change as a stylesheet-environment change and rebuilds
all styles (WebPage::viewportConfigurationChanged ->
updateSizeForCSSDefaultViewportUnits -> didChangeStyleSheetEnvironment),
about 30 ms per step on an iPhone 13. Like Safari, the page relayouts
once when the keyboard settles while the keyboard itself follows the
finger.
swift-rs picks Swift optimization from the Rust debug setting, and with
Xcode 27 an optimized Swift package loses the runtime exports Tauri's
plugin registration needs (Brendonovich/swift-rs#79). Keep debug info
for tauri and for every plugin that ships a Swift package so they build
in one mode: mixing modes passes on the simulator but aborts on device
in registerPlugin with swift_deletedMethodError.
swift-rs 1.0.8 fixes the SDK mix-up in SwiftPM cross builds. Remove the
overrides once the upstream export fix ships.
Consume system bars, cutouts and docked keyboards in Android and iOS,
then let web content use the resulting viewport. Publish window wallpaper
strips through one shared background path.
Remove the old CSS and IME compensation layers, update layout ABI v2,
and keep the matching documentation and behavior tests together.
Centralize file picking, staging and delivery across platforms, with explicit cancellation outcomes and source ownership.
Remove superseded platform bridges and redundant tests, and document the shared contract and platform differences.
Validation: pnpm run check; Android aarch64 cargo check; 117 host tests.