From 6a79d136d34c27235e62d32f5e6a3075b6205912 Mon Sep 17 00:00:00 2001 From: Benjamin Altpeter <hi@bn.al> Date: Sun, 16 Apr 2023 22:17:05 +0200 Subject: [PATCH] Windows-specific ideviceinstaller commands --- docs/README.md | 4 ++-- src/ios.ts | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/README.md b/docs/README.md index 34242bb..b731220 100644 --- a/docs/README.md +++ b/docs/README.md @@ -89,7 +89,7 @@ An ID of a known permission on iOS. #### Defined in -[ios.ts:377](https://github.com/tweaselORG/appstraction/blob/main/src/ios.ts#L377) +[ios.ts:382](https://github.com/tweaselORG/appstraction/blob/main/src/ios.ts#L382) ___ @@ -286,7 +286,7 @@ The IDs of known permissions on iOS. #### Defined in -[ios.ts:360](https://github.com/tweaselORG/appstraction/blob/main/src/ios.ts#L360) +[ios.ts:365](https://github.com/tweaselORG/appstraction/blob/main/src/ios.ts#L365) ## Functions diff --git a/src/ios.ts b/src/ios.ts index ed9f282..005638e 100644 --- a/src/ios.ts +++ b/src/ios.ts @@ -164,7 +164,10 @@ export const iosApi = <RunTarget extends SupportedRunTarget<'ios'>>( clearStuckModals: asyncUnimplemented('clearStuckModals') as never, isAppInstalled: async (appId) => { - const { stdout } = await execa('ideviceinstaller', ['-l', '-o', 'list_all']); + const { stdout } = + process.platform === 'win32' + ? await execa('ideviceinstaller', ['-l', '-o', 'list_all']) + : await execa('ideviceinstaller', ['list', '-o', 'list_all']); return ( stdout .split('\n') @@ -176,10 +179,12 @@ export const iosApi = <RunTarget extends SupportedRunTarget<'ios'>>( // We're using `libimobiledevice` instead of `cfgutil` because the latter doesn't wait for the app to be fully // installed before exiting. installApp: async (ipaPath) => { - await execa('ideviceinstaller', ['--install', ipaPath]); + if (process.platform === 'win32') await execa('ideviceinstaller', ['install', ipaPath]); + else await execa('ideviceinstaller', ['--install', ipaPath]); }, uninstallApp: async (appId) => { - await execa('ideviceinstaller', ['--uninstall', appId]); + if (process.platform === 'win32') await execa('ideviceinstaller', ['uninstall', appId]); + else await execa('ideviceinstaller', ['--uninstall', appId]); }, async setAppPermissions(appId, _permissions) { if (!options.capabilities.includes('ssh') || !options.capabilities.includes('frida'))