diff --git a/packages/expo-dev-launcher/CHANGELOG.md b/packages/expo-dev-launcher/CHANGELOG.md index ee9635a3a1f7f..1784624ca402e 100644 --- a/packages/expo-dev-launcher/CHANGELOG.md +++ b/packages/expo-dev-launcher/CHANGELOG.md @@ -21,6 +21,7 @@ ### 🐛 Bug fixes - Fixed `the function must be called on main queue` error when the app is reload from the error screen on iOS. ([#18563](https://github.com/expo/expo/pull/18563) by [@lukmccall](https://github.com/lukmccall)) +- Fix deferred deep link handling on iOS. ([#18614](https://github.com/expo/expo/pull/18614)) by [@ajsmth](https://github.com/ajsmth) ### 💡 Others diff --git a/packages/expo-dev-launcher/ios/ReactDelegateHandler/ExpoDevLauncherReactDelegateHandler.swift b/packages/expo-dev-launcher/ios/ReactDelegateHandler/ExpoDevLauncherReactDelegateHandler.swift index dcb36b9c893b6..d205535de2ca7 100644 --- a/packages/expo-dev-launcher/ios/ReactDelegateHandler/ExpoDevLauncherReactDelegateHandler.swift +++ b/packages/expo-dev-launcher/ios/ReactDelegateHandler/ExpoDevLauncherReactDelegateHandler.swift @@ -73,7 +73,19 @@ public class ExpoDevLauncherReactDelegateHandler: ExpoReactDelegateHandler, RCTB // MARK: EXDevelopmentClientControllerDelegate implementations public func devLauncherController(_ developmentClientController: EXDevLauncherController, didStartWithSuccess success: Bool) { - let bridge = RCTBridge(delegate: self.bridgeDelegate, launchOptions: self.launchOptions) + var launchOptions: [AnyHashable: Any] = [:] + + if let initialLaunchOptions = self.launchOptions { + for (key, value) in initialLaunchOptions { + launchOptions[key] = value + } + } + + for (key, value) in developmentClientController.getLaunchOptions() { + launchOptions[key] = value + } + + let bridge = RCTBridge(delegate: self.bridgeDelegate, launchOptions: launchOptions) developmentClientController.appBridge = bridge let rootView = RCTRootView(bridge: bridge!, moduleName: self.rootViewModuleName!, initialProperties: self.rootViewInitialProperties)