iOS build failing, but Android build works

My iOS build is failing with EAS, but the Android build works.

Details:
Expo 43
eas-cli 0.38.3
Managed workflow.
Build link: Build Details — 599cfda9-3f66-4eba-873b-e833f5fb814c — mobile — Expo

Also of interest is that we are running in a monorepo. The Expo project is called “mobile” and is hanging directly off the root project directory. I have followed the monorepo instructions for Expo, and have been able to get the Android build to work successfully.

When I do “eas build -p ios --local” it works.

However, when I do “eas build -p ios” to build on the EAS servers, I get the following errors:

Installing pods
[stderr] ⚠️  Cannot resolve the path to "react-google-maps" package.
[stderr] ⚠️  Cannot resolve the path to "react-google-maps" package.
Using Expo modules
Auto-linking React Native modules for target `Gazelle`: RNCAsyncStorage, RNCMaskedView, RNDateTimePicker, RNGestureHandler, RNReanimated, RNSVG, RNScreens, react-native-maps, react-native-safe-area-context, react-native-view-shot, and react-native-webview
Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for `RCT-Folly` from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
[!] No podspec found for `react-native-google-maps` in `../../node_modules/react-native-maps`
[stderr] [!] `<PBXResourcesBuildPhase UUID=`13B07F8E1A680F5B00A75B9A`>` attempted to initialize an object with an unknown UUID. `DB6C560BDC814A4CAFB17B49` for attribute: `files`. This can be the result of a merge and the unknown UUID is being discarded.
pod exited with non-zero code: 1

I can’t figure out how to get past this. Any thoughts?

how is react-native-maps installed differently in your project from async-storage, masked-view, etc? are you able to share a minimal reproducible example of your issue?

I don’t see any particular way that react-native-maps is installed differently. I installed it with “expo install” same as the others. I’m trying to create a minimal reproducible example, might take a bit to get it set up. :slight_smile:

Thanks for the suggestion to create a minimal reproducible example.

However, I am not able to reproduce it in a stripped-down fresh repo. Which tells me there’s something in my original setup that’s throwing this off, but I can’t for the life of me figure out what it is.

When I do an EAS build (only on the EAS servers, it works fine if I do a --local build), I get this:

Installing pods
[stderr] ⚠️  Cannot resolve the path to "react-google-maps" package.
Using Expo modules
Auto-linking React Native modules for target `Gazelle`: RNCAsyncStorage, RNCMaskedView, RNDateTimePicker, RNGestureHandler, RNReanimated, RNSVG, RNScreens, react-native-maps, react-native-safe-area-context, react-native-view-shot, and react-native-webview
Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for `RCT-Folly` from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
[!] No podspec found for `react-native-google-maps` in `../../node_modules/react-native-maps`
[stderr] [!] `<PBXResourcesBuildPhase UUID=`13B07F8E1A680F5B00A75B9A`>` attempted to initialize an object with an unknown UUID. `88548FDE695B4EB385F8E91D` for attribute: `files`. This can be the result of a merge and the unknown UUID is being discarded.
pod exited with non-zero code: 1

But when I do an EAS build of my stripped down example, I get this:

Installing pods
Using Expo modules
Auto-linking React Native modules for target `Gazelle`: RNCAsyncStorage, RNCMaskedView, RNDateTimePicker, RNGestureHandler, RNReanimated, RNSVG, RNScreens, react-native-maps, react-native-safe-area-context, react-native-view-shot, and react-native-webview
Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for `RCT-Folly` from `../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`
Fetching podspec for `glog` from `../../node_modules/react-native/third-party-podspecs/glog.podspec`
Adding spec repo `trunk` with CDN `https://cdn.cocoapods.org/`

I think the problem boils down to line 2 of the first example, “Cannot resolve path to react-google-maps”. Because notice later it says “No podspec found for “react-native-google-maps” in “…/…/node_modules/react-native-maps””. The “…/…” is incorrect. It should be “…/”. I have verified that the react-native-google-maps.podspec DOES exist in “…/node_modules/react-google-maps”.

I can’t for the life of me figure out why it is not able to resolve the path for react-google-maps. Anyone have any tips on what I could try or where I could look?

likely the difference you were encountering was with the expo-cli version. you can always set that on your build profile to the same version that you’re using locally. i’ll be sure to add some information about this to the troubleshooting guide.

expo-cli@5.0.2 should work better with react-native-maps in monorepos

Thanks, I’ll try that! How do I set the expo-cli version in the build profile? In eas.json, I see a place for the eas-cli version:

{
  "cli": {
    "version": ">= 0.34.0"
  },
  ...
}

But I don’t see a place for the expo-cli version.

expo-cli@5.0.2 is the default on eas build now, but for the future - this explains how to set build tool versions and you can see a list of available fields in the schema

Thank you. This resolved the issue of the build not working properly.

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.