expo: Expo 35 on iOS 13.0 dismissBrowser crashes app

🐛 Bug Report

Environment

Expo CLI 3.1.0 environment info: System: OS: macOS 10.14.6 Shell: 5.3 - /bin/zsh Binaries: Node: 10.15.0 - ~/n/bin/node Yarn: 1.12.3 - ~/n/bin/yarn npm: 6.11.3 - ~/n/bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman IDEs: Android Studio: 3.4 AI-183.6156.11.34.5522156 Xcode: 11.0/11A420a - /usr/bin/xcodebuild npmPackages: expo: ^35.0.0 => 35.0.0 react: 16.8.3 => 16.8.3 react-native: https://github.com/expo/react-native/archive/sdk-35.0.0.tar.gz => 0.59.8 react-navigation: ^4.0.7 => 4.0.7 npmGlobalPackages: expo-cli: 3.1.0

iOS 13.0, doesn’t occur on iOS 12

Steps to Reproduce

Import expo-web-browser and call dismissBrowser function

Expected Behavior

Nothing to happen

Actual Behavior

App crashes

Reproducible Demo

import React from 'react';
import { View, Button } from 'react-native';
import * as WebBrowser from 'expo-web-browser';

export default function App() {
  return (
    <View>
      <Button
        title='press me'
        onPress={() => {
          WebBrowser.dismissBrowser()
        }}
      />
    </View>
  );
}

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 16 (8 by maintainers)

Commits related to this issue

Most upvoted comments

We do something similar using @aws-amplify/auth, where we follow their example for Expo users to call WebBrowser.dismissBrowser(), which causes the crash on iOS 13.

We’ll be deploying the fix to our SDK 35 builders soon, just running final tests. I’ll update here once we do, thanks everyone for being proactive and reporting this

Edit: Fix has been deployed to SDK 35 builders

Merged the fix to master and sdk-35 release branch. It will be release in Expo client if we push an update in the middle of cycle and it has been just released as expo-web-browser@7.0.1 for bare and ejected projects. 🙂

Weeks, it’s not too far off 😄

Thanks, we really appreciate your support!

@cruzach Thanks for the prompt reply. Can you maybe explain what it means “Fix has been deployed to SDK 35 builders”? Does that mean we have to wait for SDK 35.0.1?