Expo publish hangs for iOS build after upgrading to V33

We have a detached ExpoKit RN app that CircleCI can build successfully for iOS and Android, using Expo SDK v32. We are trying to upgrade our app to Expo SDK 33, since Expo recommends that for Android 64-bit support. However, after upgrading to v33, the iOS build hangs each time at expo publish. Our config.yml snippet is:

yarn global add expo-cli
export PATH="$PATH:$(yarn global bin)" 
expo login -u "$EXPO_USERNAME" -p "$EXPO_PASSWORD"
expo publish

and the CircleCI build output is:

[…]
success Installed “expo-cli@2.21.2” with binaries:
- expo
- expo-cli
:sparkles: Done in 97.53s.

Success. You are now logged in as audere.
^D^DUnable to find an existing Expo CLI instance for this directory, starting a new one...
Starting Metro Bundler on port 19001.
Tunnel ready.
Publishing to channel 'default'...
Building iOS bundle
Too long with no output (exceeded 10m0s)

Here are the various things we’ve tried to fix this hang:

  1. Use xcode 10.2.1 image instead of xcode 10.1.0
  2. Use xcode 11.0.0 image instead of xcode 10.1.0
  3. Use previous versions of expo-cli such as 2.19.4
  4. –max-workers 2
  5. export NODE_OPTIONS="–max-old-space-size=4096"
  6. expo optimize assets

Running expo publish on my local MacBook Pro works without any problem.
CircleCI running expo publish during the build for Android (which uses circleci/android:api-28-node image) works without any problem.
The iOS build using the same CircleCI environment running expo publish in Expo SDK 32 branch works without any problem.

Has anyone else encountered this problem? We have no clue why expo publish hangs for the iOS build only, and only with Expo SDK v33.

Cross-posted this question to the CircleCI forums.

2 Likes

I can neither run expo publish nor exp publish on CircleCI or my local machine after upgrade to SDK33. exp just hangs forever, the new expo-cli immediately crashes because one (several, actually) of our package.json dependencies have GitHub repo/branch coordinates instead of semver, and this is apparently not supported, though the hard crash with Error: Invalid comparator is not the most clear documentation of allowed package.json dependency version models I might have hoped for. Advice or commiseration is welcome. Cheers!

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