Highlights
🐛 Positional arguments are back on commands the Typer migration turned into options
Since v7.0.0, several commands only accepted their optional arguments as options, so the documented forms failed with Got unexpected extra argument(s). They take positional arguments again: lockdown get/set/unpair/device-name, diagnostics mg, power-assertion, crash pull/ls/watch, developer dvt simulate-location play, webinspector js-shell, profile cloud-configuration and profile set-wifi-power.
pymobiledevice3 lockdown get com.apple.mobile.battery BatteryCurrentCapacity
pymobiledevice3 developer dvt simulate-location play route.gpx 500mounter query-nonce no longer requires --image-type, and developer core-device read-file prints to stdout again when -o is omitted.
Breaking: the option spellings these commands accepted in the meantime (--domain, --key, --keys, --host-id, --new-name, --details, --remote-file, --name, --timing-randomness-range, --url, --config, --state) are gone. Pass the values positionally.
Thanks to @Cassian433.
🐛 A dropped RSD or RemotePairing connection is reported as a dropped connection
Follow-up to v11.26.1 for the iOS 17+ transports. When the device or its daemon dropped a RemoteXPC connection, a RemotePairing control channel, the tunnel handshake or the CoreDevice file data channel, the raw socket error escaped: a traceback (or just Aborted.) instead of Connection was terminated abruptly, and no --reconnect retry. These all raise ConnectionTerminatedError now. tunneld and --tunnel skip a tunnel that resets its RSD handshake instead of failing.
Thanks to @Cassian433.
📦 Four fewer dependencies
hexdump, parameter_decorators, plumbum and gpxpy are no longer installed. Each backed one or two call sites and is replaced by a few lines of our own; ipsw_parser 1.8.0, now the minimum, dropped plumbum as well. pmd-net-addr is declared explicitly, pydantic is no longer imported, and traitlets is only imported together with IPython.
GPX playback reads the same track points as before. A track point without a valid lat/lon now raises ValueError instead of gpxpy's GPXException.
What's Changed
- d0db65f deps: Require ipsw_parser 1.8.0 (#2012) (@doronz88)
- 3a98ab2 cli: Restore optional parameters broken by the Typer migration (#2013) (@Cassian433)
- 7a1d5cc deps: Stop relying on packages other dependencies happen to install (#2012) (@doronz88)
- 9110fcc simulate-location: Read GPX track points without gpxpy (#2012) (@doronz88)
- ceaaa13 debugserver: Run xcodebuild with subprocess instead of plumbum (#2012) (@doronz88)
- e4482b4 deps: Drop hexdump and parameter_decorators (#2012) (@doronz88)
- c3a4aa8 remote: Report a dropped RemotePairing or file data connection as ConnectionTerminatedError (#2011) (@doronz88)
- 348c2af tunneld: Skip a tunnel whose RSD handshake is reset (#2010) (@Cassian433)
- 801df9d remotexpc: Report any socket error as ConnectionTerminatedError (#2010) (@Cassian433)
Full Changelog: v11.26.1...v11.27.0