expo / expo/eas-cli

iOS EAS Build Fails: Ruby/ActiveSupport version mismatch causes "undefined method 'deprecator'" during Pod install

Open
#2,995 0 comments 0 reactions 0 assignees View on GitHub
needs review
Dominant language
TypeScript
Stars
1.4k
Forks
236
Avg merge
3d 1h
Merged PRs (30d)
91

Description

### Build/Submit details page URL

_No response_

### Summary

iOS builds on EAS cloud runners fail consistently during the “Install Pods” step due to a mismatch between Ruby and the ActiveSupport gem. It throws a “NoMethodError” before any app code runs. This appears to be a misconfiguration in the Expo macOS builder environment.

I'm reporting an issue where iOS builds fail on EAS due to a version mismatch between Ruby and a library (ActiveSupport) that's being used in Expo's cloud build environment. This issue happens before my project is even built — during the CocoaPods install step.

### Managed or bare?

Managed (prebuild used, no custom native code). relying on Expo’s managed workflow for updates, config, and build logic

### Environment

expo: 50.0.20
expo-modules-core: 2.0.6
expo-updates: 0.22.0
Firebase: using expo-firebase-core
eas-cli: latest (and tested on multiple versions)
node: 18.x
macOS: not used locally (cloud build only)

- EAS Platform: iOS
- Using EAS Build cloud runners (not building locally)
- Node: 18.x
- macOS not used locally — build fails on Expo's macOS runners
- No custom native code outside of Expo/Firebase modules
- Project builds fine locally using npx expo prebuild --clean

### Error output

Expected behavior:
The build should install CocoaPods and complete successfully. This is expected with valid project configuration and compatible packages.

Actual output:
The build fails before Pod install completes with the following error:

undefined method `deprecator' for ActiveSupport:Module (NoMethodError)

Full trace:
/Users/expo/.gems/arm64/gems/activesupport-7.1.3.4/lib/active_support/core_ext/array/conversions.rb:108
...
/opt/homebrew/Cellar/ruby@2.7/2.7.8_1/lib/ruby/2.7.0/

Initialize an Expo project using SDK 50
Install expo-modules-core, expo-updates, and Firebase
Run:
eas build --platform ios --clear-cache
Observe failure during the “Installing CocoaPods dependencies” step

### Reproducible demo or steps to reproduce from a blank project

This can be reproduced in any Expo SDK 50 project using the stable Firebase and Updates modules. Build fails before app code is evaluated, so any blank `expo init` project with those modules will trigger it.

Sample failing build:
https://expo.dev/accounts/clubapp/projects/jeep-club-app/builds/81a652dc-c591-449a-8fb0-3170c2628753

1. Create a clean Expo SDK 50 project
2. Add `expo-modules-core`, `expo-updates`, and Firebase
3. Run `npx expo prebuild --clean`
4. Trigger a cloud build: `eas build --platform ios --clear-cache`
5. Observe build failure during Pod install

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.