expo-dev-launcher 56.0.18 → 56.0.20

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
+ ## 56.0.20 — 2026-06-10
14
+
15
+ _This version does not introduce any user-facing changes._
16
+
17
+ ## 56.0.19 — 2026-06-05
18
+
19
+ ### 💡 Others
20
+
21
+ - [iOS] Use `RCTPlatformName` instead of hardcoding `ios` when requesting bundles from Metro. ([#46443](https://github.com/expo/expo/pull/46443) by [@gabrieldonadel](https://github.com/gabrieldonadel))
22
+
13
23
  ## 56.0.18 — 2026-05-29
14
24
 
15
25
  _This version does not introduce any user-facing changes._
@@ -26,13 +26,13 @@ expoModule {
26
26
  }
27
27
 
28
28
  group = "host.exp.exponent"
29
- version = "56.0.18"
29
+ version = "56.0.20"
30
30
 
31
31
  android {
32
32
  namespace "expo.modules.devlauncher"
33
33
  defaultConfig {
34
34
  versionCode 9
35
- versionName "56.0.18"
35
+ versionName "56.0.20"
36
36
  }
37
37
 
38
38
  buildTypes {
@@ -424,7 +424,8 @@ static const NSTimeInterval EXDevLauncherDefaultRequestTimeout = 10.0;
424
424
  RCTDevLoadingViewSetEnabled(NO);
425
425
  [self.recentlyOpenedAppsRegistry appWasOpened:[expoUrl absoluteString] queryParams:devLauncherUrl.queryParams manifest:nil];
426
426
  if ([expoUrl.path isEqual:@"/"] || [expoUrl.path isEqual:@""]) {
427
- [self _initAppWithUrl:expoUrl bundleUrl:[NSURL URLWithString:@"index.bundle?platform=ios&dev=true&minify=false" relativeToURL:expoUrl] manifest:nil];
427
+ NSString *bundlePath = [NSString stringWithFormat:@"index.bundle?platform=%@&dev=true&minify=false", RCTPlatformName];
428
+ [self _initAppWithUrl:expoUrl bundleUrl:[NSURL URLWithString:bundlePath relativeToURL:expoUrl] manifest:nil];
428
429
  } else {
429
430
  [self _initAppWithUrl:expoUrl bundleUrl:expoUrl manifest:nil];
430
431
  }
@@ -434,10 +435,11 @@ static const NSTimeInterval EXDevLauncherDefaultRequestTimeout = 10.0;
434
435
  };
435
436
 
436
437
  void (^launchExpoApp)(NSURL *, EXManifestsManifest *) = ^(NSURL *bundleURL, EXManifestsManifest *manifest) {
438
+ NSURL *resolvedBundleURL = [EXDevLauncherURLHelper bundleURL:bundleURL withResolvedPlatform:RCTPlatformName];
437
439
  self->_shouldPreferUpdatesInterfaceSourceUrl = !manifest.isUsingDeveloperTool;
438
440
  RCTDevLoadingViewSetEnabled(manifest.isUsingDeveloperTool);
439
441
  [self.recentlyOpenedAppsRegistry appWasOpened:[expoUrl absoluteString] queryParams:devLauncherUrl.queryParams manifest:manifest];
440
- [self _initAppWithUrl:expoUrl bundleUrl:bundleURL manifest:manifest];
442
+ [self _initAppWithUrl:expoUrl bundleUrl:resolvedBundleURL manifest:manifest];
441
443
  if (onSuccess) {
442
444
  onSuccess();
443
445
  }
@@ -71,6 +71,28 @@ public class EXDevLauncherURLHelper: NSObject {
71
71
  return components.url ?? url
72
72
  }
73
73
 
74
+ // Expo CLI's manifest endpoint only accepts `ios`/`android`/`web`, so on
75
+ // platforms like `macos` we ask it for `ios` and rewrite the `platform`
76
+ // query param on the bundle URL it returns to match the actual runtime.
77
+ @objc
78
+ public static func bundleURL(_ bundleURL: URL, withResolvedPlatform platform: String) -> URL {
79
+ guard !bundleURL.isFileURL,
80
+ var components = URLComponents(url: bundleURL, resolvingAgainstBaseURL: false),
81
+ var queryItems = components.queryItems else {
82
+ return bundleURL
83
+ }
84
+ var didReplace = false
85
+ for i in queryItems.indices where queryItems[i].name == "platform" {
86
+ queryItems[i] = URLQueryItem(name: "platform", value: platform)
87
+ didReplace = true
88
+ }
89
+ guard didReplace else {
90
+ return bundleURL
91
+ }
92
+ components.queryItems = queryItems
93
+ return components.url ?? bundleURL
94
+ }
95
+
74
96
  @objc
75
97
  public static func getQueryParamsForUrl(_ url: URL) -> [String: String] {
76
98
  guard let components = URLComponents(url: url, resolvingAgainstBaseURL: false),
@@ -7,6 +7,7 @@
7
7
  #import <EXDevLauncher/RCTPackagerConnection+EXDevLauncherPackagerConnectionInterceptor.h>
8
8
  #import <EXDevLauncher/EXDevLauncherController.h>
9
9
 
10
+ #import <React/RCTConstants.h>
10
11
  #import <React/RCTReconnectingWebSocket.h>
11
12
 
12
13
  #import <objc/runtime.h>
@@ -22,7 +23,7 @@ static RCTReconnectingWebSocket *createSocketForURL(NSURL * url)
22
23
  components.scheme = ([scheme isEqualToString:@"https"] || [scheme isEqualToString:@"exps"]) ? @"https" : @"http";
23
24
  components.port = [url port];
24
25
  components.path = @"/message";
25
- components.queryItems = @[[NSURLQueryItem queryItemWithName:@"role" value:@"ios"]];
26
+ components.queryItems = @[[NSURLQueryItem queryItemWithName:@"role" value:RCTPlatformName]];
26
27
  static dispatch_queue_t queue;
27
28
  static dispatch_once_t onceToken;
28
29
  dispatch_once(&onceToken, ^{
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "expo-dev-launcher",
3
3
  "title": "Expo Development Launcher",
4
- "version": "56.0.18",
4
+ "version": "56.0.20",
5
5
  "description": "Pre-release version of the Expo development launcher package for testing.",
6
6
  "repository": {
7
7
  "type": "git",
@@ -16,7 +16,7 @@
16
16
  "homepage": "https://docs.expo.dev",
17
17
  "dependencies": {
18
18
  "@expo/schema-utils": "^56.0.0",
19
- "expo-dev-menu": "~56.0.16",
19
+ "expo-dev-menu": "~56.0.17",
20
20
  "expo-manifests": "~56.0.4"
21
21
  },
22
22
  "peerDependencies": {
@@ -25,9 +25,9 @@
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "^22.14.0",
28
- "expo": "56.0.7"
28
+ "expo": "56.0.10"
29
29
  },
30
- "gitHead": "97faadd78ca3d73250127fedf09dd6a27b21db5b",
30
+ "gitHead": "b1e94a5c1c5b19472a42ca25752a3533699bc46a",
31
31
  "scripts": {
32
32
  "build:plugin": "expo-module build plugin",
33
33
  "expo-module": "expo-module"
@@ -1 +1 @@
1
- {"root":["./src/index.ts","./src/pluginconfig.ts","./src/withdevlauncher.ts"],"version":"6.0.3"}
1
+ {"root":["./src/index.ts","./src/pluginconfig.ts","./src/withdevlauncher.ts"],"version":"6.0.2"}