Skip to content

Latest commit

 

History

History
431 lines (314 loc) · 34.7 KB

File metadata and controls

431 lines (314 loc) · 34.7 KB

1.0.1 (2026-08-10)

  • Feat(screencapture): Default FPS to 30 instead of leaving it unset (#335)
  • Feat: Dump UI via persistent devicekit server on android (#334)
  • Fix: Remote allocate/release fixes (#332)
  • Fix: Make remote allocate --name accept a single value (#331)
  • Chore: Bump devicekit-android agent to 1.2.5 (#337)

1.0.0 (2026-08-01)

  • Fix(ios): Find the right iOS resigner matching provisioning profile (#325)
  • Feat(android): Report selected state in Android UI dump (#320), thanks to @sjy
  • Fix(android): Add timeout on getprop in case adbd needs a kill-server (#322)
  • Fix(ios): Correct iOS UI dump positions for elements in nested windows (#321, devicekit-ios#55)
  • Fix(ios): Restore Xcode 26.5 testing support and fix simulator agent version checks and upgrades (#324, devicekit-ios#57)

0.3.89 (2026-07-30)

  • Feat: Add windows arm64 build (#314, closes #305)
  • Feat(android): Report enabled and checked state in android ui dump (#317, see mobilewright#252)
  • Docs: How to run e2e tests (#316)

0.3.88 (2026-07-29)

  • Fix: Remote mobilenext.ai device allocation response change (#309)
  • Fix: Thread locales through device.apps.launch JSON-RPC handler (#303)
  • Fix: Extend write deadline for app install/uninstall RPCs (#304)

0.3.87 (2026-07-15)

  • Feat: Add mobilecli skill (#256), thanks to @lazynoda
  • Fix: Include multiline TextView in iOS accessibility dump (#294), thanks to @Ernest94
  • Fix: Upgrade golang.org/x/crypto and golang.org/x/net to address security alerts (#301)

0.3.86 (2026-07-13)

  • Feat: Live bitrate + keyframe control via device socket (Android only) (#295)

0.3.85 (2026-06-17)

  • Feat: Device.settings.apply with animations toggle (#287)

0.3.84 (2026-06-15)

  • Fix: Include clickable and checkable elements in android view tree dump (#284)

0.3.83 (2026-06-15)

  • Fix: Scale press-keys RPC timeout by key count (#281)
  • Fix: Match agent bundle id by suffix to support re-signed runner (#280)
  • Chore: Update devicekit-ios agent to 0.0.20 (#282)

0.3.82 (2026-06-14)

  • Feat: Update agent automatically on install command when the installed version differs (#278)
  • Feat: Add agent uninstall command (#277)
  • Feat: Add placeholder field to android's dump ui (#276)
  • Feat: Android now returns the version and versionCode of apps in list apps (requires devicekit-android installed)
  • Feat: Return installed app metadata from apps install (#274)

0.3.81 (2026-06-12)

  • Fix: Wait a bit for android foreground app, it might be null if there's a transition animation (#271)
  • Fix: Nest elements in 'dump ui' command, it was flat (#267)
  • Feat: Add --bitrate to screencapture command (#269)
  • Feat: Add --activity for apps launch on android (#272)

0.3.80 (2026-06-11)

  • Feat: Support --insecure-storage if keychain/gnome-keyring doesn't exist (#266)
  • Fix: Add missing webview element (#265)
  • Feat: Add "io keys" command for pressing keys with modifiers (#264)
  • Feat: Add --provider to mobilecli auth login (#263)

0.3.79 (2026-06-09)

  • Fix: Await promises in WebView JS eval via token-based poll loop (#261)
  • Fix: Use callAsyncJavaScript instead of evaluateJavaScript for webview evals (#258)
  • Fix: Webview race condition getting port if app not yet in foreground (#260)
  • Fix: Increase websocket message size to 8MB (#257)

0.3.78 (2026-06-04)

  • Android: Wrongly wrap IIFE expressions around webview evals (#254)

0.3.77 (2026-06-03)

  • Feat: Add device.webview.url and device.webview.title JSON-RPC methods (#251)
  • Fix: Finalize android screenrecord mp4 on ctrl-c by signaling on-device process (#249)

0.3.76 (2026-06-02)

  • Feat: Webview support for real iOS devices (#246)
  • Feat: Webview support for iOS simulators and Android real devices and emulators (#244)
  • Fix: Recover from panics in websocket handlers to prevent server crash (#240)

0.3.75 (2026-05-26)

  • General: File system support for ls, mkdir, rm, push, pull and get app path (#228)
  • General: Fix websocket timeouts after around 50-60 seconds (#239)

0.3.74 (2026-05-17)

  • Android: Use devicekit instrumentation for android view tree dump (#233)

0.3.73 (2026-05-12)

  • Android: Include elements with resource-id in UI element tree dump even when text and content-desc are empty

0.3.72 (2026-05-11)

  • Android: Fix launching apps installed with -t (test) flag (#225)

0.3.71 (2026-05-05)

  • Android: Fix launching apps on emulators with hw.keyboard = no by passing --pct-syskeys 0 to monkey

0.3.70 (2026-05-04)

  • iOS: Fix terminating simulator runner and register shutdown hook on agent start (#217)
  • iOS: Update devicekit-ios agent to 0.0.18 (#220)
  • iOS: Include placeholder field in dump UI view tree response

0.3.69 (2026-05-01)

  • iOS: update go-ios library to v1.0.211 which fixes iOS 26 on OSX Tahoe (#212)

0.3.68 (2026-05-01)

  • General: Add mobilecli remote commands for allocating, listing, and releasing remote devices, deprecate mobilecli fleet
  • General: Move crashes commands under device crashes, deprecate root crashes (#209)

0.3.67 (2026-04-27)

  • General: Validate artifact host for upload and download to address codeql ssrf alerts (#207)
  • iOS: Fix race condition when assigning device kit agent a random port for iOS Simulator (#204)
  • iOS: Remove redundant HOME button press after launching device kit agent (#203)

0.3.66 (2026-04-16)

  • General: Add mobilecli agent install command for automatically installing devicekit-ios and devicekit-android (#196)
  • iOS: Disable HTTP keep-alives to fix real device port forwarding (#197)
  • iOS: Replace WebDriverAgent with devicekit-ios agent (#196)

0.2.0 (2026-04-13)

  • General: Move npm package from @mobilenext/mobilecli to mobilecli (#191)
  • General: Update npm packages under 'test' directory (#192)

0.1.64 (2026-04-02)

  • General: Add --wait and --timeout flags to fleet allocate for polling until device is ready (#189)

0.1.63 (2026-04-02)

  • General: Handle provider field as object in remote devices response (#188)

0.1.62 (2026-03-27)

  • General: List and fetch crash reports via CLI and JSON-RPC (#187)
  • iOS: Fetch crash reports from real devices via Apple crashreport service (#187)
  • iOS: Read .ips crash reports from simulator DiagnosticReports directory (#187)
  • Android: Parse native and Java crash reports from adb logcat crash buffer (#187)

0.1.61 (2026-03-20)

  • General: Fixed oauth login with device code flow (#185)
  • iOS: Use openssl instead of security cms for resigning (#182)
  • iOS: Support locale when launching apps (#181)
  • Android: Support locale when launching apps (#181)

0.1.60 (2026-03-03)

  • General: Provide information like time-elapsed, and download performance for screen recording (#180)
  • iOS: Support mp4 screen recording across iOS real devices and iOS Simulators (#179)
  • Android: Support mp4 screen recording across Android real devices and Emulators (#179)

0.1.59 (2026-02-25)

0.1.58 (2026-02-14)

  • iOS: Click HOME button three times after Broadcast Extension starts running (#27afdbe)

0.1.57 (2026-02-14)

  • General: Support for daemonizing (running in background) using -d or --daemon (#169)

0.1.56 (2026-02-07)

  • General: Added .model to "devices" and "device info" commands (#166)
  • General: Refactored jsonrpc methods into namespaces ("device", and "devices") (#167)
  • General: Added device.apps.foreground method to get the currently active application (#167)

BREAKING CHANGES:

  • General: All JSON-RPC method names now use device.* prefix for better organization. Migration table:
    • devicesdevices.list
    • screenshotdevice.screenshot
    • screencapturedevice.screencapture
    • io_tapdevice.io.tap
    • io_longpressdevice.io.longpress
    • io_textdevice.io.text
    • io_buttondevice.io.button
    • io_swipedevice.io.swipe
    • io_gesturedevice.io.gesture
    • io_orientation_getdevice.io.orientation.get
    • io_orientation_setdevice.io.orientation.set
    • device_infodevice.info
    • device_bootdevice.boot
    • device_shutdowndevice.shutdown
    • device_rebootdevice.reboot
    • dump_uidevice.dump.ui
    • apps_launchdevice.apps.launch
    • apps_terminatedevice.apps.terminate
    • apps_listdevice.apps.list
    • apps_foregrounddevice.apps.foreground
    • urldevice.url

0.0.55 (2026-02-02)

  • iOS: Support getting foreground app and its version (#165)
  • Android: Support getting foreground app and its version (#165)

0.0.54 (2026-02-01)

  • General: Screencapture over /rpc and /ws now returns a redirect url such as /session?s= (#161)
  • iOS: Many devicekit-ios start optimizations (#162)
  • iOS: Fix potential race condition when checking availability of wda (#163)
  • iOS: Cache ios devicename and version for faster 'devices' command (#160)

0.0.53 (2026-01-28)

  • iOS: Fixed a bug where tcp forwarders were created on every request for mjpeg (#158)
  • iOS: Lazily creating mjpeg tcp forwarder only when needed (#158)
  • iOS: Multiple real devices would overwrite each other's wda tcp forwarder (#158)
  • iOS: Keep running WebdriverAgent xcuitest as long as "mobilecli server" is running (#158)
  • iOS: Graceful shutdown and improved tunnel closing (#158)
  • iOS: Calling "device info" on iOS Simulator would fail after first time (#158)

0.0.52 (2026-01-27)

  • General: Websocket support for jsonrpc at /ws, single connection multiple requests (#154)
  • iOS: Detect devicekit-ios process already running to Start Broadcasting a 2nd time (#156)
  • iOS: Return more elements in "dump ui", eg Button with no label (#155)

0.0.51 (2026-01-25)

  • General: Plenty of code cleanups and refactoring for smaller and more maintained code (#144)
  • General: Merged the port ranges used for wda and wda's mjpeg (#147)
  • General: Graceful server shutdown on sigint/sigterm (#151)
  • iOS: Support AVC screencapture on real iOS devices via devicekit-ios (#145)
  • iOS: Include TextField/SearchField/Switch/Button elements in dump UI results (#155)

0.0.50 (2026-01-13)

  • General: Add apps_launch and dump_ui methods to jsonrpc (5163c8a)
  • General: Add apps_list and apps_terminate methods to jsonrpc (#142)
  • iOS: Fix missing tunnel when listing apps (#140)
  • iOS: Fixed potential double-tunnel creation and error (#140)

0.0.49 (2026-01-01)

  • General: Add configurable --duration flag to longpress command (#139)

0.0.48 (2025-12-17)

  • Android: Added "no-qt-window", "netspeed" and "netdelay" to android emulator start; fixes inconsistent frame-rate (#137)

0.0.47 (2025-12-10)

  • General: Don't look for iOS simulators on windows or linux (#133)
  • General: Missing 'state' in device info (#135)
  • Android: Removed "no-window" again from emulator start, headless is horribly slow (#136)

0.0.46 (2025-12-08)

  • General: Allow negative coordinates when swiping (#130)
  • iOS: Increase timeout to 60 seconds for dump ui (#131)

0.0.45 (2025-12-07)

  • General: Removed command specific flags from root help (#129)
  • Android: Support avc format (h264 codec) for screencapture (1f35139)

0.0.44 (2025-12-01)

  • General: Bump webdriveragent to 10.2.5 (#125)
  • iOS: Support non-ascii characters in io text (#128)
  • iOS: Send home button after wda start in simulator (#127)

0.0.43 (2025-11-30)

  • General: Now installating dependencies with --ignore-scripts (#122)
  • General: Support raw view tree ui dumps with --format flag (#121)
  • iOS: Kill wda if StartAgent times out launching on simulator (#124)
  • iOS: Support installing wda from local directory via environment variable (#123)
  • Android: Run new avd without a window, enable snapshot-loading (#99)

0.0.42 (2025-11-27)

  • iOS: Fix mjpeg framerate wda race condition (#119)
  • iOS: Fix multiple real devices would override each other's pointers (#120)

0.0.41 (2025-11-26)

  • General: Cache preflight cors check for a day (#114)
  • General: Fix wrong error message when simulator/emulator device is offline (#107)
  • iOS: Optimize "simctl list" performance by eliminating it (#115)
  • iOS: Add wda session caching for faster input operations (#111)
  • iOS: Support scale parameter for mjpeg (#110)
  • iOS: Add progress notifications on wda installation (#109)
  • Android: Improve "device list" performance by removing dependency on avdmanager (#116)
  • Android: Fix screenshot from multi-display Android (like Pro Fold 9) (#113)
  • Android: Make sure ANDROID_HOME path is valid (#108)
  • Android: Faster emulator boot (removed -no-snapshot-load) and without window (#117)

0.0.40 (2025-11-20)

  • iOS: Start tunnel before apps launch and terminate on iOS 17+ (#106)

0.0.39 (2025-11-20)

  • General: Bump glob from 10.4.5 to 10.5.0 in /test (#105)
  • General: Bump golang.org/x/crypto from 0.41.0 to 0.45.0 (#104)
  • General: Bump js-yaml from 4.1.0 to 4.1.1 in /test (042098c)
  • General: Upgrade golang to 1.25.0 (#102)
  • General: Update go-quic to 0.49.1 (5510c06)

0.0.38 (2025-11-17)

  • Android: Fix broken adb access to emulator-%d (#100)

0.0.37 (2025-11-15)

  • General: New and more detailed --help (#96)
  • General: Make device_reboot available through jsonrpc (#97)
  • Android: Translate Android API levels to Android release versions in device list (#98)

0.0.36 (2025-11-14)

  • General: Progammatically boot and shutdown emulators and simulators (#95)
  • General: Offline devices need to be booted manually prior to use (#95)

0.0.35 (2025-11-13)

  • General: Support "type", "platform" and "includeOffline" in jsonrpc for 'devices' command (#94)
  • General: Changed "devices --all" to "devices --include-offline" for consistency and clarity (#94)

0.0.34 (2025-11-13)

  • General: Support --type and --platform in list devices command (#81)
  • iOS: List simulators that have been initialized once (they boot fast) in "devices --all" (#81)
  • iOS: Add an icon and a display name for installed webdriveragent (#93)
  • Android: List offline emulators in "devices --all" (#81)

0.0.33 (2025-11-01)

  • General: Fix launching mobilecli using npx on macos after split to arm64/amd64 (#91)

0.0.32 (2025-11-01)

  • General: Use USERPROFILE and LOCALAPPDATA on Windows to locate adb.exe without relying on PATH (#88)

0.0.31 (2025-10-23)

  • Android: CRLF was getting in the way of mjpeg on Windows (#86)

0.0.30 (2025-10-23)

  • General: Do not attempt fetching iOS simulators if not running on macos (#85)
  • iOS: Skip tunnel creation if running on iOS 16.x and below (#84)
  • Android: CRLF was getting in the way of screenshots on Windows (#85)

0.0.29 (2025-10-21)

  • General: Split mac binaries into arm64 and amd64 for smaller packages (06d7e89)

0.0.28 (2025-10-07)

  • General: Statically linked binaries for linux (#79)

0.0.27 (2025-10-05)

  • General: Fix potential zip-split security issue when unpacking wda (#76)
  • iOS: Set MJPEG server to stream at 30 fps instead of default 10 (#78)
  • iOS: Fix buggy 'device info' on an iOS device when wda wasn't running prior (#77)

0.0.26 (2025-10-02)

  • iOS: Added swipe command, use "mobilecli io swipe" (#72)
  • Simulator: Fixed 'mobilecli device info', it requires wda prior (#73)
  • Android: Added swipe command, use "mobilecli io swipe" (#72)

0.0.25 (2025-09-26)

  • General: fixed '--version' on windows and linux distributables (#69)
  • General: renamed 'dump source' to 'dump ui' (#68)
  • General: upgraded golang to 1.24.7 (#66)
  • iOS: support orientation get and set to 'landscape' and 'portrait' (#67)
  • iOS: removed a printf in 'dump ui' that was tainting the json output (#68)
  • Android: support orientation get and set to 'landscape' and 'portrait' (#67)

0.0.24 (2025-09-23)

  • iOS: support longpress (#54)
  • iOS: dump ui hierarchy using wda's /source (#53)
  • iOS: launch wda on different ports, to enable multiple simulators and real devices on the same host (#52)
  • Android: support longpress (#54)
  • Android: dump ui hierarchy using uiautomator (#53)

0.0.23 (2025-09-18)

  • General: all logs moved to --verbose (#48)
  • iOS: fixed "ENTER" io button command (#50)
  • iOS: added version to device list response, for both real devices and simulators (#51)
  • Android: added OS version to device list response (eg "16") (#51)

0.0.22 (2025-09-10)

  • iOS: launch wda on real devices if needed (#45)
  • iOS: automatically detect wda installed device, regardless on bundle identifier (#45)

0.0.21 (2025-09-08)

  • Android: return the avd name if emulator supports (eg 'Pixel 5' instead of 'sdk_gphone64_arm64') (#42)
  • Android: support for POWER and APP_SWITCH buttons (#44)

0.0.20 (2025-09-04)

  • iOS: fixed potential race-condition in waiting for wda installation on simulator (#41)
  • Android: try $HOME/Library/Android if $ANDROID_HOME is not configured (#40)
  • Android: support --scale and --quality for screencapture mjpeg streaming (#39)

0.0.19 (2025-09-03)

  • General: run tests on iOS 16, 17 and 18 simulators upon pull-request (#35)
  • General: upgraded go-quic libraries for security (5d35293)
  • iOS: embedded go-ios as a library, go-ios is no longer required to be installed before (#34)

0.0.18 (2025-08-26)

  • iOS: proper handling and forwarding of port 9100 (#33)
  • Simulator: use localhost:9100 properly for mjpeg streaming (#33)

0.0.17 (2025-08-25)

  • iOS: fix locating go-ios executable when creating tunnel (#32)

0.0.16 (2025-08-25)

  • General: fix zipslip security warning (c21e7f0)
  • General: version command showed 'dev' after refactor of cli package (0bb104f)
  • iOS: check for go-ios path through GO_IOS_PATH env (1465914)

0.0.15 (2025-08-25)

  • General: refactored all commands into "cli" package (8115a787)
  • General: reimplemented all tests into golang, added coverage tests (4390b11)
  • General: better error responses for jsonrpc protocol (b7ca4a8)
  • iOS: automatically start webdriver agent if installed on device (02025dd)
  • iOS: automatically start port forwarding for port 8100 using a dynamic source port (02025dd)
  • iOS: automatically start userland tunnel for iOS 17 (02025dd)
  • iOS: fixed bad parsing of go-ios output if warning was printed (2150f27)
  • iOS: use "ios" and fallback to "go-ios" (2150f27)
  • iOS: support multiple custom gestures to be passed to device (b7ca418)
  • Simulator: automatically donwload webdriveragent for simulator (0dbe361)
  • Simulator: automatically install webdriveragent on simulator if needed (0dbe361)