I can use devicectl
to copy single files from a device fine using:
xcrun devicectl --verbose device copy from --user mobile --domain-identifier <BUNDLE_ID> --domain-type appDataContainer --device <DEVICE_ID> --source Documents/Screenshots/0001.png --destination Screeshots/0001.png
but when there are many files this can get pretty slow.
Is there a way of recursively copying an entire directory? I've tried this:
xcrun devicectl --verbose device copy from --user mobile --domain-identifier <BUNDLE_ID> --domain-type appDataContainer --device <DEVICE_ID> --source Documents/Screenshots --destination Screeshots
but nothing is transferred and it times out eventually with the error:
ERROR: The specified file could not be transferred. (com.apple.dt.CoreDeviceError error 7000 (0x1B58))
ERROR: The operation couldn’t be completed. The file service client failed to read data from the network socket because we timed out when waiting for data to become available. (NSPOSIXErrorDomain error 60 (0x3C))
NSLocalizedFailureReason = The file service client failed to read data from the network socket because we timed out when waiting for data to become available.
Xcode itself can do it with the "download container..." option, but I'd like to be able to automate it.