expo-dev-launcher 55.0.2 → 55.0.4

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
+ ## 55.0.4 — 2026-01-27
14
+
15
+ ### 🐛 Bug fixes
16
+
17
+ - [iOS] Fix issue where the header would overlap the safe area. ([#42540](https://github.com/expo/expo/pull/42540) by [@alanjhughes](https://github.com/alanjhughes))
18
+
19
+ ## 55.0.3 — 2026-01-26
20
+
21
+ _This version does not introduce any user-facing changes._
22
+
13
23
  ## 55.0.2 — 2026-01-22
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 = "55.0.2"
29
+ version = "55.0.4"
30
30
 
31
31
  android {
32
32
  namespace "expo.modules.devlauncher"
33
33
  defaultConfig {
34
34
  versionCode 9
35
- versionName "55.0.2"
35
+ versionName "55.0.4"
36
36
  }
37
37
 
38
38
  buildTypes {
@@ -10,6 +10,23 @@ import ExpoModulesCore
10
10
  addHostingController()
11
11
  }
12
12
 
13
+ #if !os(macOS)
14
+ public override func viewDidLayoutSubviews() {
15
+ super.viewDidLayoutSubviews()
16
+ updateTopSafeAreaInset()
17
+ }
18
+
19
+ private func updateTopSafeAreaInset() {
20
+ let hostingViewInset = hostingController?.view.safeAreaInsets.top ?? 0
21
+ let windowInset = view.window?.safeAreaInsets.top ?? 0
22
+ let newInset: CGFloat = hostingViewInset > 0 ? 0 : windowInset
23
+
24
+ if newInset != viewModel.topSafeAreaInset {
25
+ viewModel.topSafeAreaInset = newInset
26
+ }
27
+ }
28
+ #endif
29
+
13
30
  private func setupViewController() {
14
31
  view.backgroundColor = UIColor.white
15
32
 
@@ -11,6 +11,8 @@ private let DEV_LAUNCHER_DEFAULT_SCHEME = "expo-dev-launcher"
11
11
 
12
12
  @MainActor
13
13
  class DevLauncherViewModel: ObservableObject {
14
+ /// Safe area inset for when VC hierarchy doesn't propagate it (e.g., SwiftUI/brownfield apps)
15
+ @Published var topSafeAreaInset: CGFloat = 0
14
16
  @Published var recentlyOpenedApps: [RecentlyOpenedApp] = []
15
17
  @Published var buildInfo: [AnyHashable: Any] = [:]
16
18
  @Published var updatesConfig: [AnyHashable: Any] = [:]
@@ -2,6 +2,17 @@
2
2
  import SwiftUI
3
3
  import ExpoModulesCore
4
4
 
5
+ private struct SafeAreaTopPadding: View {
6
+ let manualInset: CGFloat
7
+
8
+ var body: some View {
9
+ if manualInset > 0 {
10
+ Color.expoSystemBackground
11
+ .frame(height: manualInset)
12
+ }
13
+ }
14
+ }
15
+
5
16
  class DevLauncherNavigation: ObservableObject {
6
17
  @Binding var showingUserProfile: Bool
7
18
 
@@ -27,6 +38,13 @@ struct DevLauncherNavigationHeader: View {
27
38
  @EnvironmentObject var navigation: DevLauncherNavigation
28
39
 
29
40
  var body: some View {
41
+ VStack(spacing: 0) {
42
+ SafeAreaTopPadding(manualInset: viewModel.topSafeAreaInset)
43
+ headerContent
44
+ }
45
+ }
46
+
47
+ private var headerContent: some View {
30
48
  HStack {
31
49
  HStack(spacing: 12) {
32
50
  if let path = viewModel.buildInfo["appIcon"] as? String,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "expo-dev-launcher",
3
3
  "title": "Expo Development Launcher",
4
- "version": "55.0.2",
4
+ "version": "55.0.4",
5
5
  "description": "Pre-release version of the Expo development launcher package for testing.",
6
6
  "repository": {
7
7
  "type": "git",
@@ -15,12 +15,12 @@
15
15
  "license": "MIT",
16
16
  "homepage": "https://docs.expo.dev",
17
17
  "dependencies": {
18
- "@expo/schema-utils": "^55.0.1",
19
- "expo-dev-menu": "55.0.1",
20
- "expo-manifests": "~55.0.1"
18
+ "@expo/schema-utils": "^55.0.2",
19
+ "expo-dev-menu": "55.0.3",
20
+ "expo-manifests": "~55.0.3"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "expo": "*"
24
24
  },
25
- "gitHead": "4728ba25fbd4d5835780306de78a83bd1628e271"
25
+ "gitHead": "220594d473a3100248087151004ae4acb7282d5f"
26
26
  }