expo-dev-launcher 6.0.1 → 6.0.3

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
+ ## 6.0.3 — 2025-08-18
14
+
15
+ ### 💡 Others
16
+
17
+ - [ios] Wrap system color references for dev client. ([#38912](https://github.com/expo/expo/pull/38912) by [@douglowder](https://github.com/douglowder))
18
+
19
+ ## 6.0.2 — 2025-08-16
20
+
21
+ _This version does not introduce any user-facing changes._
22
+
13
23
  ## 6.0.1 — 2025-08-15
14
24
 
15
25
  ### 🐛 Bug fixes
@@ -20,13 +20,13 @@ expoModule {
20
20
  }
21
21
 
22
22
  group = "host.exp.exponent"
23
- version = "6.0.1"
23
+ version = "6.0.3"
24
24
 
25
25
  android {
26
26
  namespace "expo.modules.devlauncher"
27
27
  defaultConfig {
28
28
  versionCode 9
29
- versionName "6.0.1"
29
+ versionName "6.0.3"
30
30
  }
31
31
 
32
32
  buildTypes {
@@ -699,7 +699,10 @@
699
699
  -(NSString *)getAppIcon
700
700
  {
701
701
  NSString *appIcon = @"";
702
- NSString *appIconName = [[[[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIcons"] objectForKey:@"CFBundlePrimaryIcon"] objectForKey:@"CFBundleIconFiles"] lastObject];
702
+ NSString *appIconName = nil;
703
+ @try {
704
+ appIconName = [[[[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIcons"] objectForKey:@"CFBundlePrimaryIcon"] objectForKey:@"CFBundleIconFiles"] lastObject];
705
+ } @catch(NSException *_e) {}
703
706
 
704
707
  if (appIconName != nil) {
705
708
  NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
@@ -111,9 +111,7 @@ struct RecentlyOpenedAppRow: View {
111
111
  .foregroundColor(.secondary)
112
112
  }
113
113
  .padding()
114
- #if !os(tvOS)
115
- .background(Color(.secondarySystemBackground))
116
- #endif
114
+ .background(Color.expoSecondarySystemBackground)
117
115
  .clipShape(RoundedRectangle(cornerRadius: 12))
118
116
  }
119
117
  .buttonStyle(PlainButtonStyle())
@@ -28,9 +28,7 @@ struct DevServerInfoModal: View {
28
28
  info
29
29
  }
30
30
  .padding(20)
31
- #if !os(tvOS)
32
- .background(Color(.systemBackground))
33
- #endif
31
+ .background(Color.expoSystemBackground)
34
32
  .clipShape(RoundedRectangle(cornerRadius: 16))
35
33
  .shadow(color: .black.opacity(0.1), radius: 10, x: 0, y: 5)
36
34
  .padding(.horizontal, 40)
@@ -52,14 +50,6 @@ struct DevServerInfoModal: View {
52
50
  }
53
51
  }
54
52
 
55
- #if os(tvOS)
56
- let systemGray6 = Color(.systemGray)
57
- let systemGray4 = Color(.systemGray)
58
- #else
59
- let systemGray6 = Color(.systemGray6)
60
- let systemGray4 = Color(.systemGray4)
61
- #endif
62
-
63
53
  private var info: some View {
64
54
  VStack(alignment: .leading, spacing: 12) {
65
55
  Text("Start a local development server with:")
@@ -70,11 +60,11 @@ struct DevServerInfoModal: View {
70
60
  .font(.system(.callout, design: .monospaced))
71
61
  .padding(.horizontal, 12)
72
62
  .padding(.vertical, 8)
73
- .background(systemGray6)
63
+ .background(Color.expoSystemGray6)
74
64
  .clipShape(RoundedRectangle(cornerRadius: 6))
75
65
  .overlay(
76
66
  RoundedRectangle(cornerRadius: 6)
77
- .stroke(systemGray4, lineWidth: 1)
67
+ .stroke(Color.expoSystemGray4, lineWidth: 1)
78
68
  )
79
69
 
80
70
  Text("Then, select the local server when it appears here.")
@@ -3,6 +3,8 @@
3
3
  import SwiftUI
4
4
  import Combine
5
5
 
6
+ // swiftlint:disable closure_body_length
7
+
6
8
  private func sanitizeUrlString(_ urlString: String) -> String? {
7
9
  var sanitizedUrl = urlString.trimmingCharacters(in: .whitespacesAndNewlines)
8
10
 
@@ -64,7 +66,11 @@ struct DevServersView: View {
64
66
  Image(systemName: showingURLInput ? "chevron.down" : "chevron.right")
65
67
  .font(.headline)
66
68
  Text("Enter URL manually")
69
+ #if os(tvOS)
70
+ .font(.system(size: 28))
71
+ #else
67
72
  .font(.system(size: 14))
73
+ #endif
68
74
  Spacer()
69
75
  }
70
76
  }
@@ -79,7 +85,7 @@ struct DevServersView: View {
79
85
  #if !os(tvOS)
80
86
  .overlay(
81
87
  RoundedRectangle(cornerRadius: 5)
82
- .stroke(Color(.systemGray4), lineWidth: 1)
88
+ .stroke(Color.expoSystemGray4, lineWidth: 1)
83
89
  )
84
90
  #endif
85
91
  .clipShape(RoundedRectangle(cornerRadius: 5))
@@ -89,9 +95,9 @@ struct DevServersView: View {
89
95
  }
90
96
  .animation(.easeInOut, value: showingURLInput)
91
97
  .padding()
92
- #if !os(tvOS)
93
- .background(Color(showingURLInput ? .secondarySystemBackground : .systemBackground))
94
- #endif
98
+ .background(showingURLInput ?
99
+ Color.expoSecondarySystemBackground :
100
+ Color.expoSystemBackground)
95
101
  .clipShape(RoundedRectangle(cornerRadius: 12))
96
102
  }
97
103
 
@@ -107,7 +113,11 @@ struct DevServersView: View {
107
113
  showingInfoDialog = true
108
114
  } label: {
109
115
  Text("info".uppercased())
116
+ #if os(tvOS)
117
+ .font(.system(size: 24))
118
+ #else
110
119
  .font(.system(size: 12))
120
+ #endif
111
121
  }
112
122
  .buttonStyle(.automatic)
113
123
  }
@@ -172,11 +182,10 @@ struct DevServerRow: View {
172
182
  .foregroundColor(.secondary)
173
183
  }
174
184
  .padding()
175
- #if !os(tvOS)
176
- .background(Color(.secondarySystemBackground))
177
- #endif
185
+ .background(Color.expoSecondarySystemBackground)
178
186
  .clipShape(RoundedRectangle(cornerRadius: 12))
179
187
  }
180
188
  .buttonStyle(PlainButtonStyle())
181
189
  }
182
190
  }
191
+ // swiftlint:enable closure_body_length
@@ -8,16 +8,6 @@ struct ErrorView: View {
8
8
  let onReload: () -> Void
9
9
  let onGoHome: () -> Void
10
10
 
11
- #if os(tvOS)
12
- let systemGray6 = Color(.systemGray)
13
- let systemGray4 = Color(.systemGray)
14
- let systemBackground = Color(.white)
15
- #else
16
- let systemGray6 = Color(.systemGray6)
17
- let systemGray4 = Color(.systemGray4)
18
- let systemBackground = Color(.systemBackground)
19
- #endif
20
-
21
11
  var body: some View {
22
12
  VStack(spacing: 0) {
23
13
  VStack(alignment: .leading, spacing: 12) {
@@ -38,7 +28,7 @@ struct ErrorView: View {
38
28
 
39
29
  actions
40
30
  }
41
- .background(systemBackground)
31
+ .background(Color.expoSystemBackground)
42
32
  .navigationBarHidden(true)
43
33
  }
44
34
 
@@ -59,7 +49,7 @@ struct ErrorView: View {
59
49
  .padding()
60
50
  .frame(maxWidth: .infinity, alignment: .leading)
61
51
  }
62
- .background(systemGray6)
52
+ .background(Color.expoSystemGray6)
63
53
  .cornerRadius(8)
64
54
  }
65
55
 
@@ -81,14 +71,12 @@ struct ErrorView: View {
81
71
  .foregroundColor(.black)
82
72
  .frame(maxWidth: .infinity)
83
73
  .padding()
84
- #if !os(tvOS)
85
- .background(Color(.systemGray5))
86
- #endif
74
+ .background(Color.expoSystemGray5)
87
75
  .cornerRadius(8)
88
76
  }
89
77
  }
90
78
  .padding(.horizontal, 20)
91
79
  .padding(.vertical, 20)
92
- .background(systemBackground)
80
+ .background(Color.expoSystemBackground)
93
81
  }
94
82
  }
@@ -30,7 +30,11 @@ struct HomeTabView: View {
30
30
  Button("reset".uppercased()) {
31
31
  viewModel.clearRecentlyOpenedApps()
32
32
  }
33
+ #if os(tvOS)
34
+ .font(.system(size: 24))
35
+ #else
33
36
  .font(.system(size: 12))
37
+ #endif
34
38
  }
35
39
 
36
40
  LazyVStack(spacing: 6) {
@@ -65,9 +69,7 @@ struct HomeTabView: View {
65
69
  .padding()
66
70
  }
67
71
  .buttonStyle(PlainButtonStyle())
68
- #if !os(tvOS)
69
- .background(Color(.secondarySystemGroupedBackground))
70
- #endif
72
+ .background(Color.expoSecondarySystemGroupedBackground)
71
73
  .cornerRadius(18)
72
74
  }
73
75
  }
@@ -58,9 +58,7 @@ struct DevLauncherNavigationHeader: View {
58
58
  } else {
59
59
  ZStack {
60
60
  Circle()
61
- #if !os(tvOS)
62
- .fill(Color(.systemGray6))
63
- #endif
61
+ .fill(Color.expoSystemGray6)
64
62
  .frame(width: 36, height: 36)
65
63
 
66
64
  Image("user-icon", bundle: getDevLauncherBundle())
@@ -72,9 +70,7 @@ struct DevLauncherNavigationHeader: View {
72
70
  }
73
71
  .padding(.horizontal)
74
72
  .padding(.vertical, 8)
75
- #if !os(tvOS)
76
- .background(Color(.systemBackground))
77
- #endif
73
+ .background(Color.expoSystemBackground)
78
74
  }
79
75
 
80
76
  @ViewBuilder
@@ -103,9 +99,7 @@ struct DevLauncherNavigationHeader: View {
103
99
  .aspectRatio(contentMode: .fill)
104
100
  } placeholder: {
105
101
  Circle()
106
- #if !os(tvOS)
107
- .fill(Color(.systemGray5))
108
- #endif
102
+ .fill(Color.expoSystemGray5)
109
103
  .overlay(
110
104
  Image(systemName: "person")
111
105
  .font(.system(size: 16))
@@ -68,9 +68,7 @@ struct SettingsTabView: View {
68
68
  Toggle("Show menu at launch", isOn: $viewModel.showOnLaunch)
69
69
  }
70
70
  .padding()
71
- #if !os(tvOS)
72
- .background(Color(.secondarySystemBackground))
73
- #endif
71
+ .background(Color.expoSecondarySystemBackground)
74
72
  .cornerRadius(12)
75
73
  }
76
74
 
@@ -118,9 +116,7 @@ struct SettingsTabView: View {
118
116
  }
119
117
  .padding()
120
118
  }
121
- #if !os(tvOS)
122
- .background(Color(.secondarySystemBackground))
123
- #endif
119
+ .background(Color.expoSecondarySystemBackground)
124
120
  .cornerRadius(12)
125
121
  }
126
122
  }
@@ -41,9 +41,7 @@ struct UpdatesListView: View {
41
41
  }
42
42
  }
43
43
  }
44
- #if !os(tvOS)
45
- .background(Color(.systemGroupedBackground))
46
- #endif
44
+ .background(Color.expoSystemGroupedBackground)
47
45
  .onChange(of: filterByCompatibility) { _ in
48
46
  applyFilters()
49
47
  }
@@ -51,11 +51,7 @@ extension Text {
51
51
 
52
52
  extension View {
53
53
  func systemGroupedBackground() -> some View {
54
- #if os(tvOS)
55
- return self
56
- #else
57
- return self.background(Color(.systemGroupedBackground))
58
- #endif
54
+ return self.background(Color.expoSystemGroupedBackground)
59
55
  }
60
56
  }
61
57
 
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.1",
4
+ "version": "6.0.3",
5
5
  "description": "Pre-release version of the Expo development launcher package for testing.",
6
6
  "repository": {
7
7
  "type": "git",
@@ -15,11 +15,11 @@
15
15
  "license": "MIT",
16
16
  "homepage": "https://docs.expo.dev",
17
17
  "dependencies": {
18
- "expo-dev-menu": "7.0.1",
19
- "expo-manifests": "~1.0.1"
18
+ "expo-dev-menu": "7.0.3",
19
+ "expo-manifests": "~1.0.2"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "expo": "*"
23
23
  },
24
- "gitHead": "2f7f90d0736af48cb542ccbc8addb836e330693a"
24
+ "gitHead": "475cdabd3faad56f0e8c4abcaaf21140c01c094f"
25
25
  }