Bỏ qua để đến nội dung

Changelog

Nội dung này hiện chưa có sẵn bằng ngôn ngữ của bạn.

Release notes for the App Preview macOS desktop app. Each version is published to GitHub Releases as a signed, notarized .dmg, and installed apps auto-update themselves.

👉 Download the latest .dmg

Install builds by drag-and-drop, capture screenshots, and a persistent config.

  • Drag-to-install builds — drop an .apk / .ipa anywhere on the device frame to install it on the connected Android device/emulator or iOS device. The drop overlay stays available even while the live screen mirror is running, and Android installs auto-open the app afterwards.
  • Screenshot capture — grab the current device screen and dock the screenshot card beside the frame, with a configurable save folder.
  • Config / Paths dialog — point the app at specific tool binaries (adb, aapt, scrcpy, emulator, iproxy, go-ios, the WebDriverAgent project) and the screenshot directory, for machines where they aren’t on PATH. Blank means auto-detect.
  • Persistent app config — Runners, settings (the release checklist) and the tool-path overrides now persist to a single ~/.apppreview file instead of browser localStorage, so they survive reloads and are shared across browsers and the desktop app.

Remote iOS device control + Runners.

  • Remote iOS control over SSH — drive a physical iPhone/iPad attached to another machine straight from the Playground: tap, swipe and mirror over an SSH connection to a “runner” host. A Runners / Settings dialog adds hosts, picks password or SSH-key auth, and tests the connection before use.
  • Runner sharing — export/import the runner list as JSON, plus an “Initial Runner” action that shares the current machine’s SSH config so another operator can import it in one step.
  • iOS 26: remote tap uses W3C pointer actions (the legacy endpoint returns 500 there).
  • Android emulator launch resolves the modern emulator binary on Windows; the server no longer crashes at startup on a non-UTF-8 Windows console.

Windows support + multi-arch builds.

  • Windows desktop app — signed NSIS .exe installer builds alongside macOS, with fixes for the Windows blank-window/launch issue and a non-UTF-8 console crash.
  • macOS Intel + Apple Silicon — separate Intel (x64) and Apple-Silicon (aarch64) .dmg builds, combined into one auto-update manifest so every Mac gets the right slice.
  • Per-platform download buttons on the landing page (Mac arm / Mac Intel / Windows).

Preview panel + real-device mirroring. The Playground gains a slide-in preview panel (right-side icon rail) for previewing your work and driving real phones without leaving the tool.

  • Web / Media / Markdown previews — load any URL or local path (/docs/) in an inline frame, open an image / video / audio file, or render a .md file — all in a slide-in panel.
  • Android mirror + remote control — live device mirror over adb: click to tap, drag to swipe, keyboard text, and hardware buttons. A scrcpy ↗ button opens a native high-FPS window.
  • iPhone mirror + remote control — real-device mirror via WebDriverAgent over a USB tunnel (iproxy): live MJPEG stream with tap / swipe / button / text. Clear guidance when WDA isn’t running on the device.
  • Touch feedback — a red ripple blooms at each tap; swipes draw a fading trail — shared across Android and iPhone.
  • All device backends are localhost-only (127.0.0.1) and resolve adb / scrcpy / iproxy even from a GUI-launched app with a minimal PATH.

See the device preview & control reference for the full protocol and architecture.

  • Android control needs adb (Android platform-tools); iPhone control needs WebDriverAgent running on the device. Builds remain Apple Silicon (aarch64).

Signed & notarized builds, auto-update, and one-command deploy. This is the first release you can download and open like any normal Mac app — no scary warnings, no terminal workarounds.

Signed with Developer ID + notarized by Apple

Section titled “Signed with Developer ID + notarized by Apple”

The .app and .dmg are now code-signed with a Developer ID Application certificate and notarized by Apple (with the notarization ticket stapled). Double- click the .dmg, drag to Applications, open — no “AppPreview is damaged” warning and no xattr -dr com.apple.quarantine workaround. Verified with:

spctl -a -vvv -t exec AppPreview.app → accepted, source=Notarized Developer ID

The app keeps itself up to date via the Tauri updater:

  • File ▸ Check for Updates… — plus a silent check on launch — compares against the latest GitHub release.
  • When a newer version exists it downloads, verifies, installs, and relaunches — no manual reinstall.
  • Updates are cryptographically signed (separate from Apple signing), so the app only installs builds published by us.

Shipping a build is now a single command. deploy.sh:

  1. ensures the private signing assets are present (clones them if missing),
  2. imports the Developer ID certificate into the keychain,
  3. builds, signs, notarizes, and publishes the .dmg + updater manifest to a GitHub Release.

The GitHub Actions pipeline (release-dmg.yml / auto-release-dmg.yml) now builds signed + notarized .dmgs on Apple’s runners. Bump the version on main and the release — .dmg, updater bundle, and latest.json — is cut automatically.

  • Developer ID code-signing + Apple notarization of the .app and .dmg.
  • Auto-update manifest (latest.json) published with every release.
  • deploy.sh — ensure signing assets → build → sign → notarize → publish.
  • setup-signing.py — auto-create the Developer ID certificate from an App Store Connect API key.
  • finish-signing.py — finish signing from a manually issued certificate.
  • Release notes now state signed & notarized when a Developer ID identity is set.
  • appdist.sh uploads the updater artifacts (latest.json, .app.tar.gz, .sig) alongside the .dmg, so auto-update stays valid on locally cut releases.
  • Builds are Apple Silicon (aarch64). Intel / universal builds aren’t produced yet.

See the desktop app guide for build and signing details.

First release — meet App Preview. A local tool to preview, check, and polish your App Store and Google Play listings before you ship — see your new version exactly as users will, side by side with what’s live today.

  • Load live listings from the stores — pull screenshots + metadata straight from App Store Connect and Google Play with your own API keys, into the Current variant (⟳ Sync). No copy-pasting from the store consoles.
  • Preview your new version — see exactly how your New listing looks on the App Store and Google Play before uploading: title, subtitle, description, and screenshots — per locale.
  • Review Diff (Current → New) — a side-by-side diff of every change: text/metadata field-by-field, and screenshots slot-by-slot with a fullscreen lightbox. Know exactly what changed before you submit.
  • First-release checklist — a built-in gate covering everything a brand-new store submission needs: screenshots for each required device size, metadata for every locale, icon / feature graphic, and store-policy items.
  • Store SEO audit (ASO) — flags title / subtitle / keyword lengths against each store’s limits, highlights empty or over-long fields, and surfaces discoverability tips — per locale, for both stores.
  • Test keys — verify your App Store Connect and Google Play credentials in one click (builds a JWT and looks up the app; opens & deletes a throwaway Play edit) — without saving anything.
  • Import / Export — move configs as JSON, or as a self-contained .env that embeds the .p8 and service-account JSON as single-line base64.
  • Multi-language — the tool and these docs ship in English, Tiếng Việt, 한국어, العربية, and 日本語.
  • Runs locally — everything stays on your machine; your API keys never leave it.
  • Ships as a native macOS desktop app: a Tauri shell wrapping the tool with a bundled Python sidecar (PyInstaller), opening straight into the Playground.
  • Auto-update wired to the GitHub release manifest.
  • ⚠️ This build was unsigned — it needed a Gatekeeper workaround to open. Fixed in 0.2.0.