Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iOS 17, Xcode 15 (RemoteXPC) #123

Open
KazuCocoa opened this issue Aug 3, 2023 · 12 comments
Open

iOS 17, Xcode 15 (RemoteXPC) #123

KazuCocoa opened this issue Aug 3, 2023 · 12 comments

Comments

@KazuCocoa
Copy link
Member

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

@KazuCocoa
Copy link
Member Author

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.

@KazuCocoa KazuCocoa changed the title iOS 17, Xcode 15 iOS 17, Xcode 15 (RemoteXPC) Sep 20, 2023
@KazuCocoa
Copy link
Member Author

KazuCocoa commented Sep 21, 2023

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

@tomriddly
Copy link
Collaborator

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 ;{

@KazuCocoa
Copy link
Member Author

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

@mykola-mokhnach
Copy link
Contributor

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

@chmiiller
Copy link

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?

@mykola-mokhnach
Copy link
Contributor

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.

@tomriddly
Copy link
Collaborator

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...

@KazuCocoa
Copy link
Member Author

Maybe to start XCTest session,

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

@KazuCocoa
Copy link
Member Author

KazuCocoa commented Feb 27, 2024

Noticed quic for nodejs core is a draft pr

@KazuCocoa
Copy link
Member Author

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

@KazuCocoa
Copy link
Member Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants