expo icon indicating copy to clipboard operation
expo copied to clipboard

Dev Client: No native splash screen registered for given view controller. Call 'SplashScreen.show' for given view controller first.

Open elitenas opened this issue 2 years ago • 21 comments

Minimal reproducible example

https://github.com/haibert/SplashScreenIssue

Summary

On Dev Client, we get the following warning on start up:

No native splash screen registered for given view controller. Call 'SplashScreen.show' for given view controller first.

The application stays stuck on splash screen unless the await SplashScreen.hideAsync(); is called twice.

This doesn't happen on an actual build but just happens on dev client.

Environment

expo-env-info 1.0.5 environment info: System: OS: macOS 13.3.1 Shell: 5.9 - /bin/zsh Binaries: Node: 16.18.1 - ~/.nvm/versions/node/v16.18.1/bin/node Yarn: 1.22.10 - /usr/local/bin/yarn npm: 8.19.2 - ~/.nvm/versions/node/v16.18.1/bin/npm Watchman: 2023.02.13.00 - /usr/local/bin/watchman Managers: CocoaPods: 1.11.3 - /usr/local/bin/pod SDKs: iOS SDK: Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4 IDEs: Android Studio: 2021.2 AI-212.5712.43.2112.8609683 Xcode: 14.3/14E222b - /usr/bin/xcodebuild npmPackages: @expo/webpack-config: ^18.0.1 => 18.0.1 expo: ~48.0.11 => 48.0.11 react: 18.2.0 => 18.2.0 react-dom: 18.2.0 => 18.2.0 react-native: 0.71.7 => 0.71.7 react-native-web: ~0.18.12 => 0.18.12 npmGlobalPackages: eas-cli: 3.7.2 expo-cli: 6.1.0 Expo Workflow: managed

elitenas avatar May 01 '23 01:05 elitenas

hi there! the minimal reproducible example you provided is a sdk 45 project which is inconsistent with the expo-env-info information you mentioned. could you double check for the repro?

Kudo avatar May 02 '23 05:05 Kudo

I have that too, but only during the first launch of the client on particular device - when bottom sheet appears. I just press reload and the problem never comes back on that device.

MacPiston avatar May 29 '23 14:05 MacPiston

Also an issue in production build, expo 48, managed workflow

krisgerhard avatar Jun 06 '23 11:06 krisgerhard

Also for me..

maoryadin avatar Jun 25 '23 13:06 maoryadin

Same problem too..I think this is nothing to do with splash screen though.

SophieJung7 avatar Aug 11 '23 05:08 SophieJung7

Have this issue on Expo SDK 48 aswell

federicogomezlara avatar Aug 14 '23 14:08 federicogomezlara

@Kudo I have this issue in production ios app, in "expo": "^49.0.9", "expo-splash-screen": "~0.20.5",

No native splash screen registered for given view controller. Call 'SplashScreen.show' for given view controller first.

SohelIslamImran avatar Sep 28 '23 00:09 SohelIslamImran

Seeing this error when bottom sheet is active. Bottom sheet can be dismissed but splashscreen stays visible. [email protected] and [email protected]

ph101pp avatar Oct 10 '23 03:10 ph101pp

Have the same warning with "expo-splash-screen": "^0.22.0" and Expo SDK 49 -- very cryptic warning message too.

uzaymacar avatar Oct 30 '23 14:10 uzaymacar

The same for me with SDK 49 and splash screen 0.22 in IOS production app. Any updates on this?

takacskalman avatar Nov 07 '23 20:11 takacskalman

This issue is stale because it has been open for 90 days with no activity. If there is no activity in the next 7 days, the issue will be closed.

github-actions[bot] avatar Feb 05 '24 21:02 github-actions[bot]

Same with SDK 50.

olarcher avatar Feb 05 '24 23:02 olarcher

I am having the same issue with Expo 50.0.6 and [email protected]

brian-pinwheel avatar Feb 22 '24 14:02 brian-pinwheel

saaaame here, so many cases of it in our app image

zackify avatar Feb 27 '24 16:02 zackify

this is one of the top events being sent to our sentry

Screenshot 2024-03-06 at 3 28 18 PM

pfcodes avatar Mar 06 '24 23:03 pfcodes

Just in case it helps, in our case we've found out that we were calling hideAsync() multiple times as opposed to a single time during app startup (when the app is ready).

const onLayoutRootView = useCallback(async () => {
    if (isAppReady) {
        await ExpoSplashScreen.hideAsync()
    }
}, [isAppReady])

return (
    <SafeAreaProvider onLayout={onLayoutRootView}>
        // Your app
    </SafeAreaProvider>
)

uzaymacar avatar Mar 10 '24 13:03 uzaymacar

Started happening with Expo 51, only calling hideAsync() once.

cjones26 avatar May 14 '24 12:05 cjones26

I'm seeing this on a brand new project using expo-router (as expo-splash-screen is a dependency). I'm not calling any of the splash screen functions, it just happens.

skdrew avatar Jul 10 '24 15:07 skdrew