White screen on standalone iOS build

I am making a standalone build for iOS and Android. Everything works perfectly on Android and in expo client in iOS. But with standalone iOS build, loading icon is loaded, spinner is spinning, but afterwards it just popups white screen of death.
After double clicking home button, multitasking opens, I click again on my app I have this:

“There was a problem loading the experience.” After clicking on show details it says:

https://exp.host:443/myexpourl/app
null is not an object (evaluating ‘a.uid’) (code 2)

Anyone have idea what can it be? Is it error in my code or somewhere else? Also… I repeat, everything is working perfectly in expo app itself or android standalone build.

After 3 days of struggling with this, I finally figured out what is causing this. It was react-navigation which was updated to version beta13 from beta11, and all of the sudden, it didn’t initially open initialRouteName, it opened some other route.

But, never mind that… what bothers me, is how is it possible, that one part of basically javascript code, specifically react-navigation, works in one way with expo client and android standalone APK… and works different with iOS standalone?

React Navigation sometimes uses different navigator configurations depending on the platform (e.g. top tabs on Android, bottom on iOS) – that might be unrelated to your issue but there are some platform differences and that could be why you’re seeing the different behavior. That said there shouldn’t be an error that happens only on iOS. It might be worth diving into react-navigation in development mode to see what could be happening differently.

I’m getting the same behavior here and I’m not able to figure it out.

I’m using CRNA and I’m able to simulate the app just fine locally but when I build to acceptance, I get a blank white screen…

Here is my build: https://expo.io/@habit_production/habitmaker?release-channel=acceptance

Here is my package.json as well

{
  "name": "nectarine",
  "version": "0.1.0",
  "private": true,
  "devDependencies": {
    "babel-eslint": "^8.0.1",
    "jest-expo": "^21.0.2",
    "react-native-scripts": "1.5.0",
    "react-test-renderer": "16.0.0-alpha.12"
  },
  "main": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
  "scripts": {
    "start": "react-native-scripts start",
    "eject": "react-native-scripts eject",
    "android": "react-native-scripts android",
    "ios": "react-native-scripts ios",
    "test": "node node_modules/jest/bin/jest.js --watch",
    "debug": "open 'rndebugger://set-debugger-loc?host=localhost&port=19001'"
  },
  "jest": {
    "preset": "jest-expo"
  },
  "dependencies": {
    "color": "^2.0.1",
    "eslint-config-airbnb": "^16.1.0",
    "expo": "^23.0.0",
    "moment": "^2.19.2",
    "prop-types": "^15.6.0",
    "ramda": "^0.25.0",
    "react": "16.2.0",
    "react-native": "^0.50.3",
    "react-native-animatable": "^1.2.4",
    "react-native-gesture-handler": "1.0.0-alpha.27",
    "react-native-shadow": "^1.2.1",
    "react-native-snap-carousel": "^3.4.0",
    "react-native-status-bar-height": "^1.0.1",
    "react-native-swipe-list-view": "^0.4.7",
    "react-native-swipeout": "^2.3.1",
    "react-native-textinput-effects": "^0.4.1",
    "react-navigation": "^1.0.0-beta.22",
    "react-redux": "^5.0.6",
    "redux": "^3.7.2",
    "redux-devtools-extension": "^2.13.2",
    "redux-form": "^7.1.2",
    "redux-saga": "^0.16.0",
    "remote-redux-devtools": "^0.5.12",
    "reselect": "^3.0.1",
    "victory-native": "^0.15.0"
  }
}

This is a really hard bug to because it works just fine locally but once I build and push to acceptance, its back to a blank screen.

Any thoughts on how I could even debug this?

2 Likes

Same issue you here. Our previous build one or two days ago worked smoothly, but after publishing today we get the white screen.

Hi there, I’m going to lock this 3-month-old thread because the recent replies are not likely to be related to the original post, and I’d like to avoid confusion for people searching google who wind up here.

There are a couple places you might want to look for the recent issue (December 27-28, 2017):

  • If you are using Util.reload(), there is a race condition in iOS apps being tracked here.
  • If you are not using Util.reload() but simply see a broken JS bundle in production, there was a bug in one of our upstream dependencies, uglify, and there is some discussion here (as well as a workaround).
  • If you’re sure that neither of the above applies to you, please open a new issue report.