appium / appium-ios-device

Tools for interacting with iOS devices

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iOS 17, Xcode 15 (RemoteXPC)

KazuCocoa opened this issue · comments

appium-ios-device related thing (if needed)

https://github.com/doronz88/pymobiledevice3/blob/master/misc/RemoteXPC.md

We should send message via the RemoteXPC, remoted. We maybe detect if it is necessary by checking the response of UsesRemoteXPC
https://github.com/doronz88/pymobiledevice3/blob/master/misc/RemoteXPC.md#remotexpc-services

xcrun devicectl is promising. potentially we could use that for iOS 17 x Xcode 15 environment in some use cases instead.
e.g. appium/appium-xcuitest-driver#1997

But it is worth adding via remoted call as this library, of course.

Perhaps this module should handle ipv6 as well for iOS 17. (Core Device Tunnel stuff)

e.g. https://github.com/doronz88/pymobiledevice3/tree/master?tab=readme-ov-file

The original way requires sudo privilege. Will this be a problem?
https://github.com/doronz88/pymobiledevice3/blob/6545f5966bedd444d6b06f656e70a93f4b18b70f/pymobiledevice3/cli/remote.py#L71
Besides, I'm still unable to reproduce a valid demo on js ;{

Hm, we should not run with sudo in appium process wide, but I wonder if we could do with sudo privilege in appium-ios-device wide...

It would be great if we could find a way to avoid it though. cc @mykola-mokhnach

I agree there is no way to spin up TUN/TAP interface without having sudo privileges
Probably, we'd have to split this stuff into a separate process running with sudo privileges and isolate it properly

sorry if I'm sounding dumb, but pymobiledevice3 is a Python package. How would integrate all these RemoteXPC stuff into appium-iOS-device? Would you re-write what they did?
Isn't easier to wait until libimobiledevice makes some progress on supporting iOS 17?

sorry if I'm sounding dumb, but pymobiledevice3 is a Python package. How would integrate all these RemoteXPC stuff into appium-iOS-device? Would you re-write what they did? Isn't easier to wait until libimobiledevice makes some progress on supporting iOS 17?

We are not talking about integration, but rather switching completely to the new toolchain and deprecating appium-ios-device as it has no maintainers who would like to further develop and evolve the package.

sorry if I'm sounding dumb, but pymobiledevice3 is a Python package. How would integrate all these RemoteXPC stuff into appium-iOS-device? Would you re-write what they did? Isn't easier to wait until libimobiledevice makes some progress on supporting iOS 17?

I'm trying to migrate the remoteXPC to js. Unfortunately I'm still unable to create a valid demo.
Besides, this requires a sudo privilege to create a new tunnel which is nothing like what we did before. What a mess...

Maybe to start XCTest session,

this._execTestPlanSession = await startTestmanagerdService(this.udid);
should be for com.apple.dt.testmanagerd.remote service over the remoted connection

Noticed quic for nodejs core is a draft pr

webinspector needs to be com.apple.webinspector.shim.remote

Possibly iOS 17.4+'s remote service discovery lockdown method will help