expo-updates 58.0.8 → 58.0.9

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,12 +10,17 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 58.0.9 — 2026-09-25
14
+
15
+ _This version does not introduce any user-facing changes._
16
+
13
17
  ## 58.0.8 — 2026-09-23
14
18
 
15
19
  ### 🐛 Bug fixes
16
20
 
17
21
  - Log a warning naming the event and its error message when the updates state machine drops an event that is not allowed from the current state. Previously such an event was discarded silently in release builds, so an error could disappear without a trace. ([#50163](https://github.com/expo/expo/pull/50163) by [@douglowder](https://github.com/douglowder))
18
22
  - Add an `EX_UPDATES_ASSERT_INVALID_STATE` build flag that makes the updates state machine stop the app when it drops an event, so an invalid transition fails an E2E run instead of passing unnoticed. ([#50163](https://github.com/expo/expo/pull/50163) by [@douglowder](https://github.com/douglowder))
23
+ - [iOS] Fix `with-node.sh` ignoring the app's `NODE_BINARY` and `.xcode.env` when building without CocoaPods. ([#50084](https://github.com/expo/expo/pull/50084) by [@chrfalch](https://github.com/chrfalch))
19
24
 
20
25
  ## 58.0.7 — 2026-09-22
21
26
 
@@ -42,7 +42,7 @@ expoModule {
42
42
  }
43
43
 
44
44
  group = 'host.exp.exponent'
45
- version = '58.0.8'
45
+ version = '58.0.9'
46
46
 
47
47
  // Utility method to derive boolean values from the environment or from Java properties,
48
48
  // and return them as strings to be used in BuildConfig fields
@@ -103,7 +103,7 @@ android {
103
103
  namespace "expo.modules.updates"
104
104
  defaultConfig {
105
105
  versionCode 31
106
- versionName '58.0.8'
106
+ versionName '58.0.9'
107
107
  consumerProguardFiles("proguard-rules.pro")
108
108
  testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
109
109
 
@@ -1,2 +1,2 @@
1
- #Mon Sep 21 11:42:05 IST 2026
1
+ #Fri Sep 25 09:12:16 IST 2026
2
2
  gradle.version=9.4.1
@@ -101,12 +101,7 @@ internal final class InvalidRequestHeadersOverrideException: Exception {
101
101
 
102
102
  /**
103
103
  * Base class for exceptions that wrap an underlying error and need its description to reach
104
- * JavaScript.
105
- *
106
- * `Promise.reject(code:description:)` and `Exception(name:description:code:)` cannot be used for
107
- * this: they set `description` but leave `reason` at its default, and the JS-facing message is
108
- * derived from `reason`, so the description is dropped before it reaches the caller. Overriding
109
- * `reason` is the supported way to control that message.
104
+ * JavaScript. Subclasses override `reason` to include the underlying error's description.
110
105
  */
111
106
  internal class UpdatesUnderlyingErrorException: Exception, @unchecked Sendable {
112
107
  internal let underlyingError: Error
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-updates",
3
- "version": "58.0.8",
3
+ "version": "58.0.9",
4
4
  "description": "Fetches and manages remotely-hosted assets and updates to your app's JS bundle.",
5
5
  "keywords": [
6
6
  "expo",
@@ -71,7 +71,7 @@
71
71
  "@types/picomatch": "^4.0.0",
72
72
  "@types/react": "~19.3.0",
73
73
  "@vercel/ncc": "^0.38.3",
74
- "expo-dev-client": "58.0.6",
74
+ "expo-dev-client": "58.0.7",
75
75
  "expo-module-scripts": "56.0.3",
76
76
  "express": "^5.1.0",
77
77
  "form-data": "^4.0.4",
@@ -91,7 +91,7 @@
91
91
  "optional": true
92
92
  }
93
93
  },
94
- "gitHead": "8aeb4368d396d2d71a2fc8c652c4d1d4d53ed858",
94
+ "gitHead": "ad41d067bd3df6dd12f1788acc6b54a68e7a650d",
95
95
  "scripts": {
96
96
  "build": "pnpm run build:lib && pnpm run build:plugin && pnpm run build:utils && pnpm run build:cli",
97
97
  "build:lib": "expo-build src",
@@ -9,20 +9,38 @@
9
9
 
10
10
  CURR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
11
11
 
12
- # Start with a default
13
- NODE_BINARY=$(command -v node)
12
+ # CocoaPods sets PODS_ROOT, and its env files override any inherited NODE_BINARY.
13
+ # Without CocoaPods (SwiftPM) the calling build phase may already have resolved
14
+ # NODE_BINARY, so keep it and read the app's env files from SRCROOT only if unset.
15
+ # The mode is fixed here because the env files may change PODS_ROOT.
16
+ if [[ -n "$PODS_ROOT" ]]; then
17
+ USES_COCOAPODS=1
18
+ # Start with a default
19
+ NODE_BINARY=$(command -v node)
20
+ ENV_PATH="$PODS_ROOT/../.xcode.env"
21
+ else
22
+ USES_COCOAPODS=
23
+ ENV_PATH="$SRCROOT/.xcode.env"
24
+ fi
14
25
  export NODE_BINARY
15
26
 
16
- # Override the default with the global environment
17
- ENV_PATH="$PODS_ROOT/../.xcode.env"
18
- if [[ -f "$ENV_PATH" ]]; then
19
- source "$ENV_PATH"
27
+ if [[ -n "$USES_COCOAPODS" || -z "$NODE_BINARY" ]]; then
28
+ # Override the default with the global environment
29
+ if [[ -f "$ENV_PATH" ]]; then
30
+ source "$ENV_PATH"
31
+ fi
32
+
33
+ # Override the global with the local environment
34
+ LOCAL_ENV_PATH="${ENV_PATH}.local"
35
+ if [[ -f "$LOCAL_ENV_PATH" ]]; then
36
+ source "$LOCAL_ENV_PATH"
37
+ fi
20
38
  fi
21
39
 
22
- # Override the global with the local environment
23
- LOCAL_ENV_PATH="${ENV_PATH}.local"
24
- if [[ -f "$LOCAL_ENV_PATH" ]]; then
25
- source "$LOCAL_ENV_PATH"
40
+ if [[ -z "$USES_COCOAPODS" ]]; then
41
+ NODE_BINARY="${NODE_BINARY:-$(command -v node)}"
42
+ # An env file that unsets NODE_BINARY also drops its export.
43
+ export NODE_BINARY
26
44
  fi
27
45
 
28
46
  if [[ -n "$NODE_BINARY" && -x "$NODE_BINARY" ]]; then