appium-webdriveragent
Version:
Package bundling WebDriverAgent
41 lines (38 loc) • 1.12 kB
text/typescript
import {fs} from '@appium/support';
import {exec} from 'teen_process';
import path from 'node:path';
import {WDA_SCHEME, SDK_SIMULATOR, WDA_RUNNER_APP} from './constants';
import {BOOTSTRAP_PATH} from './utils';
import type {XcodeBuild} from './xcodebuild';
async function buildWDASim(): Promise<void> {
const args = [
'-project',
path.join(BOOTSTRAP_PATH, 'WebDriverAgent.xcodeproj'),
'-scheme',
WDA_SCHEME,
'-sdk',
SDK_SIMULATOR,
'CODE_SIGN_IDENTITY=""',
'CODE_SIGNING_REQUIRED="NO"',
'GCC_TREAT_WARNINGS_AS_ERRORS=0',
];
await exec('xcodebuild', args);
}
export async function bundleWDASim(xcodebuild: XcodeBuild): Promise<string> {
const derivedDataPath = await xcodebuild.retrieveDerivedDataPath();
if (!derivedDataPath) {
throw new Error('Cannot retrieve the path to the Xcode derived data folder');
}
const wdaBundlePath = path.join(
derivedDataPath,
'Build',
'Products',
'Debug-iphonesimulator',
WDA_RUNNER_APP,
);
if (await fs.exists(wdaBundlePath)) {
return wdaBundlePath;
}
await buildWDASim();
return wdaBundlePath;
}