zebrunner / mcloud

Mobile farm ecosystem for Android and iOS devices
125 stars 21 forks source link

add iOS 17.0 support #202

Open dhreben opened 11 months ago

dhreben commented 11 months ago

In the past we used DeveloperDiskImage, but as of 17.0 apple refused to support it https://github.com/pdso/DeveloperDiskImage:

With iOS 17+, we are using a new device stack (CoreDevice) to communicate with devices. With this new device stack, there is one DDI per platform (as opposed to per OS release). This same device stack will be shared across all versions of Xcode on your system, and installing a newer version of Xcode will update CoreDevice and its DDIs (just like how CoreSimulator is updated, if you are familiar with that).

This effectively means that you now have a supported way of updating the device stack on your system to support newer target OS devices. With CoreDevice, you should be able to debug devices running future versions of iOS using Xcode 15. This may require first installing a newer Xcode in order to install newer CoreDevice and DDIs, so keep that in mind.

Of course, this also means there is a temporary hiccup in which the old unsupported path doesn't work, but the good news is that future-you will have a supported way of doing this which works out-of-the-box, no need to modify your Xcode.app.

vdelendik commented 11 months ago

Until issue with developerimages is fixed we can return back into the xcodebuild usage to start wda on iOS 17. It was already tested successfully, make sure that new WDA uses 9100 for mjpeg output.

As a disadvantage it seems impossible to build farm for iOS 17 devices on Linux so far.

vdelendik commented 10 months ago

To support iOS 17 we suggest to do such steps:

1. setup mcloud-agent as usual
2. clone mcloud-ios and switch to the ios17 branch
3. setup it based on https://github.com/zebrunner/mcloud-ios/blob/ios17/README.md to start wda using pre installed xcode
4. start mcloud-agent and mclous-ios components
> appium from mcloud-agent will skip wda startup for iOS 17.0+ and for all AppleTVs
vdelendik commented 7 months ago

let's investigate https://github.com/doronz88/pymobiledevice3 possibilities