Skip to content

Releases: wailsapp/wails

Wails v3.0.0-alpha2.103

15 Jun 16:41

Choose a tag to compare

Pre-release

Wails v3 Alpha Release - v3.0.0-alpha2.103

Changed

  • Move iOS and Android native features onto platform managers: call them via application.IOS.* and application.Android.* (e.g. application.IOS.Haptic("medium"), application.Android.Share(payload)) instead of the old application.IOS*/application.Android* free functions (#5602)
  • Rename mobile bridge events: cross-platform events now use the common:* prefix (e.g. common:haptic, common:location) and platform-exclusive events use ios:* / android:* (e.g. ios:backgroundTask, android:foregroundService); the native:* prefix is no longer used (#5602)

πŸ€– This is an automated nightly release generated from the latest changes on master.

Installation:

go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha2.103

⚠️ Alpha Warning: This is pre-release software and may contain bugs or incomplete features.

Wails v3.0.0-alpha.102

14 Jun 15:38

Choose a tag to compare

Pre-release

Wails v3 Alpha Release - v3.0.0-alpha.102

Added

  • Add experimental wails3 setup wizard for interactive project setup and dependency checking
  • Add --json flag to wails3 doctor for machine-readable output
  • Add signing status section to wails3 doctor command

Fixed

  • Fix npm detection on Linux to check PATH in addition to package manager

πŸ€– This is an automated nightly release generated from the latest changes on master.

Installation:

go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha.102

⚠️ Alpha Warning: This is pre-release software and may contain bugs or incomplete features.

Wails v3.0.0-alpha.101

13 Jun 15:37

Choose a tag to compare

Pre-release

Wails v3 Alpha Release - v3.0.0-alpha.101

Added

  • iOS: native message dialogs (UIAlertController) and open file/files/directory dialogs (UIDocumentPickerViewController); save dialogs return an explicit error
  • iOS: clipboard support via UIPasteboard
  • iOS: real screen metrics via UIScreen (points, pixels, scale, safe-area work area)
  • iOS: device builds (IOS_PLATFORM=device), code-signing identity / provisioning profile / entitlements support, .ipa packaging, and deploy-device via devicectl
  • iOS: configurable minimum iOS version (ios.minIOSVersion in build/config.yml)
  • iOS: wails3 doctor reports Xcode and iOS SDK availability on macOS
  • iOS: system events β€” battery, network, theme, screen-lock and low-memory surface as events.IOS.* and platform-neutral events.Common.* application events
  • iOS: native mobile feature bridge (exported application.IOS*) β€” share sheet, open URL, keep-awake, torch, safe-area insets, brightness, app info, orientation lock, status bar, biometrics (Face ID/Touch ID), local notifications and Keychain secure storage
  • iOS: sensors & hardware β€” haptics, one-shot geolocation, accelerometer, proximity, text-to-speech, storage info, power/battery state, network status, keyboard insets and screen-capture detection
  • iOS: documentation (IOS.md and a docs-site guide)
  • Android: native message dialogs (AlertDialog) and open file/files dialogs (Storage Access Framework, imported as cache copies); open-directory and save dialogs return an explicit error
  • Android: clipboard support via ClipboardManager
  • Android: real screen metrics via WindowMetrics/DisplayMetrics (dp, pixels, scale, system-bar work area)
  • Android: haptics (Android.Haptics.Vibrate), device info (Android.Device.Info) and toast (Android.Toast.Show) runtime methods
  • Android: typed lifecycle events (events.Android.*, generated from events.txt) with ActivityCreated mapped to Common.ApplicationStarted
  • Android: build pipeline produces installable debug and release APKs (android:run, android:package, android:package:fat); release signing via the debug keystore by default or a real keystore through ANDROID_KEYSTORE_* env vars
  • Android: wails3 doctor reports the Android SDK, NDK and JDK
  • Android: system events β€” battery, network, theme, screen-lock and low-memory surface as events.Android.* and platform-neutral events.Common.* application events
  • Android: native mobile feature bridge (exported application.Android*) β€” share, open URL, keep-awake, torch, safe-area insets, brightness, app info, orientation lock, status bar, biometrics (BiometricPrompt), local notifications and EncryptedSharedPreferences secure storage
  • Android: sensors & hardware β€” haptics, one-shot geolocation, accelerometer, proximity, text-to-speech, storage info, power/battery state, network status, keyboard insets and FLAG_SECURE screen-capture blocking
  • Android: documentation (ANDROID.md and a docs-site guide)
  • Example: the mobile kitchen sink gains Mobile and Hardware tabs demonstrating the native feature bridge across iOS and Android (pill tabs wrap to multiple rows)
  • Mobile: battery β€” the accelerometer, proximity sensor, torch and the example's periodic clock are paused when the app is backgrounded and restored on return (Android keeps the process running in the background, and the torch is hardware state that persists on iOS), and Android system-event receivers are only registered while the app is in the foreground
  • iOS: camera capture β€” application.IOSCapturePhoto/IOSCaptureVideo (UIImagePickerController β†’ a native:capture event with a base64 thumbnail)
  • iOS: background execution β€” application.IOSBeginBackgroundTask/IOSEndBackgroundTask (a UIApplication background-task window) and a configurable ios.backgroundModes (build/config.yml) that templates UIBackgroundModes into the generated Info.plist
  • Android: camera capture β€” application.AndroidCapturePhoto/AndroidCaptureVideo (system camera via FileProvider β†’ a native:capture event)
  • Android: foreground service β€” application.AndroidStartForegroundService/AndroidStopForegroundService (a WailsForegroundService with an ongoing notification keeps the process alive for long-running background work)
  • Example: a Camera tab demonstrating photo/video capture and background execution (foreground service on Android, background-task window on iOS)

Fixed

  • Fix getUserMedia always failing with NotAllowedError on Linux: WebKitGTK denies permission requests nobody handles, and the permission-request signal was not connected. Camera/microphone are now handled per a new cross-platform WebviewWindowOptions.Permissions map (map[PermissionType]Permission), honored on both Linux (WebKitGTK) and Windows (WebView2). On Linux, which has no native prompt, camera/microphone default to allowed (restoring getUserMedia) and can be turned off with PermissionDeny (#5552)
  • iOS: GOOS=ios compiles again (exported events.IOS, mobile method-name stubs) and production-tagged builds compile (build-tag fixes in pkg/application and several services)
  • iOS: Goβ†’JS events and ExecJS now work β€” the page no longer loads twice at startup and the wails:runtime:ready handshake can no longer be lost
  • iOS: ApplicationDidFinishLaunching/ApplicationStarted no longer race app startup; removed the fixed 2-second startup sleep
  • iOS: fixed a C-string leak on every Goβ†’JS JavaScript execution
  • iOS: hasListeners now reflects real listener registration
  • iOS: framework debug logging is compiled out of production builds
  • Android: GOOS=android compiles again β€” defined events.Android, removed the out-of-bounds events_android.go listener array, added the mobile method-name stub, and stopped desktop-Linux files (linux_cgo.*, events_linux.*, environment_linux.go) leaking into Android builds
  • Android: JSβ†’Go bindings now work β€” the WebView cannot deliver fetch() POST bodies to shouldInterceptRequest, so runtime calls route through a JavascriptInterface transport (nativeHandleRuntimeCall) instead of crashing on a nil request body
  • Android: Screens.* runtime calls return real data β€” the ScreenManager is now populated at startup (it was never wired, so GetAll returned nil)
  • Android: framework debug logging is compiled out of production builds and routes through logcat under the Wails tag in debug builds
  • Android: real hasListeners registry, JNI reference/exception handling, and a single-load page lifecycle (no double navigation)
  • Fix wails3 generate bindings failing with "Access is denied" on Windows when the Vite dev server is running, by syncing generated files into the output directory instead of renaming over it (#5515)
  • Fix intermittent fatal crash on macOS when reading screen information after a display change: the screen id and name stored pointers to autoreleased UTF8String buffers that could be freed before Go copied them (use-after-free). The strings are now strdup'd and freed after conversion, and screen enumeration runs in an explicit autorelease pool so it no longer leaks when called from Go goroutines (#5556)
  • Fix intermittent SIGSEGV on Linux when the assetserver closes a WebKitURISchemeRequest: the final g_object_unref ran on the assetserver goroutine, finalizing a WebKit GObject off the GTK main thread. The unref is now marshalled onto the GTK main context via g_main_context_invoke (#5557)

πŸ€– This is an automated nightly release generated from the latest changes on master.

Installation:

go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha.101

⚠️ Alpha Warning: This is pre-release software and may contain bugs or incomplete features.

Wails v3.0.0-alpha.100

13 Jun 02:17

Choose a tag to compare

Pre-release

Wails v3 Alpha Release - v3.0.0-alpha.100

Added

  • Extend MacWebviewPreferences with additional WKWebView configuration options: EnableAutoplayWithoutUserAction, AllowsAirPlayForMediaPlayback, AllowsMagnification, JavaScriptCanOpenWindowsAutomatically, MinimumFontSize, and ApplicationNameForUserAgent (#5549)

Fixed

  • Fix wails3 generate bindings failing with "Access is denied" on Windows when the Vite dev server is running, by syncing generated files into the output directory instead of renaming over it (#5561)
  • Fix JS resize events not firing for frameless windows on Linux; fix scrollbar edge detection for frameless windows (#5368)
  • Fix updater on Windows failing with "invalid cross-device link" when the temp directory is on a different volume to the install directory (#5560)

πŸ€– This is an automated nightly release generated from the latest changes on master.

Installation:

go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha.100

⚠️ Alpha Warning: This is pre-release software and may contain bugs or incomplete features.

Wails v3.0.0-alpha.98

03 Jun 16:37

Choose a tag to compare

Wails v3.0.0-alpha.98 Pre-release
Pre-release

Wails v3 Alpha Release - v3.0.0-alpha.98

Fixed

  • Fix WebKit UI freeze on Linux when idle (e.g. with the inspector open) by no longer forcing SA_ONSTACK on SIGUSR1, which broke JavaScriptCore's GC thread synchronisation (#5527)

πŸ€– This is an automated nightly release generated from the latest changes on master.

Installation:

go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha.98

⚠️ Alpha Warning: This is pre-release software and may contain bugs or incomplete features.

Wails v3.0.0-alpha.97

31 May 15:33

Choose a tag to compare

Wails v3.0.0-alpha.97 Pre-release
Pre-release

Wails v3 Alpha Release - v3.0.0-alpha.97

Added

  • Add debugging page and working with runtime/trace

Changed

  • Remove some unnecessary _ "embed" imports tidying the code a little

Fixed

  • Fix minimum width/height constraints not enforced after window unmaximise on Windows (#4593)
  • Fix mouse click-through in fullscreen mode with Frameless + Transparent window options (#4408)

πŸ€– This is an automated nightly release generated from the latest changes on master.

Installation:

go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha.97

⚠️ Alpha Warning: This is pre-release software and may contain bugs or incomplete features.

Wails v3.0.0-alpha.96

25 May 16:00

Choose a tag to compare

Wails v3.0.0-alpha.96 Pre-release
Pre-release

Wails v3 Alpha Release - v3.0.0-alpha.96

Added

  • Add Garble obfuscation support (#4563): stable binding method IDs, build/Taskfile plumbing (build --obfuscated --garbleargs, generate bindings -obfuscated), and JSON struct tags on every runtime-facing payload (EnvironmentInfo, OSInfo, Screen, Rect, Point, Size, Capabilities) so the wire format survives Garble's exported-field renaming.

πŸ€– This is an automated nightly release generated from the latest changes on master.

Installation:

go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha.96

⚠️ Alpha Warning: This is pre-release software and may contain bugs or incomplete features.

Wails v3.0.0-alpha.95

20 May 16:14

Choose a tag to compare

Wails v3.0.0-alpha.95 Pre-release
Pre-release

Wails v3 Alpha Release - v3.0.0-alpha.95

Added

  • Added missing project structure page

Changed

  • Docs: Change to a couple of diagrams on architecture page to use sequence diagram for cleaner display
  • Docs: Include note about installing D2 as a prerequisite for running

Fixed

  • Fix wails3 generate appimage on the GTK4 default: the bundler now detects the GTK stack from the binary before searching for runtime files, so it picks libwebkitgtkinjectedbundle.so (under webkitgtk-6.0/) for GTK4 builds and libwebkit2gtkinjectedbundle.so (under webkit2gtk-4.1/) for -tags gtk3 builds. The .relr.dyn probe also checks libgtk-4.so.1 so stripping is correctly disabled on modern toolchains regardless of stack. (#5475)
  • Fix wails3 generate appimage failing when invoked with a relative -builddir: the bundler now resolves -binary, -icon, -desktopfile, -builddir and -outputdir to absolute paths up-front so the mid-flow s.CD doesn't break the AppRun download goroutine or the post-copy ldd probe.
  • Fix wails3 generate appimage failing to move the final AppImage to -outputdir when the desktop Name= field doesn't match the binary basename: the bundler now forces linuxdeploy's appimage plugin (via the OUTPUT env var) to write the AppImage to <binary>-<arch>.AppImage instead of the name derived from the desktop file.
  • Fix events.Common.ApplicationStarted, Common.ThemeChanged, Common.SystemWillSleep and Common.SystemDidWake not firing on Linux after the GTK4 + WebKitGTK 6.0 stack was promoted to the default in alpha.93. The new default application_linux.go run() wasn't calling setupCommonEvents() (which forwards Linux.* events to their Common.* counterparts) or monitorPowerEvents(). The DBus power-monitor helper is now shared between the GTK3 and GTK4 build paths via application_linux_dbus.go. (#5474)

πŸ€– This is an automated nightly release generated from the latest changes on master.

Installation:

go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha.95

⚠️ Alpha Warning: This is pre-release software and may contain bugs or incomplete features.

Wails v3.0.0-alpha.94

19 May 16:10

Choose a tag to compare

Wails v3.0.0-alpha.94 Pre-release
Pre-release

Wails v3 Alpha Release - v3.0.0-alpha.94

Fixed

  • Fix events.Common.ApplicationStarted, Common.ThemeChanged, Common.SystemWillSleep and Common.SystemDidWake not firing on Linux after the GTK4 + WebKitGTK 6.0 stack was promoted to the default in alpha.93. The new default application_linux.go run() wasn't calling setupCommonEvents() (which forwards Linux.* events to their Common.* counterparts) or monitorPowerEvents(). The DBus power-monitor helper is now shared between the GTK3 and GTK4 build paths via application_linux_dbus.go. (#5474)

πŸ€– This is an automated nightly release generated from the latest changes on master.

Installation:

go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha.94

⚠️ Alpha Warning: This is pre-release software and may contain bugs or incomplete features.

Wails v3.0.0-alpha.93

17 May 15:27

Choose a tag to compare

Wails v3.0.0-alpha.93 Pre-release
Pre-release

Wails v3 Alpha Release - v3.0.0-alpha.93

Added

  • Add XDG_SESSION_TYPE to wails3 doctor output on Linux by @leaanthony

Fixed

  • Fix window menu crash on Wayland caused by appmenu-gtk-module accessing unrealized window (#4769) by @leaanthony
  • Fix GTK application crash when app name contains invalid characters (spaces, parentheses, etc.) by @leaanthony
  • Fix "not enough memory" error when initializing drag and drop on Windows (#4701) by @overlordtm
  • Fix race condition in mainthread callback store using incorrect RLock for map deletion (Linux, macOS, iOS) (#4424) by @leaanthony
  • Fixed variable handling when passing command-line arguments to tasks. CLI variables specified as KEY=VALUE pairs are now properly initialized and propagated throughout task execution.
  • Fix NSWindowZoomButton conflict on macOS: MaximiseButtonState and FullscreenButtonState now apply the more restrictive state at both startup and runtime; neither setter can silently override the other (#5319)
  • Fix a cluster of pre-existing bugs in the legacy GTK3 build path (-tags gtk3) surfaced by CodeRabbit on #5463: file-association launches no longer skip startup handlers; getTheme is bounds- and type-safe; appName no longer frees GLib-owned memory; clipboardGet no longer leaks the gchar* returned by GTK; Calloc now uses pointer receivers (and NewCalloc returns *Calloc) so the pool actually tracks allocations; zoomOut uses the reciprocal of zoomInFactor instead of a negative multiplier that clamped to 1.0; execJS reuses the preallocated empty world-name instead of leaking a C.CString("") per call; a development fmt.Println was removed from menuItem.setAccelerator. Resolves #5465.
  • Fix the same Calloc value-receiver leak in the default GTK4 build path (linux_cgo.go): pointer receivers + NewCalloc() *Calloc so per-window c.String(...) allocations are actually tracked and freed.

πŸ€– This is an automated nightly release generated from the latest changes on master.

Installation:

go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha.93

⚠️ Alpha Warning: This is pre-release software and may contain bugs or incomplete features.