Skip to content

Comments

feat(installation-proxy): use remotexpc when iOS>=18#2714

Merged
mykola-mokhnach merged 15 commits intoappium:masterfrom
navin772:remotexpc-installation-proxy
Feb 4, 2026
Merged

feat(installation-proxy): use remotexpc when iOS>=18#2714
mykola-mokhnach merged 15 commits intoappium:masterfrom
navin772:remotexpc-installation-proxy

Conversation

@navin772
Copy link
Contributor

@navin772 navin772 commented Jan 20, 2026

Utilizes appium-ios-remotexpc installation proxy for app installation for iOS>=18.

Note: We can update the terminateApp command to use appium-ios-remotexpc once we have the process control DVT instrument implemented in remotexpc, this can be done separately. It will remove dependence on devicectl.

@navin772 navin772 marked this pull request as ready for review January 23, 2026 17:45
@navin772
Copy link
Contributor Author

Hi @mykola-mokhnach @KazuCocoa could you review this PR?

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a unified Installation Proxy abstraction and switches real-device app install/uninstall/list/lookup flows to use appium-ios-remotexpc when running on iOS 18+, while keeping a fallback path for older iOS versions.

Changes:

  • Introduced InstallationProxyClient to unify Installation Proxy operations across appium-ios-device and appium-ios-remotexpc.
  • Updated real-device installation/uninstallation and app lookup/list flows to use the new client (RemoteXPC for iOS 18+).
  • Updated mobile: listApps implementation to use the unified client.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
lib/device/real-device-management.ts Routes install/uninstall/list/lookup calls through the new InstallationProxyClient, selecting RemoteXPC on iOS 18+.
lib/device/installation-proxy-client.ts New unified client wrapping ios-device vs remotexpc Installation Proxy APIs with a common interface and cleanup.
lib/commands/app-management.ts Updates mobileListApps to use InstallationProxyClient (RemoteXPC on iOS 18+) and adjusts return typing.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@mykola-mokhnach
Copy link
Contributor

@navin772 Is the PR ready for another review?

@navin772
Copy link
Contributor Author

Yes, added timeout handling for remotexpc

@mykola-mokhnach mykola-mokhnach merged commit 3e5ecc8 into appium:master Feb 4, 2026
15 checks passed
github-actions bot pushed a commit that referenced this pull request Feb 4, 2026
## [10.20.0](v10.19.1...v10.20.0) (2026-02-04)

### Features

* **installation-proxy:** use remotexpc when iOS>=18 ([#2714](#2714)) ([3e5ecc8](3e5ecc8))
@github-actions
Copy link
Contributor

github-actions bot commented Feb 4, 2026

🎉 This PR is included in version 10.20.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants