Home › Build error fixes › iOS / Xcode

A build script phase failed (often the JS bundle step)

iOS / Xcode · last reviewed 2026-11-10

The error looks like this

Command PhaseScriptExecution failed with a nonzero exit code

Why it happens

Xcode cannot find node, or the Metro bundle step crashed. The real error is a few lines ABOVE this one.

How to fix it

  1. Scroll up in the log for the first "error:" line.
  2. Create ios/.xcode.env.local with: export NODE_BINARY=$(command -v node)
  3. Test the bundle manually: npx react-native bundle --platform ios --dev false --entry-file index.js --bundle-output /tmp/main.jsbundle

Not sure this is your error? Let ReleaseMedic read the whole log

Build logs are long and the last line is rarely the real cause. ReleaseMedic finds the first real error, explains it and gives the steps — free, and the log never leaves your computer.

$ npx releasemedic log build.log

Or pipe a build straight in: cd android && ./gradlew bundleRelease 2>&1 | npx releasemedic log -

Catch it before you build

Most release errors come from project settings you can check in seconds — signing, SDK levels, privacy manifests, permissions, push and login setup.

$ npx releasemedic

Related iOS / Xcode errors