{"version":3,"names":["runIOS","_","ctx","args","link","setPlatform","packager","port","installedPods","project","ios","automaticPodsInstallation","forcePods","isAppRunningNewArchitecture","sourceDir","getArchitecture","undefined","resolvePods","root","dependencies","forceInstall","newArchEnabled","newPort","startPackager","findDevServerPort","startServerInNewWindow","reactNativePath","terminal","reactNativeVersion","setVersion","xcodeProject","getXcodeProjectAndDir","recheckXcodeProject","findXcodeProject","fs","readdirSync","process","chdir","binaryPath","path","isAbsolute","join","existsSync","CLIError","mode","scheme","getConfiguration","devices","listIOSDevices","availableDevices","filter","isAvailable","length","logger","error","listDevices","interactive","device","udid","warn","selectedDevice","promptForDeviceSelection","type","runOnSimulator","runOnDevice","simulator","bootedDevices","simulators","getSimulators","bootedSimulators","Object","keys","map","key","reduce","acc","val","concat","state","booted","info","name","runOnBootedDevicesSimulators","find","d","chalk","bold","printFoundDevices","physicalDevices","matchingDevice","selectedSimulator","fallbackSimulators","getDestinationSimulator","activeDeveloperDir","child_process","execFileSync","encoding","trim","bootSimulator","buildOutput","appPath","buildProject","getBuildPath","target","spawnSync","stdio","bundleID","result","status","success","stderr","toString","isIOSDeployInstalled","appProcess","spawn","detached","unref","iosDeployInstallArgs","iosDeployOutput","message","simulatorFullName","formattedDeviceName","getTargetPaths","buildSettings","settings","JSON","parse","targets","settingsTarget","selectedTarget","includes","targetIndex","indexOf","wrapperExtension","WRAPPER_EXTENSION","targetBuildDir","TARGET_BUILD_DIR","executableFolderPath","EXECUTABLE_FOLDER_PATH","isCatalyst","isWorkspace","getPlatformName","platformNameMatch","exec","deviceName","firstIOSDevice","deviceByName","String","version","description","func","examples","desc","cmd","options","buildOptions","default","env","RCT_METRO_PORT","Number","getDefaultUserTerminal"],"sources":["../../../src/commands/runIOS/index.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport child_process from 'child_process';\nimport path from 'path';\nimport fs from 'fs';\nimport chalk from 'chalk';\nimport {Config, IOSProjectInfo} from '@react-native-community/cli-types';\nimport {getDestinationSimulator} from '../../tools/getDestinationSimulator';\nimport {\n logger,\n CLIError,\n link,\n getDefaultUserTerminal,\n startServerInNewWindow,\n findDevServerPort,\n} from '@react-native-community/cli-tools';\nimport {buildProject} from '../buildIOS/buildProject';\nimport {BuildFlags, buildOptions} from '../buildIOS/buildOptions';\nimport {getConfiguration} from '../buildIOS/getConfiguration';\nimport {Device} from '../../types';\nimport listIOSDevices from '../../tools/listIOSDevices';\nimport {promptForDeviceSelection} from '../../tools/prompts';\nimport getSimulators from '../../tools/getSimulators';\nimport {getXcodeProjectAndDir} from '../buildIOS/getXcodeProjectAndDir';\nimport resolvePods from '../../tools/pods';\nimport getArchitecture from '../../tools/getArchitecture';\nimport findXcodeProject from '../../config/findXcodeProject';\n\nexport interface FlagsT extends BuildFlags {\n simulator?: string;\n device?: string | true;\n udid?: string;\n binaryPath?: string;\n listDevices?: boolean;\n packager?: boolean;\n port: number;\n terminal?: string;\n}\n\nasync function runIOS(_: Array, ctx: Config, args: FlagsT) {\n link.setPlatform('ios');\n\n let {packager, port} = args;\n let installedPods = false;\n // check if pods need to be installed\n if (ctx.project.ios?.automaticPodsInstallation || args.forcePods) {\n const isAppRunningNewArchitecture = ctx.project.ios?.sourceDir\n ? await getArchitecture(ctx.project.ios?.sourceDir)\n : undefined;\n\n await resolvePods(ctx.root, ctx.dependencies, {\n forceInstall: args.forcePods,\n newArchEnabled: isAppRunningNewArchitecture,\n });\n\n installedPods = true;\n }\n\n if (packager) {\n const {port: newPort, startPackager} = await findDevServerPort(\n port,\n ctx.root,\n );\n\n if (startPackager) {\n await startServerInNewWindow(\n newPort,\n ctx.root,\n ctx.reactNativePath,\n args.terminal,\n );\n }\n }\n\n if (ctx.reactNativeVersion !== 'unknown') {\n link.setVersion(ctx.reactNativeVersion);\n }\n\n let {xcodeProject, sourceDir} = getXcodeProjectAndDir(ctx.project.ios);\n\n // if project is freshly created, revisit Xcode project to verify Pods are installed correctly.\n // This is needed because ctx project is created before Pods are installed, so it might have outdated information.\n if (installedPods) {\n const recheckXcodeProject = findXcodeProject(fs.readdirSync(sourceDir));\n if (recheckXcodeProject) {\n xcodeProject = recheckXcodeProject;\n }\n }\n\n process.chdir(sourceDir);\n\n if (args.binaryPath) {\n args.binaryPath = path.isAbsolute(args.binaryPath)\n ? args.binaryPath\n : path.join(ctx.root, args.binaryPath);\n\n if (!fs.existsSync(args.binaryPath)) {\n throw new CLIError(\n 'binary-path was specified, but the file was not found.',\n );\n }\n }\n\n const {mode, scheme} = await getConfiguration(xcodeProject, sourceDir, args);\n\n const devices = await listIOSDevices();\n\n const availableDevices = devices.filter(\n ({isAvailable}) => isAvailable === true,\n );\n\n if (availableDevices.length === 0) {\n return logger.error(\n 'iOS devices or simulators not detected. Install simulators via Xcode or connect a physical iOS device',\n );\n }\n\n if (args.listDevices || args.interactive) {\n if (args.device || args.udid) {\n logger.warn(\n `Both ${\n args.device ? 'device' : 'udid'\n } and \"list-devices\" parameters were passed to \"run\" command. We will list available devices and let you choose from one.`,\n );\n }\n const selectedDevice = await promptForDeviceSelection(availableDevices);\n if (!selectedDevice) {\n throw new CLIError(\n `Failed to select device, please try to run app without ${\n args.listDevices ? 'list-devices' : 'interactive'\n } command.`,\n );\n }\n if (selectedDevice.type === 'simulator') {\n return runOnSimulator(xcodeProject, mode, scheme, args, selectedDevice);\n } else {\n return runOnDevice(selectedDevice, mode, scheme, xcodeProject, args);\n }\n }\n\n if (!args.device && !args.udid && !args.simulator) {\n const bootedDevices = availableDevices.filter(\n ({type}) => type === 'device',\n );\n\n const simulators = getSimulators();\n const bootedSimulators = Object.keys(simulators.devices)\n .map((key) => simulators.devices[key])\n .reduce((acc, val) => acc.concat(val), [])\n .filter(({state}) => state === 'Booted');\n\n const booted = [...bootedDevices, ...bootedSimulators];\n if (booted.length === 0) {\n logger.info(\n 'No booted devices or simulators found. Launching first available simulator...',\n );\n return runOnSimulator(xcodeProject, mode, scheme, args);\n }\n\n logger.info(`Found booted ${booted.map(({name}) => name).join(', ')}`);\n\n return runOnBootedDevicesSimulators(\n mode,\n scheme,\n xcodeProject,\n args,\n bootedDevices,\n bootedSimulators,\n );\n }\n\n if (args.device && args.udid) {\n return logger.error(\n 'The `device` and `udid` options are mutually exclusive.',\n );\n }\n\n if (args.udid) {\n const device = availableDevices.find((d) => d.udid === args.udid);\n if (!device) {\n return logger.error(\n `Could not find a device with udid: \"${chalk.bold(\n args.udid,\n )}\". ${printFoundDevices(availableDevices)}`,\n );\n }\n if (device.type === 'simulator') {\n return runOnSimulator(xcodeProject, mode, scheme, args);\n } else {\n return runOnDevice(device, mode, scheme, xcodeProject, args);\n }\n } else if (args.device) {\n const physicalDevices = availableDevices.filter(\n ({type}) => type !== 'simulator',\n );\n const device = matchingDevice(physicalDevices, args.device);\n if (device) {\n return runOnDevice(device, mode, scheme, xcodeProject, args);\n }\n } else {\n runOnSimulator(xcodeProject, mode, scheme, args);\n }\n}\n\nasync function runOnBootedDevicesSimulators(\n mode: string,\n scheme: string,\n xcodeProject: IOSProjectInfo,\n args: FlagsT,\n devices: Device[],\n simulators: Device[],\n) {\n for (const device of devices) {\n await runOnDevice(device, mode, scheme, xcodeProject, args);\n }\n\n for (const simulator of simulators) {\n await runOnSimulator(xcodeProject, mode, scheme, args, simulator);\n }\n}\n\nasync function runOnSimulator(\n xcodeProject: IOSProjectInfo,\n mode: string,\n scheme: string,\n args: FlagsT,\n simulator?: Device,\n) {\n /**\n * If provided simulator does not exist, try simulators in following order\n * - iPhone 14\n * - iPhone 13\n * - iPhone 12\n * - iPhone 11\n */\n\n let selectedSimulator;\n if (simulator) {\n selectedSimulator = simulator;\n } else {\n const fallbackSimulators = [\n 'iPhone 14',\n 'iPhone 13',\n 'iPhone 12',\n 'iPhone 11',\n ];\n selectedSimulator = getDestinationSimulator(args, fallbackSimulators);\n }\n\n if (!selectedSimulator) {\n throw new CLIError(\n `No simulator available with ${\n args.simulator ? `name \"${args.simulator}\"` : `udid \"${args.udid}\"`\n }`,\n );\n }\n\n /**\n * Booting simulator through `xcrun simctl boot` will boot it in the `headless` mode\n * (running in the background).\n *\n * In order for user to see the app and the simulator itself, we have to make sure\n * that the Simulator.app is running.\n *\n * We also pass it `-CurrentDeviceUDID` so that when we launch it for the first time,\n * it will not boot the \"default\" device, but the one we set. If the app is already running,\n * this flag has no effect.\n */\n const activeDeveloperDir = child_process\n .execFileSync('xcode-select', ['-p'], {encoding: 'utf8'})\n .trim();\n\n child_process.execFileSync('open', [\n `${activeDeveloperDir}/Applications/Simulator.app`,\n '--args',\n '-CurrentDeviceUDID',\n selectedSimulator.udid,\n ]);\n\n if (selectedSimulator.state !== 'Booted') {\n bootSimulator(selectedSimulator);\n }\n\n let buildOutput, appPath;\n if (!args.binaryPath) {\n buildOutput = await buildProject(\n xcodeProject,\n selectedSimulator.udid,\n mode,\n scheme,\n args,\n );\n\n appPath = await getBuildPath(\n xcodeProject,\n mode,\n buildOutput,\n scheme,\n args.target,\n );\n } else {\n appPath = args.binaryPath;\n }\n\n logger.info(\n `Installing \"${chalk.bold(appPath)} on ${selectedSimulator.name}\"`,\n );\n\n child_process.spawnSync(\n 'xcrun',\n ['simctl', 'install', selectedSimulator.udid, appPath],\n {stdio: 'inherit'},\n );\n\n const bundleID = child_process\n .execFileSync(\n '/usr/libexec/PlistBuddy',\n ['-c', 'Print:CFBundleIdentifier', path.join(appPath, 'Info.plist')],\n {encoding: 'utf8'},\n )\n .trim();\n\n logger.info(`Launching \"${chalk.bold(bundleID)}\"`);\n\n const result = child_process.spawnSync('xcrun', [\n 'simctl',\n 'launch',\n selectedSimulator.udid,\n bundleID,\n ]);\n\n if (result.status === 0) {\n logger.success('Successfully launched the app on the simulator');\n } else {\n logger.error(\n 'Failed to launch the app on simulator',\n result.stderr.toString(),\n );\n }\n}\n\nasync function runOnDevice(\n selectedDevice: Device,\n mode: string,\n scheme: string,\n xcodeProject: IOSProjectInfo,\n args: FlagsT,\n) {\n if (args.binaryPath && selectedDevice.type === 'catalyst') {\n throw new CLIError(\n 'binary-path was specified for catalyst device, which is not supported.',\n );\n }\n\n const isIOSDeployInstalled = child_process.spawnSync(\n 'ios-deploy',\n ['--version'],\n {encoding: 'utf8'},\n );\n\n if (isIOSDeployInstalled.error) {\n throw new CLIError(\n `Failed to install the app on the device because we couldn't execute the \"ios-deploy\" command. Please install it by running \"${chalk.bold(\n 'brew install ios-deploy',\n )}\" and try again.`,\n );\n }\n\n if (selectedDevice.type === 'catalyst') {\n const buildOutput = await buildProject(\n xcodeProject,\n selectedDevice.udid,\n mode,\n scheme,\n args,\n );\n\n const appPath = await getBuildPath(\n xcodeProject,\n mode,\n buildOutput,\n scheme,\n args.target,\n true,\n );\n const appProcess = child_process.spawn(`${appPath}/${scheme}`, [], {\n detached: true,\n stdio: 'ignore',\n });\n appProcess.unref();\n } else {\n let buildOutput, appPath;\n if (!args.binaryPath) {\n buildOutput = await buildProject(\n xcodeProject,\n selectedDevice.udid,\n mode,\n scheme,\n args,\n );\n\n appPath = await getBuildPath(\n xcodeProject,\n mode,\n buildOutput,\n scheme,\n args.target,\n );\n } else {\n appPath = args.binaryPath;\n }\n\n const iosDeployInstallArgs = [\n '--bundle',\n appPath,\n '--id',\n selectedDevice.udid,\n '--justlaunch',\n ];\n\n logger.info(`Installing and launching your app on ${selectedDevice.name}`);\n\n const iosDeployOutput = child_process.spawnSync(\n 'ios-deploy',\n iosDeployInstallArgs,\n {encoding: 'utf8'},\n );\n\n if (iosDeployOutput.error) {\n throw new CLIError(\n `Failed to install the app on the device. We've encountered an error in \"ios-deploy\" command: ${iosDeployOutput.error.message}`,\n );\n }\n }\n\n return logger.success('Installed the app on the device.');\n}\n\nfunction bootSimulator(selectedSimulator: Device) {\n const simulatorFullName = formattedDeviceName(selectedSimulator);\n logger.info(`Launching ${simulatorFullName}`);\n\n child_process.spawnSync('xcrun', ['simctl', 'boot', selectedSimulator.udid]);\n}\n\nasync function getTargetPaths(\n buildSettings: string,\n scheme: string,\n target: string | undefined,\n) {\n const settings = JSON.parse(buildSettings);\n\n const targets = settings.map(\n ({target: settingsTarget}: any) => settingsTarget,\n );\n\n let selectedTarget = targets[0];\n\n if (target) {\n if (!targets.includes(target)) {\n logger.info(\n `Target ${chalk.bold(target)} not found for scheme ${chalk.bold(\n scheme,\n )}, automatically selected target ${chalk.bold(selectedTarget)}`,\n );\n } else {\n selectedTarget = target;\n }\n }\n\n // Find app in all building settings - look for WRAPPER_EXTENSION: 'app',\n\n const targetIndex = targets.indexOf(selectedTarget);\n\n const wrapperExtension =\n settings[targetIndex].buildSettings.WRAPPER_EXTENSION;\n\n if (wrapperExtension === 'app') {\n return {\n targetBuildDir: settings[targetIndex].buildSettings.TARGET_BUILD_DIR,\n executableFolderPath:\n settings[targetIndex].buildSettings.EXECUTABLE_FOLDER_PATH,\n };\n }\n\n return {};\n}\n\nasync function getBuildPath(\n xcodeProject: IOSProjectInfo,\n mode: string,\n buildOutput: string,\n scheme: string,\n target: string | undefined,\n isCatalyst: boolean = false,\n) {\n const buildSettings = child_process.execFileSync(\n 'xcodebuild',\n [\n xcodeProject.isWorkspace ? '-workspace' : '-project',\n xcodeProject.name,\n '-scheme',\n scheme,\n '-sdk',\n getPlatformName(buildOutput),\n '-configuration',\n mode,\n '-showBuildSettings',\n '-json',\n ],\n {encoding: 'utf8'},\n );\n\n const {targetBuildDir, executableFolderPath} = await getTargetPaths(\n buildSettings,\n scheme,\n target,\n );\n\n if (!targetBuildDir) {\n throw new CLIError('Failed to get the target build directory.');\n }\n\n if (!executableFolderPath) {\n throw new CLIError('Failed to get the app name.');\n }\n\n return `${targetBuildDir}${\n isCatalyst ? '-maccatalyst' : ''\n }/${executableFolderPath}`;\n}\n\nfunction getPlatformName(buildOutput: string) {\n // Xcode can sometimes escape `=` with a backslash or put the value in quotes\n const platformNameMatch = /export PLATFORM_NAME\\\\?=\"?(\\w+)\"?$/m.exec(\n buildOutput,\n );\n if (!platformNameMatch) {\n throw new CLIError(\n 'Couldn\\'t find \"PLATFORM_NAME\" variable in xcodebuild output. Please report this issue and run your project with Xcode instead.',\n );\n }\n return platformNameMatch[1];\n}\n\nfunction matchingDevice(\n devices: Array,\n deviceName: string | true | undefined,\n) {\n if (deviceName === true) {\n const firstIOSDevice = devices.find((d) => d.type === 'device')!;\n if (firstIOSDevice) {\n logger.info(\n `Using first available device named \"${chalk.bold(\n firstIOSDevice.name,\n )}\" due to lack of name supplied.`,\n );\n return firstIOSDevice;\n } else {\n logger.error('No iOS devices connected.');\n return undefined;\n }\n }\n const deviceByName = devices.find(\n (device) =>\n device.name === deviceName || formattedDeviceName(device) === deviceName,\n );\n if (!deviceByName) {\n logger.error(\n `Could not find a device named: \"${chalk.bold(\n String(deviceName),\n )}\". ${printFoundDevices(devices)}`,\n );\n }\n return deviceByName;\n}\n\nfunction formattedDeviceName(simulator: Device) {\n return simulator.version\n ? `${simulator.name} (${simulator.version})`\n : simulator.name;\n}\n\nfunction printFoundDevices(devices: Array) {\n return [\n 'Available devices:',\n ...devices.map((device) => ` - ${device.name} (${device.udid})`),\n ].join('\\n');\n}\n\nexport default {\n name: 'run-ios',\n description: 'builds your app and starts it on iOS simulator',\n func: runIOS,\n examples: [\n {\n desc: 'Run on a different simulator, e.g. iPhone SE (2nd generation)',\n cmd: 'npx react-native run-ios --simulator \"iPhone SE (2nd generation)\"',\n },\n {\n desc: \"Run on a connected device, e.g. Max's iPhone\",\n cmd: 'npx react-native run-ios --device \"Max\\'s iPhone\"',\n },\n {\n desc: 'Run on the AppleTV simulator',\n cmd: 'npx react-native run-ios --simulator \"Apple TV\" --scheme \"helloworld-tvOS\"',\n },\n ],\n options: [\n ...buildOptions,\n {\n name: '--no-packager',\n description: 'Do not launch packager while running the app',\n },\n {\n name: '--port ',\n default: process.env.RCT_METRO_PORT || 8081,\n parse: Number,\n },\n {\n name: '--terminal ',\n description:\n 'Launches the Metro Bundler in a new window using the specified terminal path.',\n default: getDefaultUserTerminal(),\n },\n {\n name: '--binary-path ',\n description:\n 'Path relative to project root where pre-built .app binary lives.',\n },\n {\n name: '--list-devices',\n description:\n 'List all available iOS devices and simulators and let you choose one to run the app. ',\n },\n {\n name: '--simulator ',\n description:\n 'Explicitly set the simulator to use. Optionally set the iOS version ' +\n 'between parentheses at the end to match an exact version: ' +\n '\"iPhone 15 (17.0)\"',\n },\n {\n name: '--device [string]', // here we're intentionally using [] over <> to make passed value optional to allow users to run only on physical devices\n description:\n 'Explicitly set the device to use by name. If the value is not provided,' +\n 'the app will run on the first available physical device.',\n },\n {\n name: '--udid ',\n description: 'Explicitly set the device to use by UDID',\n },\n ],\n};\n"],"mappings":"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"}