expo-dev-launcher 6.1.0-canary-20251119-961a032 → 6.1.0-canary-20251127-587bc53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/android/build.gradle +2 -2
- package/ios/EXDevLauncherController.m +3 -4
- package/ios/ReactDelegateHandler/ExpoDevLauncherReactDelegateHandler.swift +31 -1
- package/package.json +4 -4
- package/ios/EXDevLauncherReactNativeFactory.h +0 -19
- package/ios/EXDevLauncherReactNativeFactory.mm +0 -14
package/CHANGELOG.md
CHANGED
|
@@ -17,12 +17,14 @@
|
|
|
17
17
|
- [iOS] Fix React Native dev menu not showing up in 0.83.x ([#40819](https://github.com/expo/expo/pull/40819) by [@gabrieldonadel](https://github.com/gabrieldonadel))
|
|
18
18
|
- [iOS] Fix port scanning on pysical devices. ([#40824](https://github.com/expo/expo/pull/40824) by [@alanjhughes](https://github.com/alanjhughes))
|
|
19
19
|
- [iOS] Fix RCTDevMenuConfiguration in release builds ([#40870](https://github.com/expo/expo/pull/40870) by [@gabrieldonadel](https://github.com/gabrieldonadel))
|
|
20
|
+
- [iOS] Fix Safe Area being ignored on physical devices ([#41119](https://github.com/expo/expo/pull/41119) by [@betomoedano](https://github.com/betomoedano))
|
|
20
21
|
|
|
21
22
|
### 💡 Others
|
|
22
23
|
|
|
23
24
|
- [Android] Migrated from `kotlinOptions` to `compilerOptions` DSL. ([#39794](https://github.com/expo/expo/pull/39794) by [@huextrat](https://github.com/huextrat))
|
|
24
25
|
- [android] Make reactNativeHost optional in ReactHostWrapper ([#40085](https://github.com/expo/expo/pull/40085) by [@gabrieldonadel](https://github.com/gabrieldonadel))
|
|
25
26
|
- [Android] Remove `ReactHostWrapper` ([#40295](https://github.com/expo/expo/pull/40295) by [@gabrieldonadel](https://github.com/gabrieldonadel))
|
|
27
|
+
- [iOS] Remove custom `ReactNativeFactory`. ([#41084](https://github.com/expo/expo/pull/41084) by [@alanjhughes](https://github.com/alanjhughes))
|
|
26
28
|
|
|
27
29
|
## 6.0.16 - 2025-10-21
|
|
28
30
|
|
package/android/build.gradle
CHANGED
|
@@ -20,13 +20,13 @@ expoModule {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
group = "host.exp.exponent"
|
|
23
|
-
version = "6.1.0-canary-
|
|
23
|
+
version = "6.1.0-canary-20251127-587bc53"
|
|
24
24
|
|
|
25
25
|
android {
|
|
26
26
|
namespace "expo.modules.devlauncher"
|
|
27
27
|
defaultConfig {
|
|
28
28
|
versionCode 9
|
|
29
|
-
versionName "6.1.0-canary-
|
|
29
|
+
versionName "6.1.0-canary-20251127-587bc53"
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
buildTypes {
|
|
@@ -15,8 +15,7 @@
|
|
|
15
15
|
#import <EXDevLauncher/EXDevLauncherUpdatesHelper.h>
|
|
16
16
|
#import <EXDevLauncher/RCTPackagerConnection+EXDevLauncherPackagerConnectionInterceptor.h>
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
#import <EXDevMenu/DevClientNoOpLoadingView.h>
|
|
18
|
+
|
|
20
19
|
#import <ReactAppDependencyProvider/RCTAppDependencyProvider.h>
|
|
21
20
|
|
|
22
21
|
#if __has_include(<EXDevLauncher/EXDevLauncher-Swift.h>)
|
|
@@ -53,7 +52,7 @@
|
|
|
53
52
|
@property (nonatomic, strong) EXDevLauncherErrorManager *errorManager;
|
|
54
53
|
@property (nonatomic, strong) EXDevLauncherInstallationIDHelper *installationIDHelper;
|
|
55
54
|
@property (nonatomic, strong, nullable) EXDevLauncherNetworkInterceptor *networkInterceptor;
|
|
56
|
-
@property (nonatomic, strong)
|
|
55
|
+
@property (nonatomic, strong) RCTReactNativeFactory *reactNativeFactory;
|
|
57
56
|
@property (nonatomic, strong) DevLauncherViewController *devLauncherViewController;
|
|
58
57
|
@property (nonatomic, strong) NSURL *lastOpenedAppUrl;
|
|
59
58
|
@property (nonatomic, strong) DevLauncherDevMenuDelegate *devMenuDelegate;
|
|
@@ -84,7 +83,7 @@
|
|
|
84
83
|
self.shouldPreferUpdatesInterfaceSourceUrl = NO;
|
|
85
84
|
|
|
86
85
|
self.dependencyProvider = [RCTAppDependencyProvider new];
|
|
87
|
-
self.reactNativeFactory = [[
|
|
86
|
+
self.reactNativeFactory = [[RCTReactNativeFactory alloc] initWithDelegate:self releaseLevel:[self getReactNativeReleaseLevel]];
|
|
88
87
|
self.devMenuDelegate = [[DevLauncherDevMenuDelegate alloc] initWithController:self];
|
|
89
88
|
[[DevMenuManager shared] setDelegate:self.devMenuDelegate];
|
|
90
89
|
}
|
|
@@ -4,6 +4,35 @@ import ExpoModulesCore
|
|
|
4
4
|
import EXUpdatesInterface
|
|
5
5
|
import React
|
|
6
6
|
|
|
7
|
+
private class DevLauncherWrapperView: UIView {
|
|
8
|
+
weak var devLauncherViewController: UIViewController?
|
|
9
|
+
|
|
10
|
+
override func didMoveToWindow() {
|
|
11
|
+
super.didMoveToWindow()
|
|
12
|
+
|
|
13
|
+
guard let devLauncherViewController,
|
|
14
|
+
let window,
|
|
15
|
+
let rootViewController = window.rootViewController else {
|
|
16
|
+
return
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if devLauncherViewController.parent != rootViewController {
|
|
20
|
+
rootViewController.addChild(devLauncherViewController)
|
|
21
|
+
devLauncherViewController.didMove(toParent: rootViewController)
|
|
22
|
+
devLauncherViewController.view.setNeedsLayout()
|
|
23
|
+
devLauncherViewController.view.layoutIfNeeded()
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
override func willMove(toWindow newWindow: UIWindow?) {
|
|
28
|
+
super.willMove(toWindow: newWindow)
|
|
29
|
+
if newWindow == nil {
|
|
30
|
+
devLauncherViewController?.willMove(toParent: nil)
|
|
31
|
+
devLauncherViewController?.removeFromParent()
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
7
36
|
@objc
|
|
8
37
|
public class ExpoDevLauncherReactDelegateHandler: ExpoReactDelegateHandler, EXDevLauncherControllerDelegate {
|
|
9
38
|
private weak var reactNativeFactory: RCTReactNativeFactory?
|
|
@@ -39,7 +68,8 @@ public class ExpoDevLauncherReactDelegateHandler: ExpoReactDelegateHandler, EXDe
|
|
|
39
68
|
rootViewController = viewController
|
|
40
69
|
|
|
41
70
|
// We need to create a wrapper View because React Native Factory will reassign rootViewController later
|
|
42
|
-
let wrapperView =
|
|
71
|
+
let wrapperView = DevLauncherWrapperView()
|
|
72
|
+
wrapperView.devLauncherViewController = viewController
|
|
43
73
|
wrapperView.addSubview(viewController.view)
|
|
44
74
|
viewController.view.translatesAutoresizingMaskIntoConstraints = false
|
|
45
75
|
NSLayoutConstraint.activate([
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-dev-launcher",
|
|
3
3
|
"title": "Expo Development Launcher",
|
|
4
|
-
"version": "6.1.0-canary-
|
|
4
|
+
"version": "6.1.0-canary-20251127-587bc53",
|
|
5
5
|
"description": "Pre-release version of the Expo development launcher package for testing.",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"homepage": "https://docs.expo.dev",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"expo-dev-menu": "7.1.0-canary-
|
|
19
|
-
"expo-manifests": "1.0.10-canary-
|
|
18
|
+
"expo-dev-menu": "7.1.0-canary-20251127-587bc53",
|
|
19
|
+
"expo-manifests": "1.0.10-canary-20251127-587bc53"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"expo": "55.0.0-canary-
|
|
22
|
+
"expo": "55.0.0-canary-20251127-587bc53"
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#if __has_include(<React-RCTAppDelegate/RCTReactNativeFactory.h>)
|
|
4
|
-
#import <React-RCTAppDelegate/RCTReactNativeFactory.h>
|
|
5
|
-
#elif __has_include(<React_RCTAppDelegate/RCTReactNativeFactory.h>)
|
|
6
|
-
// for importing the header from framework, the dash will be transformed to underscore
|
|
7
|
-
#import <React_RCTAppDelegate/RCTReactNativeFactory.h>
|
|
8
|
-
#endif
|
|
9
|
-
|
|
10
|
-
@interface RCTReactNativeFactory () <
|
|
11
|
-
RCTComponentViewFactoryComponentProvider,
|
|
12
|
-
RCTHostDelegate,
|
|
13
|
-
RCTJSRuntimeConfiguratorProtocol,
|
|
14
|
-
RCTTurboModuleManagerDelegate>
|
|
15
|
-
@end
|
|
16
|
-
|
|
17
|
-
@interface EXDevLauncherReactNativeFactory : RCTReactNativeFactory
|
|
18
|
-
|
|
19
|
-
@end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#import <EXDevLauncher/EXDevLauncherReactNativeFactory.h>
|
|
2
|
-
#import <EXDevMenu/DevClientNoOpLoadingView.h>
|
|
3
|
-
|
|
4
|
-
@implementation EXDevLauncherReactNativeFactory
|
|
5
|
-
|
|
6
|
-
- (Class)getModuleClassFromName:(const char *)name {
|
|
7
|
-
// Overrides DevLoadingView ("Connect to Metro to develop JavaScript") as no-op when loading dev-launcher bundle
|
|
8
|
-
if (strcmp(name, "DevLoadingView") == 0) {
|
|
9
|
-
return [DevClientNoOpLoadingView class];
|
|
10
|
-
}
|
|
11
|
-
return [super getModuleClassFromName:name];
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
@end
|