My ios eas build is failing and it works perfectly on my iPhone

Before posting your question, make sure you’ve read the documentation for both EAS Build & Submit.

If your Android or iOS build is failing- make sure you do your own research on the error message first before posting (this will give you a better understanding, and you might even find that someone else has already solved the issue!) It is not up to the Expo team to debug your project or build.

In your post, please share:

  • Whether you are bare or managed workflow. - manage workflow
  • Your eas-cli version - eas-cli/3.8.1 darwin-arm64 node-v19.4.0
  • What you have tried so far. - I tried. pod disintegrate and pod install
    I also tried deleting node_modules and then running yarn.

The error I am getting is: + [[ ! -f /Users/expo/Library/Developer/Xcode/DerivedData/moodphone-affnmoxhgdsoanfxiqydcftzauhs/Build/Intermediates.noindex/ArchiveIntermediates/moodphone/BuildProductsPath/Release-iphoneos/moodphone.app/main.jsbundle ]]

Do I need to create an expo user? It is looking in the home directory of the expo user, which doesn’t exist. Also, I tried putting a copy of main.jsbundle in my ios directory but I get the same error. I have been developing my app for weeks and this is the first time I haven’t been able to build the app. Please help.

  • echo ‘error: File /Users/expo/Library/Developer/Xcode/DerivedData/moodphone-affnmoxhgdsoanfxiqydcftzauhs/Build/Intermediates.noindex/ArchiveIntermediates/moodphone/BuildProductsPath/Release-iphoneos/moodphone.app/main.jsbundle does not exist. This must be a bug with React Native, please report it here: Issues · facebook/react-native · GitHub

error: File /Users/expo/Library/Developer/Xcode/DerivedData/moodphone-affnmoxhgdsoanfxiqydcftzauhs/Build/Intermediates.noindex/ArchiveIntermediates/moodphone/BuildProductsPath/Release-iphoneos/moodphone.app/main.jsbundle does not exist. This must be a bug with React Native, please report it here: Issues · facebook/react-native · GitHub

The app runs perfectly on my iPhone.

  • exit 2

Hi @jackwidman

The above two statements contradict each other. If you have an ios directory it means you’re in the Bare workflow.

No, this is a path on the build server, not your local machine. You do not need to create an expo user on your local machine.

Do you mean it runs perfectly in the Expo Go app on your iPhone?

I suspect that you have run npx expo run:ios or npx expo prebuild in the past. These commands generate the native ios and android projects which effectively switches you to the bare workflow.

If the app works correctly in Expo Go, then you can switch back to the managed workflow by reverting the changes made by npx expo prebuild. The main thing would be to delete the ios and android directories. The other changes are less important. See expo.fyi/prebuild-cleanup for more info.

After deleting the ios and android directories, you might also want to run npx expo-doctor to see if it warns about any issues.

Thank you for all the clarifications. I now better understand what managed and unmanaged mean. When I said the app works perfectly, I meant both on the expo app on my iPhone and after I installed it from Testflight. I will delete the ios and android directories and read the fyi/prebuild-cleanup and then I will try an eas build -p ios again. I will let you know how it goes. Thanks again.

I deleted ios and android and ran npx expo-doctor and made all the corrections. When I ran eas build -p ios, I once again got the following error

Error! Failed to open file: /Users/expo/Library/Developer/Xcode/DerivedData/moodphone-affnmoxhgdsoanfxiqydcftzauhs/Build/Intermediates.noindex/ArchiveIntermediates/moodphone/BuildProductsPath/Release-iphoneos/main.jsbundle

  • [[ ‘’ == true ]]

  • BUNDLE_FILE=/Users/expo/Library/Developer/Xcode/DerivedData/moodphone-affnmoxhgdsoanfxiqydcftzauhs/Build/Intermediates.noindex/ArchiveIntermediates/moodphone/BuildProductsPath/Release-iphoneos/moodphone.app/main.jsbundle

  • [[ false != true ]]

  • [[ ! -f /Users/expo/Library/Developer/Xcode/DerivedData/moodphone-affnmoxhgdsoanfxiqydcftzauhs/Build/Intermediates.noindex/ArchiveIntermediates/moodphone/BuildProductsPath/Release-iphoneos/moodphone.app/main.jsbundle ]]

  • echo ‘error: File /Users/expo/Library/Developer/Xcode/DerivedData/moodphone-affnmoxhgdsoanfxiqydcftzauhs/Build/Intermediates.noindex/ArchiveIntermediates/moodphone/BuildProductsPath/Release-iphoneos/moodphone.app/main.jsbundle does not exist. This must be a bug with React Native, please report it here: Issues · facebook/react-native · GitHub

error: File /Users/expo/Library/Developer/Xcode/DerivedData/moodphone-affnmoxhgdsoanfxiqydcftzauhs/Build/Intermediates.noindex/ArchiveIntermediates/moodphone/BuildProductsPath/Release-iphoneos/moodphone.app/main.jsbundle does not exist. This must be a bug with React Native, please report it here: Issues · facebook/react-native · GitHub

I just found this in the logs:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

I removed a bunch of unused code and the app ran in the expo app on my phone much faster. I will no rerun eas build -p ios.

It has been running 40 minutes. Is that very unusual? Is there a timeout limit? I am seeing the following warnings

ld: duplicate method '+moduleName' in
┌─[category]: ExpoBridgeModule-23edf4d884a5087294c578092b1afa20.o ExpoModulesCore/libExpoModulesCore.a
└─[class]: ExpoBridgeModule-7a1d24427b065c61dceef7f990c0c6f9.o ExpoModulesCore/libExpoModulesCore.a

47

⚠️  ld: method '+UIStatusBarAnimation:' in category from /Users/expo/Library/Developer/Xcode/DerivedData/moodphone-affnmoxhgdsoanfxiqydcftzauhs/Build/Intermediates.noindex/ArchiveIntermediates/moodphone/BuildProductsPath/Release-iphoneos/React-CoreModules/libReact-CoreModules.a(RCTStatusBarManager.o) conflicts with same method from another category

48

› Generating debug moodphone » moodphone.app.dSYM

49

› Executing moodphone » Bundle React Native code and images

the transform cache was reset.

Any ideas?

OK. I am a bit confused, though. Do you mean that a version that you were previously able to build and upload to TestFlight works OK, but now the latest version won’t build?

OK, so it looks like nodejs is running out of memory during the build process for some reason.

Yes there is. From the pricing page:

45 minutes for Free tier
2 hours for priority builds

That looks problematic, but I’m not sure.

If you create a new app and install all of your dependencies, but do not change the default JavaScript code, does that build? Also, do you get anything about duplicate methods in the logs?

So I finally got it to build by reverting to an older commit, when it did build, and then putting my code back in little by little.

1 Like

Great! I’m glad you got it working.

That’s basically the “manual debugging” approach