EAS build error ios/android on a monorepo

I’m working on Mac M1
Expo sdk: “^41.0.0”
React-Native : https://github.com/expo/react-native/archive/sdk-41.0.0.tar.gz
eas-cli/0.22.0 darwin-x64 node-v15.14.0
expo-cli: “4.8.1”

I’m trying to make a build with eas build but on android, I have this error on run gradlew step:

[stderr] FAILURE: Build completed with 2 failures.
[stderr] 1: Task failed with an exception.
[stderr] -----------
[stderr] * Where:
[stderr] Build file '/build/workingdir/build/packages/mobile/android/app/build.gradle' line: 87
[stderr] * What went wrong:
[stderr] A problem occurred evaluating project ':app'.
[stderr] > Could not read script '/build/workingdir/build/packages/mobile/node_modules/expo-updates/scripts/create-manifest-android.gradle' as it does not exist.
[stderr] * Try:
[stderr] Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
[stderr] ==============================================================================
[stderr] 2: Task failed with an exception.
[stderr] -----------
[stderr] * What went wrong:
[stderr] A problem occurred configuring project ':app'.
[stderr] > compileSdkVersion is not specified. Please add it to build.gradle

and on ios this error on the pod install step:

Installing pods
Installing unimodules:
 expo-blur@9.0.3 from ../node_modules/expo-blur/ios
 expo-constants@10.1.3 from ../node_modules/expo-constants/ios
 expo-crypto@9.1.0 from ../node_modules/expo-crypto/ios
 expo-device@3.2.0 from ../node_modules/expo-device/ios
 expo-font@9.1.0 from ../node_modules/expo-font/ios
 expo-linear-gradient@9.1.0 from ../node_modules/expo-linear-gradient/ios
 expo-localization@10.1.0 from ../node_modules/expo-localization/ios
 expo-splash-screen@0.11.2 from ../node_modules/expo-app-loading/node_modules/expo-splash-screen/ios
 expo-web-browser@9.1.0 from ../node_modules/expo-web-browser/ios
 unimodules-app-loader@2.1.0 from ../node_modules/unimodules-app-loader/ios
 unimodules-core@7.1.1 from ../node_modules/@unimodules/core/ios
 unimodules-react-native-adapter@6.2.2 from ../node_modules/@unimodules/react-native-adapter/ios
 unimodules-task-manager-interface@6.1.0 from ../node_modules/unimodules-task-manager-interface/ios
Auto-linking React Native modules for target `greengot`: RNCAsyncStorage, RNCMaskedView, RNCPicker, RNGestureHandler, RNReanimated, RNSVG, RNScreens, lottie-ios, lottie-react-native, and react-native-safe-area-context
Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for `Folly` from `../node_modules/react-native/third-party-podspecs/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/`
[!] Unable to find a specification for `UMFontInterface` depended upon by `UMReactNativeAdapter`
You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.
[stderr] [!] `<PBXResourcesBuildPhase UUID=`13B07F8E1A680F5B00A75B9A`>` attempted to initialize an object with an unknown UUID. `30D024BF57B54856B3D80B20` for attribute: `files`. This can be the result of a merge and the unknown UUID is being discarded.

I’m on a monorepo so like the documentation, I had try to symlink my modules with expo-yarn-workspaces like this:

 "expo-yarn-workspaces": {
    "symlinks": [
      "@unimodules/core",
      "@unimodules/react-native-adapter",
      "expo-app-loading",
      "expo-blur",
      "expo-constants",
      "expo-crypto",
      "expo-device",
      "expo-font",
      "expo-linear-gradient",
      "expo-localization",
      "expo-status-bar",
      "expo-web-browser",
      "unimodules-app-loader",
      "unimodules-task-manager-interface"
    ]
  },  

when I remove this symlink, my android build failed :

[stderr] FAILURE: Build completed with 2 failures.
[stderr] 1: Task failed with an exception.
[stderr] -----------
[stderr] * Where:
[stderr] Build file '/build/workingdir/build/packages/mobile/android/app/build.gradle' line: 86
[stderr] * What went wrong:
[stderr] A problem occurred evaluating project ':app'.
[stderr] > Could not read script '/build/workingdir/build/packages/mobile/node_modules/expo-constants/scripts/get-app-config-android.gradle' as it does not exist.
[stderr] * Try:
[stderr] Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
[stderr] ==============================================================================
[stderr] 2: Task failed with an exception.
[stderr] -----------
[stderr] * What went wrong:
[stderr] A problem occurred configuring project ':app'.
[stderr] > compileSdkVersion is not specified. Please add it to build.gradle
[stderr] * Try:
[stderr] Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
[stderr] ==============================================================================
[stderr] * Get more help at https://help.gradle.org
[stderr] BUILD FAILED in 28s
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.8/userguide/command_line_interface.html#sec:command_line_warnings
Error: Gradle build failed with unknown error. Please see logs for the "Run gradlew" phase.  

and failed on ios too (on fastlane step) …

❌  (ios/greengot/AppDelegate.h:2:9)

  1 | #import <Foundation/Foundation.h>
> 2 | #import <EXUpdates/EXUpdatesAppController.h>
    |         ^ 'EXUpdates/EXUpdatesAppController.h' file not found
  3 | #import <React/RCTBridgeDelegate.h>
  4 | #import <UIKit/UIKit.h>
  5 | 
› Compiling greengot » main.m

❌  (ios/greengot/AppDelegate.h:2:9)

  1 | #import <Foundation/Foundation.h>
> 2 | #import <EXUpdates/EXUpdatesAppController.h>
    |         ^ 'EXUpdates/EXUpdatesAppController.h' file not found
  3 | #import <React/RCTBridgeDelegate.h>
  4 | #import <UIKit/UIKit.h>
  5 | 
⚠️  Pods/boost-for-react-native: iOS@8.0 deployment version mismatch, expected >= 9.0 <= 14.4.99
▸ ** ARCHIVE FAILED **
▸ The following build commands failed:
▸ 	CompileC /Users/expo/Library/Developer/Xcode/DerivedData/greengot-brxnltnndsuntbcllfgoqfdowlsc/Build/Intermediates.noindex/ArchiveIntermediates/greengot/IntermediateBuildFilesPath/greengot.build/Release-iphoneos/greengot.build/Objects-normal/arm64/main.o /Users/expo/workingdir/build/packages/mobile/ios/greengot/main.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
▸ (1 failure)
** ARCHIVE FAILED **

did you encounter these errors?
You know how to fix these mistakes?

Is expo-updates a dependency of yours? It’s not sym linked, and both of your errors point to files from that package as missing

As for the other Android error, “compileSdkVersion is not specified. Please add it to build.gradle”, if you just follow the message and edit your project, you should be good to go

Thank you for your response @charliecruzan but expo-updates is not in my dependency, and I’m on a managed app, so I normally don’t need to specify the compileSdkVersion ?

Can you share a link to your build logs?

@charliecruzan So I have updated my symlink in my package.json :slight_smile:

"expo-yarn-workspaces": {
    "symlinks": [
      "@unimodules/core",
      "@unimodules/react-native-adapter",
      "expo-application",
      "expo-asset",
      "expo-constants",
      "expo-error-recovery",
      "expo-font",
      "expo-image-loader",
      "expo-keep-awake",
      "expo-modules-core",
      "expo-splash-screen",
      "expo-structured-headers",
      "expo-updates-interface",
      "expo-updates",
      "unimodules-app-loader",
      "unimodules-task-manager-interface"
    ]
  },

and here is my builds log with a local build command:

android: https://gist.github.com/DonDes17/32dc453ab77451e54d46e0bbe163eb09
ios: https://gist.github.com/DonDes17/465fd818a14359f4fb3f0a26c35bebd9

For ios the local failed a the credentials step but not with the “normal” command …
Here is the last error I have on my ios build at the install pod step:

i have a similar problem