expo: Bare workflow app stuck on splash screen when expo-updates is enabled

We made the switch to the bare workflow by ejecting out of the managed flow. While trying to setup OTA updates, we followed steps in the documentation - https://github.com/expo/expo/tree/master/packages/expo-updates, and have everything configured.

However, when we try running a release build for iOS, the app gets stuck on the splash screen each time EXUpdatesEnabled is turned on. The logs don’t show any error

Things we’ve tried:

  • Running expo publish --release-channel channel first to bundle and upload assets to Expo’s host. Doing this fills in the right value for EXUpdatesURL using the exp.host URL for the project. However the app gets stuck on the Splash screen when run.
  • Running expo export and then hosting the dist/ folder on a S3 bucket serving static files. Also gets stuck on the Splash screen.
  • Setting EXUpdatesEnabled to false, app launches as usual. When set back to true, app gets stuck on the Splash screen.
  • Cleaned build folder and tried a fresh build. Same error.

Expo version is 37.0.7, Expo-cli version is 3.17.24. Debug builds run fine.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 1
  • Comments: 15 (5 by maintainers)

Most upvoted comments

@IsaacWIvins sorry to hear that, this is the first release of expo updates and splash screen and we are working through some initial issues still. hopefully it’ll be sorted out for everyone soon.

We had to use react-native-splash-screen in the mean time since this is broken. To be honest the expo-constants, expo-splash-screen, and expo-updates docs have been no help at all for the Bare Workflow

Did some more digging. This happens when both EXUpdatesRuntimeVersion and EXUpdatesSDKVersion are present in the Expo.plist file.

Only setting EXUpdatesSDKVersion or EXUpdatesRuntimeVersion works smoothly.

The docs do say - (exactly one of sdkVersion or runtimeVersion is required), but we took this to mean setting at least one of those values. Maybe rewording this to something like (exactly one of sdkVersion or runtimeVersion should be set)

To reproduce, run:

  • expo init -t bare-minimum sampleexpoupdatestest
  • Update ios/sampleexpoupdatestest/Supporting/Expo.plist to add a EXUpdatesRuntimeVersion value
  • Run expo publish | expo export. This automatically sets a value for EXUpdatesSDKVersion in Expo.plist as well
  • Try creating and running a release build from Xcode, app stays stuck on the loading or splash screen.