White screen after downloading app from TestFlight - Expo

Viewed 991

I am facing a weird issue in one of my apps where when I build the app using

expo build:ios

and then upload the app using

Transporter

When I download the app from TestFlight it opens up with a white screen. I have tried running app in production mode on the device using below commands

expo run:ios -d

after that in bundler press p to switch into the production mode. It is working fine on the local using local IP address.

When I export the .ipa file and try to run on the device it gives me

The app cannot be installed because its integrity could not be verified

Has anyone has faced the same issue before? Why it is not showing any error?

Some info: I am using expo managed bare workflow

app.json

{
  "expo": {
    "name": "Myndfulness",
    "slug": "myndfulness",
    "owner": "**************************",
    "version": "1.0.1",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "backgroundColor": "#fff",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 300
    },
    "assetBundlePatterns": [
      "**/*"
    ],
    "ios": {
      "bundleIdentifier": "app.myndfulness",
      "buildNumber": "29",
      "usesAppleSignIn": true,
      "backgroundColor": "#FFFFFF",
      "icon": "./assets/icon.png",
      "userInterfaceStyle": "light",
      "config": {
        "googleSignIn": {
          "reservedClientId": "**************************"
        }
      },
      "googleServicesFile": "./GoogleService-Info.plist"
    },
    "android": {
      "package": "app.myndfulness",
      "versionCode": 4,
      "icon": "./assets/icon.png",
      "backgroundColor": "#FFFFFF",
      "userInterfaceStyle": "light",
      "googleServicesFile": "./google-services.json",
      "config": {
        "googleSignIn": {
          "certificateHash": "270AA8A33CF59E92614AF182C917CAF866D38719"
        }
      }
    },
    "web": {
      "favicon": "./assets/favicon.png",
      "config": {
        "firebase": {
          "apiKey": "**************************",
          "authDomain": "**************************",
          "projectId": "**************************",
          "storageBucket": "**************************",
          "messagingSenderId": "441874631846",
          "appId": "**************************",
          "measurementId": "G-KX9BYB1D1Z"
        }
      }
    },
    "packagerOpts": {
      "sourceExts": [ "js", "json", "ts", "tsx", "jsx", "vue"]
    }
  }
}

eas.json

{
  "build": {
    "production": {
      "releaseChannel": "production"
    },
    "release": {
      "releaseChannel": "production"
    },
    "development": {
      "developmentClient": true,
      "distribution": "internal",
      "releaseChannel": "staging-dev"
    },
    "team": {
      "releaseChannel": "staging-team",
      "distribution": "internal",
      "android": {
        "buildType": "app-bundle"
      }
    }
  },
  "submit": {
    "production": {
      "ios": {
        "appleId": "**************************",
        "ascAppId": "1579481834",
        "appleTeamId": "**************************",
        "sku": "app.myndfulness"
      },
      "android": {
        "serviceAccountKeyPath": "./google-services.json",
        "track": "internal"
      }
    }
  },
  "cli": {
    "version": ">= 0.35.0",
    "requireCommit": true
  }
}
2 Answers

I think you need integration with Sentry to be able track your JS error, because whitescreen occured because there's a break on your JS

or maybe you can using https://github.com/a7ul/react-native-exception-handler and alert the error to be able to know what makes your app white screen

For anyone, having the same issue I resolved it by uploading the build using EAS

eas build -p=ios —auto-submit —clear-cache

To know about more available options with EAS use

eas build --help
Related