Expo publish for detached ExpoKit SDK 33 app hangs on CircleCI

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 10.1.0
  2. Use xcode 11.0.0 image instead of 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.

1 Like

For others who encounter this, the fix was to install watchman on circle ci and to clear the cache before running expo publish: