expo-dev-launcher 6.0.12 → 6.1.0-canary-20250930-9dc59d3

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 CHANGED
@@ -6,19 +6,17 @@
6
6
 
7
7
  ### 🎉 New features
8
8
 
9
- ### 🐛 Bug fixes
10
-
11
- ### 💡 Others
12
-
13
- ## 6.0.12 — 2025-09-22
14
-
15
- ### 🎉 New features
16
-
9
+ - Remove `ExpoAppDelegate` inheritance requirement ([#39417](https://github.com/expo/expo/pull/39417) by [@gabrieldonadel](https://github.com/gabrieldonadel))
17
10
  - [Android] Adds loading state when connecting to a development server. ([#39873](https://github.com/expo/expo/pull/39873) by [@lukmccall](https://github.com/lukmccall))
18
11
 
19
12
  ### 🐛 Bug fixes
20
13
 
21
14
  - [expo-dev-launcher] Fix manual URL entry: decode percent-encoded URLs, enable return key submit, and support dark mode text. ([#39840](https://github.com/expo/expo/pull/39840) by [@blazejkustra](https://github.com/blazejkustra))
15
+ - [iOS] Adjust tvOS colors. ([#40006](https://github.com/expo/expo/pull/40006) by [@douglowder](https://github.com/douglowder))
16
+
17
+ ### 💡 Others
18
+
19
+ - [Android] Migrated from `kotlinOptions` to `compilerOptions` DSL. ([#39794](https://github.com/expo/expo/pull/39794) by [@huextrat](https://github.com/huextrat))
22
20
 
23
21
  ## 6.0.11 — 2025-09-11
24
22
 
@@ -20,13 +20,13 @@ expoModule {
20
20
  }
21
21
 
22
22
  group = "host.exp.exponent"
23
- version = "6.0.12"
23
+ version = "6.1.0-canary-20250930-9dc59d3"
24
24
 
25
25
  android {
26
26
  namespace "expo.modules.devlauncher"
27
27
  defaultConfig {
28
28
  versionCode 9
29
- versionName "6.0.12"
29
+ versionName "6.1.0-canary-20250930-9dc59d3"
30
30
  }
31
31
 
32
32
  buildTypes {
@@ -75,17 +75,17 @@ dependencies {
75
75
 
76
76
  implementation 'commons-io:commons-io:2.6'
77
77
 
78
- implementation 'com.squareup.okhttp3:okhttp:3.14.9'
79
- implementation 'com.google.code.gson:gson:2.8.6'
78
+ implementation 'com.squareup.okhttp3:okhttp:4.9.2'
79
+ implementation 'com.google.code.gson:gson:2.13.2'
80
80
 
81
81
  // Fixes
82
82
  // Cannot access 'androidx....' which is a supertype of 'expo.modules.devmenu.DevMenuActivity'.
83
83
  // Check your module classpath for missing or conflicting dependencies
84
- api "androidx.appcompat:appcompat:1.1.0"
84
+ api "androidx.appcompat:appcompat:1.7.1"
85
85
  api "androidx.lifecycle:lifecycle-extensions:2.2.0"
86
86
 
87
- implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3")
88
- implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1")
87
+ implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
88
+ implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2")
89
89
  implementation "org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}"
90
90
 
91
91
  api project.dependencies.platform("io.insert-koin:koin-bom:3.5.6")
@@ -96,7 +96,7 @@ dependencies {
96
96
  implementation "androidx.compose.foundation:foundation-android:$composeVersion"
97
97
  implementation "androidx.compose.ui:ui:$composeVersion"
98
98
  implementation "androidx.compose.ui:ui-tooling:$composeVersion"
99
- implementation "androidx.navigation:navigation-compose:2.9.0"
99
+ implementation "androidx.navigation:navigation-compose:2.9.4"
100
100
  implementation "com.google.android.gms:play-services-code-scanner:16.1.0"
101
101
  implementation "com.google.mlkit:barcode-scanning:17.3.0"
102
102
 
@@ -104,14 +104,14 @@ dependencies {
104
104
 
105
105
  implementation("com.apollographql.apollo:apollo-runtime:4.3.1")
106
106
 
107
- implementation("com.composables:core:1.37.0")
107
+ implementation("com.composables:core:1.43.1")
108
108
 
109
- testImplementation 'androidx.test:core:1.4.0'
110
- testImplementation 'androidx.test:core-ktx:1.4.0'
111
- testImplementation "com.google.truth:truth:1.1.2"
112
- testImplementation 'com.squareup.okhttp3:mockwebserver:4.3.1'
109
+ testImplementation 'androidx.test:core:1.7.0'
110
+ testImplementation 'androidx.test:core-ktx:1.7.0'
111
+ testImplementation "com.google.truth:truth:1.4.5"
112
+ testImplementation 'com.squareup.okhttp3:mockwebserver:4.9.2'
113
113
  testImplementation "io.insert-koin:koin-test"
114
114
  testImplementation "io.insert-koin:koin-test-junit4"
115
115
  testImplementation 'io.mockk:mockk:1.12.3'
116
- testImplementation "org.robolectric:robolectric:4.10"
116
+ testImplementation "org.robolectric:robolectric:4.16"
117
117
  }
@@ -1,3 +1,4 @@
1
+ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
1
2
  import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2
3
 
3
4
  plugins {
@@ -22,8 +23,8 @@ java {
22
23
  }
23
24
 
24
25
  tasks.withType<KotlinCompile> {
25
- kotlinOptions {
26
- jvmTarget = JavaVersion.VERSION_11.toString()
26
+ compilerOptions {
27
+ jvmTarget.set(JvmTarget.JVM_11)
27
28
  }
28
29
  }
29
30
 
@@ -50,7 +50,7 @@ NS_ASSUME_NONNULL_BEGIN
50
50
 
51
51
  + (instancetype)sharedInstance;
52
52
 
53
- - (void)startWithWindow:(UIWindow *)window delegate:(id<EXDevLauncherControllerDelegate>)delegate launchOptions:(NSDictionary * _Nullable)launchOptions;
53
+ - (void)startWithWindow:(UIWindow *)window;
54
54
 
55
55
  - (void)autoSetupPrepare:(id<EXDevLauncherControllerDelegate>)delegate launchOptions:(NSDictionary * _Nullable)launchOptions;
56
56
 
@@ -252,15 +252,13 @@
252
252
  return _errorManager;
253
253
  }
254
254
 
255
- - (void)startWithWindow:(UIWindow *)window delegate:(id<EXDevLauncherControllerDelegate>)delegate launchOptions:(NSDictionary *)launchOptions
255
+ - (void)startWithWindow:(UIWindow *)window
256
256
  {
257
257
  _isStarted = YES;
258
- _delegate = delegate;
259
- _launchOptions = launchOptions;
260
258
  _window = window;
261
259
  EXDevLauncherUncaughtExceptionHandler.isInstalled = true;
262
260
 
263
- if (launchOptions[UIApplicationLaunchOptionsURLKey]) {
261
+ if (_launchOptions[UIApplicationLaunchOptionsURLKey]) {
264
262
  // For deeplink launch, we need the keyWindow for expo-splash-screen to setup correctly.
265
263
  [_window makeKeyWindow];
266
264
  return;
@@ -310,7 +308,7 @@
310
308
  - (void)autoSetupStart:(UIWindow *)window
311
309
  {
312
310
  if (_delegate != nil) {
313
- [self startWithWindow:window delegate:_delegate launchOptions:_launchOptions];
311
+ [self startWithWindow:window];
314
312
  } else {
315
313
  @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"[EXDevLauncherController autoSetupStart:] was called before autoSetupPrepare:. Make sure you've set up expo-modules correctly in AppDelegate and are using ReactDelegate to create a bridge before calling [super application:didFinishLaunchingWithOptions:]." userInfo:nil];
316
314
  }
@@ -50,21 +50,21 @@ public class ExpoDevLauncherReactDelegateHandler: ExpoReactDelegateHandler, EXDe
50
50
  // MARK: EXDevelopmentClientControllerDelegate implementations
51
51
 
52
52
  public func devLauncherController(_ developmentClientController: EXDevLauncherController, didStartWithSuccess success: Bool) {
53
- guard let appDelegate = (UIApplication.shared.delegate as? (any ReactNativeFactoryProvider)) ??
54
- ((UIApplication.shared.delegate as? NSObject)?.value(forKey: "_expoAppDelegate") as? (any ReactNativeFactoryProvider)) else {
55
- fatalError("`UIApplication.shared.delegate` must be an `ExpoAppDelegate` or `EXAppDelegateWrapper`")
53
+ guard let reactDelegate = self.reactDelegate else {
54
+ fatalError("`reactDelegate` should not be nil")
56
55
  }
57
- self.reactNativeFactory = appDelegate.factory as? RCTReactNativeFactory
56
+
57
+ self.reactNativeFactory = reactDelegate.reactNativeFactory as? RCTReactNativeFactory
58
58
 
59
59
  // Reset rctAppDelegate so we can relaunch the app
60
- if self.reactNativeFactory?.delegate?.newArchEnabled() ?? false {
60
+ if RCTIsNewArchEnabled() {
61
61
  self.reactNativeFactory?.rootViewFactory.setValue(nil, forKey: "_reactHost")
62
62
  } else {
63
63
  self.reactNativeFactory?.bridge = nil
64
64
  self.reactNativeFactory?.rootViewFactory.bridge = nil
65
65
  }
66
66
 
67
- let rootView = appDelegate.recreateRootView(
67
+ let rootView = reactDelegate.reactNativeFactory.recreateRootView(
68
68
  withBundleURL: developmentClientController.sourceUrl(),
69
69
  moduleName: self.rootViewModuleName,
70
70
  initialProps: self.rootViewInitialProperties,
@@ -132,6 +132,7 @@ struct DevServersView: View {
132
132
  } label: {
133
133
  Text("info".uppercased())
134
134
  #if os(tvOS)
135
+ .foregroundColor(.primary)
135
136
  .font(.system(size: 24))
136
137
  #else
137
138
  .font(.system(size: 12))
@@ -51,6 +51,9 @@ struct HomeTabView: View {
51
51
  .padding()
52
52
  }
53
53
  }
54
+ #if os(tvOS)
55
+ .background()
56
+ #endif
54
57
  .overlay(
55
58
  DevServerInfoModal(showingInfoDialog: $showingInfoDialog)
56
59
  )
@@ -56,6 +56,9 @@ struct SettingsTabView: View {
56
56
  .padding()
57
57
  }
58
58
  .frame(maxWidth: .infinity, maxHeight: .infinity)
59
+ #if os(tvOS)
60
+ .background()
61
+ #endif
59
62
  .navigationBarHidden(true)
60
63
  }
61
64
 
@@ -20,6 +20,9 @@ struct UpdatesTabView: View {
20
20
  }
21
21
  }
22
22
  }
23
+ #if os(tvOS)
24
+ .background()
25
+ #endif
23
26
  }
24
27
  }
25
28
 
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.0.12",
4
+ "version": "6.1.0-canary-20250930-9dc59d3",
5
5
  "description": "Pre-release version of the Expo development launcher package for testing.",
6
6
  "repository": {
7
7
  "type": "git",
@@ -15,11 +15,10 @@
15
15
  "license": "MIT",
16
16
  "homepage": "https://docs.expo.dev",
17
17
  "dependencies": {
18
- "expo-dev-menu": "7.0.12",
19
- "expo-manifests": "~1.0.8"
18
+ "expo-dev-menu": "7.0.13-canary-20250930-9dc59d3",
19
+ "expo-manifests": "1.0.9-canary-20250930-9dc59d3"
20
20
  },
21
21
  "peerDependencies": {
22
- "expo": "*"
23
- },
24
- "gitHead": "6523053d0d997d2a21f580d2752b2f873c122038"
22
+ "expo": "55.0.0-canary-20250930-9dc59d3"
23
+ }
25
24
  }