From ce1e960b0b4a663d928dafd6069800f8965ec6ce Mon Sep 17 00:00:00 2001 From: Aziz Becha Date: Wed, 18 Feb 2026 02:05:53 +0100 Subject: [PATCH] fix: resolve on "BUILD SUCCEEDED" stdout in buildProject.js --- .../src/commands/buildCommand/buildProject.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/cli-platform-apple/src/commands/buildCommand/buildProject.ts b/packages/cli-platform-apple/src/commands/buildCommand/buildProject.ts index 5f6f2b547..7eaa175fa 100644 --- a/packages/cli-platform-apple/src/commands/buildCommand/buildProject.ts +++ b/packages/cli-platform-apple/src/commands/buildCommand/buildProject.ts @@ -110,6 +110,7 @@ export function buildProject( getProcessOptions(args), ); let buildOutput = ''; + let buildResolved = false; buildProcess.stdout.on('data', (data: Buffer) => { const stringData = data.toString(); buildOutput += stringData; @@ -124,8 +125,22 @@ export function buildProject( ); } } + // Workaround: xcodebuild on Xcode 26.2+ may hang after build succeeds. + // Detect BUILD SUCCEEDED and resolve immediately instead of waiting for close. + if (!buildResolved && stringData.includes('BUILD SUCCEEDED')) { + buildResolved = true; + if (xcodebuildOutputFormatter) { + xcodebuildOutputFormatter.stdin.end(); + } else { + loader.stop(); + } + logger.success('Successfully built the app'); + buildProcess.kill(); + resolve(buildOutput); + } }); buildProcess.on('close', (code: number) => { + if (buildResolved) return; if (xcodebuildOutputFormatter) { xcodebuildOutputFormatter.stdin.end(); } else {