Highlights
✨ Progress bars for apps install
Installing an app used to print nothing while the package uploaded, which on a large IPA over Wi-Fi meant several seconds of a silent terminal. apps install now shows a byte progress bar with the transfer rate for the upload (AFC, .ipcc carrier bundles and --streaming), then an install bar driven by the device's reported percentage. Each installation stage the device reports (ExtractingPackage, VerifyingApplication, …) is logged as it starts, so a failed install shows which stage it failed at. Uninstall, archive and restore show the same install bar.
pymobiledevice3 apps install MyApp.ipa
pymobiledevice3 apps install --streaming MyApp.ipaAfcService.set_file_contents() now writes in 4 MiB chunks and takes an optional progress bar. In --streaming mode, an installation error reported together with DataComplete now raises instead of being reported as a success.
🐛 tunneld fixes
- On Windows, tunneld now runs on the selector event loop. uvicorn was forcing a proactor loop, on which the Wi-Fi monitor's Bonjour browse never got answers, so no Wi-Fi tunnels were ever created (#2051).
/start-tunnelwithout aconnection_typenow falls through to the USB and Wi-Fi connection types when usbmux doesn't list the device, instead of failing with HTTP 501.
What's Changed
- eb9f4ef apps: Report transfer and installation progress (#2109) (@vnc0)
- 5be36f9 tests: Mark test_start_tunnel as a device test (#2108) (@kevinwwillis)
- 0ff8d10 tunneld: Try the other connection types for a device not on usbmux (#2107) (@kevinwwillis)
- c593640 tunneld: Serve on the selector loop on Windows (#2105) (@kevinwwillis)
New Contributors
- @kevinwwillis made their first contribution in #2108
- @vnc0 made their first contribution in #2109
Full Changelog: v11.43.1...v11.44.0