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 +10 -0
- package/android/build.gradle +2 -2
- package/ios/EXDevLauncherController.m +4 -1
- package/ios/SwiftUI/DevLauncherViews.swift +1 -3
- package/ios/SwiftUI/DevServerInfoModal.swift +3 -13
- package/ios/SwiftUI/DevServersView.swift +16 -7
- package/ios/SwiftUI/ErrorView.swift +4 -16
- package/ios/SwiftUI/HomeTabView.swift +5 -3
- package/ios/SwiftUI/Navigation/Navigation.swift +3 -9
- package/ios/SwiftUI/SettingsTabView.swift +2 -6
- package/ios/SwiftUI/UpdatesTab/UpdatesListView.swift +1 -3
- package/ios/SwiftUI/Utils/Utils.swift +1 -5
- package/package.json +4 -4
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
|
package/android/build.gradle
CHANGED
|
@@ -20,13 +20,13 @@ expoModule {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
group = "host.exp.exponent"
|
|
23
|
-
version = "6.0.
|
|
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.
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
63
|
+
.background(Color.expoSystemGray6)
|
|
74
64
|
.clipShape(RoundedRectangle(cornerRadius: 6))
|
|
75
65
|
.overlay(
|
|
76
66
|
RoundedRectangle(cornerRadius: 6)
|
|
77
|
-
.stroke(
|
|
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
|
|
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
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
122
|
-
.background(Color(.secondarySystemBackground))
|
|
123
|
-
#endif
|
|
119
|
+
.background(Color.expoSecondarySystemBackground)
|
|
124
120
|
.cornerRadius(12)
|
|
125
121
|
}
|
|
126
122
|
}
|
|
@@ -51,11 +51,7 @@ extension Text {
|
|
|
51
51
|
|
|
52
52
|
extension View {
|
|
53
53
|
func systemGroupedBackground() -> some View {
|
|
54
|
-
|
|
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.
|
|
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.
|
|
19
|
-
"expo-manifests": "~1.0.
|
|
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": "
|
|
24
|
+
"gitHead": "475cdabd3faad56f0e8c4abcaaf21140c01c094f"
|
|
25
25
|
}
|