expo: Expo iOS app stuck on splash screen
Summary
Hello,
I am developing an application which runs fine in Expo client on a simulator and Android production builds without errors or warnings. When I build a .app file, which is installable on a simulator but as soon as I run it, it gets stuck on a splash screen.
I tried to delete node modules and installed fresh node modules but still i’m facing the same issue.
In system logs I found assertion failed: 20G95 18A8394: libxpc.dylib + 51172 [5B766255-3DAE-3096-A090-3974BE256194]: 0x7d
This issue is only happening in iOS only in .app file, When I run app in expo client or even when I run on production mode using expo start --no-dev --minify it’s working fine.
Managed or bare workflow? If you have ios/ or android/ directories in your project, the answer is bare!
managed
What platform(s) does this occur on?
iOS
SDK Version (managed workflow only)
44.0.4
Environment
Expo CLI 5.0.3 environment info: System: OS: macOS 11.5.2 Shell: 5.8 - /bin/zsh Binaries: Node: 14.17.4 - /usr/local/bin/node Yarn: 1.22.11 - /usr/local/bin/yarn npm: 6.14.14 - /usr/local/bin/npm Managers: CocoaPods: 1.11.2 - /usr/local/bin/pod SDKs: iOS SDK: Platforms: iOS 14.1, DriverKit 19.0, macOS 10.15, tvOS 14.0, watchOS 7.0 Android SDK: API Levels: 27, 28, 29, 30, 31 Build Tools: 28.0.3, 29.0.0, 29.0.2, 29.0.3, 30.0.2, 30.0.3 System Images: android-28 | Google APIs Intel x86 Atom IDEs: Android Studio: 4.1 AI-201.8743.12.41.6858069 Xcode: 12.1/12A7403 - /usr/bin/xcodebuild npmPackages: babel-preset-expo: 9.0.1 => 9.0.1 expo: ^44.0.4 => 44.0.4 react: 17.0.1 => 17.0.1 react-dom: 17.0.1 => 17.0.1 react-native: 0.64.3 => 0.64.3 react-native-web: 0.17.1 => 0.17.1 npmGlobalPackages: expo-cli: 5.0.3 Expo Workflow: bare
Reproducible demo
{ “main”: “node_modules/expo/AppEntry.js”, “scripts”: { “start”: “expo start”, “android”: “expo start --android”, “ios”: “expo start --ios”, “web”: “expo start --web”, “eject”: “expo eject”, “test”: “jest --watchAll”, “gen-sdk”: “openapi-sdk-generator generate --def http://14.99.203.50:5027/v1.json --outdir ./src/sdk --cache-type none --throw-on-not-okay-res true --pre-process-def ‘delete doc.components.schemas.PostComment.properties.childPostCommentList.items.$ref;delete doc.components.schemas.AssignmentComment.properties.childAssignmentCommentList.items.$ref;return doc;’” }, “jest”: { “preset”: “jest-expo” }, “dependencies”: { “@expo-google-fonts/roboto”: “^0.1.0”, “@expo/vector-icons”: “^12.0.0”, “@react-native-community/masked-view”: “^0.1.10”, “@react-native-community/viewpager”: “5.0.11”, “@react-navigation/bottom-tabs”: “5.8.0”, “@react-navigation/drawer”: “5.9.0”, “@react-navigation/material-top-tabs”: “5.2.16”, “@react-navigation/native”: “5.7.3”, “@react-navigation/stack”: “5.9.0”, “@stripe/stripe-react-native”: “0.2.3”, “@types/jwt-decode”: “^2.2.1”, “@types/lodash.clonedeep”: “^4.5.6”, “@types/lodash.groupby”: “^4.6.6”, “@types/lodash.set”: “^4.3.6”, “@types/mime”: “^2.0.3”, “@types/react-native-htmlview”: “^0.12.2”, “@types/react-native-snap-carousel”: “^3.8.2”, “@types/react-query”: “^1.1.2”, “@types/yup”: “^0.29.6”, “autolinker”: “^3.14.1”, “date-fns”: “^2.15.0”, “eventemitter3”: “^4.0.7”, “expo”: “^44.0.4”, “expo-application”: “~4.0.1”, “expo-asset”: “~8.4.5”, “expo-av”: “~10.2.0”, “expo-checkbox”: “~2.0.0”, “expo-cli”: “^5.0.3”, “expo-constants”: “~13.0.0”, “expo-document-picker”: “~10.1.0”, “expo-file-system”: “~13.1.0”, “expo-font”: “~10.0.4”, “expo-image-picker”: “~12.0.1”, “expo-intent-launcher”: “~10.1.0”, “expo-linear-gradient”: “~11.0.0”, “expo-linking”: “~3.0.0”, “expo-media-library”: “~14.0.0”, “expo-notifications”: “~0.14.0”, “expo-permissions”: “~13.1.0”, “expo-splash-screen”: “~0.14.1”, “expo-status-bar”: “~1.2.0”, “expo-video-thumbnails”: “~6.1.0”, “expo-web-browser”: “~10.1.0”, “formik”: “^2.1.5”, “intl”: “^1.2.5”, “jwt-decode”: “^2.2.0”, “lodash.clonedeep”: “^4.5.0”, “lodash.groupby”: “^4.6.0”, “lodash.set”: “^4.3.2”, “mime”: “^2.4.6”, “moment”: “^2.29.1”, “react”: “17.0.1”, “react-dom”: “17.0.1”, “react-moment”: “^1.1.1”, “react-native”: “0.64.3”, “react-native-autolink”: “^3.0.0”, “react-native-collapsible”: “^1.5.3”, “react-native-emoji-board”: “^1.2.1”, “react-native-floating-action”: “^1.21.0”, “react-native-gesture-handler”: “~2.1.0”, “react-native-gifted-chat”: “^0.16.3”, “react-native-google-recaptcha-v2”: “^1.1.0”, “react-native-htmlview”: “^0.16.0”, “react-native-material-textfield”: “git+https://github.com/TheLartians/react-native-material-textfield.git#147f3b92b24cb3404c3b4a0229b3da30b81e2c7e”, “react-native-modal”: “^11.5.6”, “react-native-modalize”: “2.0.6”, “react-native-multiple-select”: “^0.5.6”, “react-native-paper”: “^4.9.2”, “react-native-portalize”: “1.0.7”, “react-native-reanimated”: “~2.3.1”, “react-native-root-siblings”: “^4.0.6”, “react-native-root-toast”: “^3.2.1”, “react-native-safe-area-context”: “3.3.2”, “react-native-screens”: “~3.10.1”, “react-native-simple-radio-button”: “^2.7.4”, “react-native-snap-carousel”: “^4.0.0-beta.6”, “react-native-stripe-client”: “0.0.3”, “react-native-svg”: “12.1.1”, “react-native-switch”: “^2.0.0”, “react-native-tab-view”: “^2.15.0”, “react-native-toggle-element”: “^1.0.1”, “react-native-vector-icons”: “^7.1.0”, “react-native-web”: “0.17.1”, “react-native-webview”: “11.15.0”, “react-query”: “^2.5.14”, “rn-material-ui-textfield”: “^1.0.5”, “string-mask”: “^0.3.0”, “use-socketio”: “^2.0.3”, “yup”: “^0.29.3” }, “devDependencies”: { “@babel/core”: “^7.12.9”, “@types/react”: “~17.0.21”, “@types/react-native”: “~0.64.12”, “babel-preset-expo”: “9.0.1”, “jest-expo”: “^44.0.0”, “typescript”: “~4.3.5” }, “private”: true }
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Reactions: 6
- Comments: 23 (4 by maintainers)
@stripe/stripe-react-native is supported in Expo Go on Android and iOS out of the box, however, for iOS, it is only available for standalone apps built with EAS Build, and not for apps built on the classic build system- expo build:ios. Android apps built with expo build:android will have access to the @stripe/stripe-react-native library. https://docs.expo.dev/versions/v44.0.0/sdk/stripe/
I have same issue when upgrading from sdk 47 tp 48, tried all of the above solutions but no luck yet.
also see https://github.com/expo/fyi/blob/main/splash-screen-hanging.md
I upgraded from sdk 42 to 43 and this now happens. It only happens when testing the testflight app i build. It does not occur in development mode in an emutor or on a physical device.
Any help with this would be greatly appreciated.
+1
I also have the exact same issue, works on Android, it doesn’t on iOS, I have updated to SDK 50, by the way.
I’m having the same issue, iOS only. In android, testing in production mode or dev mode it is working just fine. For some reason the app keep stuck in the splash screen only when I test on an iOS simulator or a physical device running in production mode. Using the managed workflow
I also started getting this issue when I upgraded from SDK 42 to 43.
Are there any other packages that cause this? I don’t have stripe-react-native.
Edit: I built with Xcode and it’s the same issue mentioned in https://github.com/expo/expo/issues/7689
User marcusmc wrote this in that issue:
My app renders a modal on app open. Removing the modal or rendering it later fixes the splash screen issue.