Detached app hanging at LaunchScreen.

#1

Up until a couple days ago, we had no issues updating the app with OTA updates through expo publish to a release channel.

However, we started experiencing issues with updating our app with new updates. It seems to only be affecting iOS devices older than iPhone 7/7 Plus. Android devices update just fine with new OTA updates. It’s just the older iOS devices. The current build that is live in the App Store has a cached bundle version that seems to work, but as soon as the user tries to reload the app Updates.reload() to load the new update, it hangs at the launch screen ( we currently have just a static logo screen ).

We also can’t even get a cached bundle/manifest to load when installing ‘App Store’ scheme to affected devices direct from Xcode. It just loads the app, then hangs at the launch screen. With no error messages in the Xcode console ( enabled OS_ACTIVITY_MODE for this build to see output from app ), or on screen.

Here’s related Xcode logs for reference ( - some info removed - ):

// Resource-related Xcode Logs
<timestamp> <app-name> EXManifestResource: Standalone manifest remote url is http://exp.host/<redacted> (exp://exp.host/<redacted>)
<timestamp> <app-name> EXCachedResource: Using cached resource at <path-on-device-to-app-container>/Library/Caches/Manifests/shell-app-manifest.json...
<timestamp> <app-name> EXCachedResource: Using cached resource at <path-on-device-to-app-container>/Library/Caches/EXCachedResource/32.0.0-manifestPublicKey.pem...
<timestamp> <app-name> Standalone bundle remote url is exp://exp.host/<redacted>
<timestamp> <app-name> EXCachedResource: Using cached resource at <bundle-path>/shell-app.bundle...
<timestamp> <app-name> EXManifestResource: Standalone manifest remote url is http://exp.host/<redacted> (exp://exp.host/<redacted>)
<timestamp> <app-name> EXCachedResource: Not using cache for shell-app-manifest
<timestamp> <app-name> EXCachedResource: Caching resource to <path-on-device-to-app-container>/Library/Caches/EXCachedResource/32.0.0-manifestPublicKey.pem...
<timestamp> <app-name> EXCachedResource: Using cached resource at <path-on-device-to-app-container>/Library/Caches/EXCachedResource/32.0.0-manifestPublicKey.pem...
<timestamp> <app-name> EXCachedResource: Caching resource to <path-on-device-to-app-container>/Library/Caches/EXCachedResource/32.0.0-manifestPublicKey.pem...
<timestamp> <app-name> Standalone bundle remote url is exp://exp.host/<redacted>
<timestamp> <app-name> EXCachedResource: Using cached resource at <bundle-path>/shell-app.bundle...
<timestamp> <app-name> EXManifestResource: Caching manifest to <path-on-device-to-app-container>/Library/Caches/Manifests/shell-app-manifest.json...

We are using AppLoading API, but i don’t believe it’s the cause since it is not affecting all devices.

Any insight would help immensely.
I can provide any other info, if needed.

#2

Disregard this. The problem ended up being a data race and infinite loop situation with how we were waiting for rehydration from redux-persist.

#3

Happy to hear you got it resolved!