expo-dev-launcher 5.0.28 → 5.0.30

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
@@ -10,6 +10,16 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 5.0.30 — 2025-03-11
14
+
15
+ ### 🐛 Bug fixes
16
+
17
+ - use custom iOS dependencyProvider ([#35359](https://github.com/expo/expo/pull/35359) by [@vonovak](https://github.com/vonovak))
18
+
19
+ ## 5.0.29 — 2025-02-10
20
+
21
+ _This version does not introduce any user-facing changes._
22
+
13
23
  ## 5.0.28 — 2025-02-06
14
24
 
15
25
  _This version does not introduce any user-facing changes._
@@ -38,6 +48,7 @@ _This version does not introduce any user-facing changes._
38
48
 
39
49
  ### 🐛 Bug fixes
40
50
 
51
+ - [Android] Fixed issue with initialization of the dev client being wrong on the old architecture ([#34398](https://github.com/expo/expo/pull/34398) by [@chrfalch](https://github.com/chrfalch))
41
52
  - [iOS] Fixed black stuck screen when loading an unreachable server from last opened url. ([#34067](https://github.com/expo/expo/pull/34067) by [@kudo](https://github.com/kudo))
42
53
  - [iOS] Read EAS project id and url from manifest instead of updates interface. ([#34342](https://github.com/expo/expo/pull/34342) by [@gabrieldonadel](https://github.com/gabrieldonadel))
43
54
  - [Android] Read EAS project id and url from AndroidManifest instead of updates interface. ([#34342](https://github.com/expo/expo/pull/34342) by [@gabrieldonadel](https://github.com/gabrieldonadel))
@@ -17,7 +17,7 @@ android {
17
17
  namespace "expo.modules.devlauncher"
18
18
  defaultConfig {
19
19
  versionCode 9
20
- versionName "5.0.28"
20
+ versionName "5.0.30"
21
21
  }
22
22
 
23
23
  buildTypes {
@@ -148,7 +148,7 @@ class DevLauncherController private constructor() :
148
148
  val manifestParser = DevLauncherManifestParser(httpClient, parsedUrl, installationIDHelper.getOrCreateInstallationID(context))
149
149
  val appIntent = createAppIntent()
150
150
 
151
- internalUpdatesInterface?.reset()
151
+ DevLauncherKoinContext.app.koin.getOrNull<UpdatesInterface>()?.reset()
152
152
 
153
153
  val appLoaderFactory = get<DevLauncherAppLoaderFactoryInterface>()
154
154
  val appLoader = appLoaderFactory.createAppLoader(parsedUrl, parsedProjectUrl, manifestParser)
@@ -18,8 +18,6 @@ import expo.modules.devlauncher.modules.DevLauncherAuth
18
18
  import expo.modules.core.interfaces.ReactNativeHostHandler
19
19
  import expo.modules.devlauncher.modules.DevLauncherDevMenuExtension
20
20
  import expo.modules.devlauncher.react.DevLauncherReactNativeHostHandler
21
- import expo.modules.updatesinterface.UpdatesControllerRegistry
22
- import java.lang.ref.WeakReference
23
21
 
24
22
  object DevLauncherPackageDelegate {
25
23
  fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> =
@@ -36,10 +34,6 @@ object DevLauncherPackageDelegate {
36
34
  override fun onCreate(application: Application?) {
37
35
  check(application is ReactApplication)
38
36
  DevLauncherController.initialize(application)
39
- UpdatesControllerRegistry.controller?.get()?.let {
40
- DevLauncherController.instance.updatesInterface = it
41
- it.updatesInterfaceCallbacks = WeakReference(DevLauncherController.instance)
42
- }
43
37
  }
44
38
  }
45
39
  )
@@ -10,6 +10,10 @@ import com.facebook.soloader.SoLoader
10
10
  import expo.modules.core.interfaces.ReactNativeHostHandler
11
11
  import expo.modules.devlauncher.DevLauncherController
12
12
  import java.lang.ref.WeakReference
13
+ import expo.modules.updatesinterface.UpdatesControllerRegistry
14
+ import kotlinx.coroutines.CoroutineScope
15
+ import kotlinx.coroutines.Dispatchers
16
+ import kotlinx.coroutines.launch
13
17
 
14
18
  class DevLauncherReactNativeHostHandler(context: Context) : ReactNativeHostHandler {
15
19
  private val contextHolder = WeakReference(context)
@@ -36,4 +40,18 @@ class DevLauncherReactNativeHostHandler(context: Context) : ReactNativeHostHandl
36
40
  }
37
41
  return HermesExecutorFactory()
38
42
  }
43
+
44
+ override fun onWillCreateReactInstance(useDeveloperSupport: Boolean) {
45
+ super.onWillCreateReactInstance(useDeveloperSupport)
46
+ // On New Architecture mode, `onWillCreateReactInstance()` would be called
47
+ // inside `DevLauncherController.initialize()`.
48
+ // The `DevLauncherController.instance` is not available at this point.
49
+ // Posting the updates interface setup to next run loop.
50
+ CoroutineScope(Dispatchers.Main).launch {
51
+ UpdatesControllerRegistry.controller?.get()?.let {
52
+ DevLauncherController.instance.updatesInterface = it
53
+ it.updatesInterfaceCallbacks = WeakReference(DevLauncherController.instance)
54
+ }
55
+ }
56
+ }
39
57
  }
@@ -16,8 +16,6 @@ import expo.modules.devlauncher.helpers.getProtectedFieldValue
16
16
  import expo.modules.devlauncher.helpers.setProtectedDeclaredField
17
17
  import expo.modules.devlauncher.koin.DevLauncherKoinComponent
18
18
  import expo.modules.devlauncher.launcher.DevLauncherControllerInterface
19
- import expo.modules.devlauncher.react.DevLauncherBridgeDevSupportManager
20
- import expo.modules.devlauncher.react.DevLauncherBridgelessDevSupportManager
21
19
  import kotlinx.coroutines.delay
22
20
  import kotlinx.coroutines.launch
23
21
  import org.koin.core.component.inject
@@ -36,7 +36,8 @@ class DevLauncherBridgelessDevSupportManager(
36
36
  null,
37
37
  null,
38
38
  null
39
- ), DevLauncherKoinComponent {
39
+ ),
40
+ DevLauncherKoinComponent {
40
41
  private val controller: DevLauncherControllerInterface? by optInject()
41
42
 
42
43
  init {
@@ -16,8 +16,6 @@ import expo.modules.devlauncher.helpers.getProtectedFieldValue
16
16
  import expo.modules.devlauncher.helpers.setProtectedDeclaredField
17
17
  import expo.modules.devlauncher.koin.DevLauncherKoinComponent
18
18
  import expo.modules.devlauncher.launcher.DevLauncherControllerInterface
19
- import expo.modules.devlauncher.react.DevLauncherBridgeDevSupportManager
20
- import expo.modules.devlauncher.react.DevLauncherBridgelessDevSupportManager
21
19
  import kotlinx.coroutines.delay
22
20
  import kotlinx.coroutines.launch
23
21
  import org.koin.core.component.inject
@@ -11,6 +11,7 @@
11
11
  #else
12
12
  #import <React-RCTAppDelegate/RCTAppSetupUtils.h>
13
13
  #endif
14
+ #import <EXDevMenu/EXAppDependencyProvider.h>
14
15
 
15
16
  @interface RCTAppDelegate ()
16
17
 
@@ -25,6 +26,9 @@
25
26
  - (instancetype)initWithBundleURLGetter:(nonnull EXDevLauncherBundleURLGetter)bundleURLGetter
26
27
  {
27
28
  if (self = [self init]) {
29
+ #if __has_include(<React-RCTAppDelegate/RCTDependencyProvider.h>) || __has_include(<React_RCTAppDelegate/RCTDependencyProvider.h>)
30
+ self.dependencyProvider = [EXAppDependencyProvider new];
31
+ #endif
28
32
  self.bundleURLGetter = bundleURLGetter;
29
33
  }
30
34
  return self;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "expo-dev-launcher",
3
3
  "title": "Expo Development Launcher",
4
- "version": "5.0.28",
4
+ "version": "5.0.30",
5
5
  "description": "Pre-release version of the Expo development launcher package for testing.",
6
6
  "main": "build/DevLauncher.js",
7
7
  "types": "build/DevLauncher.d.ts",
@@ -31,8 +31,8 @@
31
31
  "homepage": "https://docs.expo.dev",
32
32
  "dependencies": {
33
33
  "ajv": "8.11.0",
34
- "expo-dev-menu": "6.0.19",
35
- "expo-manifests": "~0.15.5",
34
+ "expo-dev-menu": "6.0.20",
35
+ "expo-manifests": "~0.15.7",
36
36
  "resolve-from": "^5.0.0"
37
37
  },
38
38
  "devDependencies": {
@@ -44,10 +44,10 @@
44
44
  "@testing-library/jest-native": "^4.0.4",
45
45
  "@testing-library/react-native": "^12.5.1",
46
46
  "babel-plugin-module-resolver": "^5.0.0",
47
- "babel-preset-expo": "~12.0.7",
47
+ "babel-preset-expo": "~12.0.9",
48
48
  "date-fns": "^2.28.0",
49
- "expo-dev-client-components": "2.0.3",
50
- "expo-module-scripts": "^4.0.3",
49
+ "expo-dev-client-components": "2.0.4",
50
+ "expo-module-scripts": "^4.0.4",
51
51
  "graphql": "^16.0.1",
52
52
  "graphql-request": "^3.6.1",
53
53
  "react": "18.3.1",
@@ -66,5 +66,5 @@
66
66
  ],
67
67
  "testTimeout": 15000
68
68
  },
69
- "gitHead": "9442f00874e0cd738030abae80e5bdef184a2581"
69
+ "gitHead": "1992dd3ba012ec59a646e383b9895ea6b577948b"
70
70
  }