react-native-bspatch 4.0.2 → 4.1.0

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/README.md CHANGED
@@ -7,7 +7,7 @@ Premium OTA update solution for React Native using **TurboModules** + **bsdiff b
7
7
  - **Binary delta patches** — after the first OTA, clients download only the diff from the OTA bundle they already run (typically a few hundred KB)
8
8
  - **POSIX `mmap()` Zero-Copy Engine** — patches directly in mapped pages, saving ~85–90% heap RAM
9
9
  - **ARM NEON SIMD Fast-Path** — vectorized diff patching via Clang SIMD
10
- - **Silent Background Updates** — download and apply updates completely in the background; smoothly activates on next launch or app backgrounding
10
+ - **Silent Background Updates** — download and apply updates completely in the background; activates on next cold start or when you call `reloadBundle()`
11
11
  - **Auto Native Version Detection** — auto-detects `versionName` (Android) and `CFBundleShortVersionString` (iOS); no manual version sync in JS
12
12
  - **Asymmetric Cryptography (RSA & ECDSA)** — sign patches on server/CI with Private Key; client verifies with Public Key (zero secret leakage)
13
13
  - **Shorebird-style CLI** — `patch android|ios`, release version read from the native project and confirmed with one Enter
@@ -147,7 +147,7 @@ type OtaConfig = {
147
147
  * - MANUAL: call checkUpdate() / applyUpdate() manually
148
148
  * - ON_APP_START: check and apply automatically on cold start
149
149
  * - ON_APP_FOREGROUND: check when app returns to foreground
150
- * - BACKGROUND_DOWNLOAD: download and patch in background; applies on next launch or app backgrounding
150
+ * - BACKGROUND_DOWNLOAD: download and patch in background; applies on next cold start or reloadBundle()
151
151
  */
152
152
  updateMode?: OtaUpdateMode;
153
153
 
@@ -192,7 +192,7 @@ enum OtaUpdateMode {
192
192
  MANUAL = 'MANUAL', // No auto behavior
193
193
  ON_APP_START = 'ON_APP_START', // Check + apply on every cold start
194
194
  ON_APP_FOREGROUND = 'ON_APP_FOREGROUND', // Check when app returns to foreground
195
- BACKGROUND_DOWNLOAD = 'BACKGROUND_DOWNLOAD', // Silent download; applies on next start or app backgrounding
195
+ BACKGROUND_DOWNLOAD = 'BACKGROUND_DOWNLOAD', // Silent download; applies on next cold start or reloadBundle()
196
196
  }
197
197
  ```
198
198
 
@@ -273,13 +273,14 @@ The native `OtaBundleResolver` runs **before JS boots** on every cold start:
273
273
 
274
274
  ```
275
275
  1. Read metadata.json
276
- 2. If lastLaunchSuccessful == false → rollback to previous version
276
+ 2. If lastLaunchSuccessful == false → retry (see 7) or rollback to previous version
277
277
  3. If currentVersion == baseAppVersion → use APK/IPA bundle
278
278
  4. Otherwise → load OTA bundle from ota/v{version}/index.android.bundle (or main.jsbundle)
279
279
  5. Unless this version is already verified: mark lastLaunchSuccessful = false (pending)
280
280
  6. JS boots → OtaProvider renders the app → marks the running version healthy + verified
281
- 7. If that never happens (crash on load or first render) → next boot sees false → rolls back
282
- and records the version in failedVersions so it is never re-applied
281
+ 7. If that never happens (crash on load or first render, or the app is killed first) → next
282
+ boot retries the same version, up to 3 unverified launches in total; after that it rolls
283
+ back and records the version in failedVersions so it is never re-applied
283
284
  8. A verified version is never rolled back later (a crash after it rendered is an app bug,
284
285
  and killing the app during a download must not discard a good bundle)
285
286
  ```
@@ -325,6 +326,7 @@ const {
325
326
  metrics, // OtaMetrics | null — timing/size data after update
326
327
  isUpdateReady, // True if background update is downloaded and ready
327
328
  applyUpdate, // () => Promise<void> — download and apply update immediately
329
+ applyVersion, // (version) => Promise<void> — download and apply a specific version from the manifest
328
330
  resetToFactory, // () => Promise<void> — wipe OTA state, reload APK/IPA
329
331
  markAsHealthy, // () => Promise<void> — manually mark launch OK
330
332
  checkUpdate, // () => Promise<void> — manual update check
@@ -16,7 +16,8 @@ import java.io.File
16
16
  *
17
17
  * Lifecycle:
18
18
  * 1. Read metadata.json
19
- * 2. If lastLaunchSuccessful == false → rollback to previous version
19
+ * 2. If lastLaunchSuccessful == false → retry the same version up to MAX_LAUNCH_ATTEMPTS,
20
+ * then rollback to previous version
20
21
  * 3. Mark current launch as pending (lastLaunchSuccessful = false)
21
22
  * 4. Return the bundle path (or null for APK default)
22
23
  * 5. JS marks healthy after first render → lastLaunchSuccessful = true, verifiedVersion = current
@@ -35,6 +36,8 @@ object OtaBundleResolver {
35
36
  private const val METADATA_FILE = "metadata.json"
36
37
  private const val DEFAULT_BASE_VERSION = 1
37
38
  private const val MAX_ROLLBACK = 3
39
+ /** Unverified launches allowed before rollback: a kill before first render is indistinguishable from a crash */
40
+ private const val MAX_LAUNCH_ATTEMPTS = 3
38
41
 
39
42
  /** Version this process booted (set by resolve), so markAsHealthy verifies only that one */
40
43
  @Volatile private var launchedVersion: Int? = null
@@ -84,6 +87,16 @@ object OtaBundleResolver {
84
87
  val verifiedVersion = metadata.optInt("verifiedVersion", -1)
85
88
 
86
89
  // ── Step 1: Crash detection & rollback ──────────────────────────
90
+ val launchAttempts = metadata.optInt("launchAttempts", 1)
91
+ val currentBundle = File(File(otaDir, "v${currentVersion}"), "index.android.bundle")
92
+ if (!lastLaunchOk && currentVersion > baseVersion && launchAttempts < MAX_LAUNCH_ATTEMPTS &&
93
+ currentBundle.exists()) {
94
+ metadata.put("launchAttempts", launchAttempts + 1)
95
+ writeMetadata(metadataFile, metadata)
96
+ Log.w(TAG, "Previous launch of V$currentVersion not verified → retry ${launchAttempts + 1}/$MAX_LAUNCH_ATTEMPTS")
97
+ return currentBundle.absolutePath
98
+ }
99
+
87
100
  if (!lastLaunchOk && currentVersion > baseVersion) {
88
101
  Log.w(TAG, "Previous launch failed! Rolling back from V$currentVersion...")
89
102
  // Remember the crashing version so JS never re-applies it
@@ -113,6 +126,7 @@ object OtaBundleResolver {
113
126
  // Mark this rollback attempt as pending
114
127
  if (newVersion != verifiedVersion) {
115
128
  metadata.put("lastLaunchSuccessful", false)
129
+ metadata.put("launchAttempts", 1)
116
130
  writeMetadata(metadataFile, metadata)
117
131
  }
118
132
 
@@ -139,6 +153,7 @@ object OtaBundleResolver {
139
153
  // the next boot will see false and trigger rollback
140
154
  if (currentVersion != verifiedVersion) {
141
155
  metadata.put("lastLaunchSuccessful", false)
156
+ metadata.put("launchAttempts", 1)
142
157
  writeMetadata(metadataFile, metadata)
143
158
  }
144
159
 
@@ -10,7 +10,8 @@ import Foundation
10
10
  *
11
11
  * Lifecycle:
12
12
  * 1. Read metadata.json
13
- * 2. If lastLaunchSuccessful == false → rollback to previous version
13
+ * 2. If lastLaunchSuccessful == false → retry the same version up to maxLaunchAttempts,
14
+ * then rollback to previous version
14
15
  * 3. Mark current launch as pending (lastLaunchSuccessful = false)
15
16
  * 4. Return the bundle path (or nil for IPA default)
16
17
  * 5. JS marks healthy after first render → lastLaunchSuccessful = true, verifiedVersion = current
@@ -34,6 +35,9 @@ public class OtaBundleResolver: NSObject {
34
35
  private static let metadataFile = "metadata.json"
35
36
  public static let defaultBaseVersion = 1
36
37
  private static let maxRollback = 3
38
+ /// Unverified launches allowed before rollback: a kill before first render (e.g. a
39
+ /// background reload, then swiped away) is indistinguishable from a crash
40
+ private static let maxLaunchAttempts = 3
37
41
  private static let maxRollbackIterations = 10 // Safety limit to prevent infinite loops
38
42
 
39
43
  /// Version this process booted (set by resolve), so markAsHealthy verifies only that one
@@ -90,6 +94,16 @@ public class OtaBundleResolver: NSObject {
90
94
  let verifiedVersion = metadata["verifiedVersion"] as? Int
91
95
 
92
96
  // ── Step 1: Crash detection & rollback ──────────────────────────
97
+ let launchAttempts = metadata["launchAttempts"] as? Int ?? 1
98
+ let currentBundle = otaDir.appendingPathComponent("v\(currentVersion)/main.jsbundle")
99
+ if !lastLaunchOk && currentVersion > baseVersion && launchAttempts < maxLaunchAttempts
100
+ && FileManager.default.fileExists(atPath: currentBundle.path) {
101
+ metadata["launchAttempts"] = launchAttempts + 1
102
+ writeMetadata(url: metadataURL, metadata: metadata)
103
+ NSLog("[OtaBundleResolver] Previous launch of V\(currentVersion) not verified → retry \(launchAttempts + 1)/\(maxLaunchAttempts)")
104
+ return currentBundle
105
+ }
106
+
93
107
  if !lastLaunchOk && currentVersion > baseVersion {
94
108
  NSLog("[OtaBundleResolver] Previous launch failed! Rolling back from V\(currentVersion)...")
95
109
 
@@ -118,6 +132,7 @@ public class OtaBundleResolver: NSObject {
118
132
  // Mark this rollback attempt as pending
119
133
  if newVersion != verifiedVersion {
120
134
  metadata["lastLaunchSuccessful"] = false
135
+ metadata["launchAttempts"] = 1
121
136
  writeMetadata(url: metadataURL, metadata: metadata)
122
137
  }
123
138
 
@@ -143,6 +158,7 @@ public class OtaBundleResolver: NSObject {
143
158
  // Mark launch as pending
144
159
  if currentVersion != verifiedVersion {
145
160
  metadata["lastLaunchSuccessful"] = false
161
+ metadata["launchAttempts"] = 1
146
162
  writeMetadata(url: metadataURL, metadata: metadata)
147
163
  }
148
164
 
@@ -35,7 +35,6 @@ function OtaProvider({
35
35
  const [isUpdateReady, setIsUpdateReady] = (0, _react.useState)(false);
36
36
  const appState = (0, _react.useRef)(_reactNative.AppState.currentState);
37
37
  const isCheckingRef = (0, _react.useRef)(false);
38
- const pendingReloadRef = (0, _react.useRef)(false);
39
38
  const bootstrapDone = (0, _react.useRef)(false);
40
39
  /** Version the native resolver loaded for this JS session */
41
40
  const runningVersionRef = (0, _react.useRef)(config.baseAppVersion);
@@ -112,15 +111,16 @@ function OtaProvider({
112
111
  /**
113
112
  * Exposed method for manual trigger
114
113
  */
115
- const applyUpdate = (0, _react.useCallback)(async () => {
114
+ const applyVersion = (0, _react.useCallback)(async targetVersion => {
116
115
  if (!isDebugUpdateEnabled) {
117
116
  setPendingCount(0);
118
117
  setStatus(_types.OtaStatus.UP_TO_DATE);
119
118
  setMessage('OTA updates are disabled while running a debug build.');
120
119
  return;
121
120
  }
122
- await executeApplyUpdate(patches, currentVersion, latestVersion);
123
- }, [currentVersion, executeApplyUpdate, isDebugUpdateEnabled, latestVersion, patches]);
121
+ await executeApplyUpdate(patches, currentVersion, targetVersion);
122
+ }, [currentVersion, executeApplyUpdate, isDebugUpdateEnabled, patches]);
123
+ const applyUpdate = (0, _react.useCallback)(() => applyVersion(latestVersion), [applyVersion, latestVersion]);
124
124
  const downloadBackgroundUpdate = (0, _react.useCallback)(async (patchList, localV, targetV) => {
125
125
  const directPatch = (0, _otaCore.selectUpdate)(patchList, localV, targetV);
126
126
  if (!directPatch) return;
@@ -129,7 +129,6 @@ function OtaProvider({
129
129
  await (0, _otaCore.applyOtaPatchInternal)(directPatch, effectiveConfig, (s, msg, m) => {
130
130
  if (s === _types.OtaStatus.SUCCESS) {
131
131
  setIsUpdateReady(true);
132
- pendingReloadRef.current = true;
133
132
  setStatus(_types.OtaStatus.UP_TO_DATE);
134
133
  setMessage(`Update V${targetV} ready for next launch`);
135
134
  if (m) setMetrics(m);
@@ -259,17 +258,13 @@ function OtaProvider({
259
258
  }, []);
260
259
 
261
260
  /**
262
- * AppState listener for ON_APP_FOREGROUND mode and silent background reload
261
+ * AppState listener for ON_APP_FOREGROUND mode.
262
+ * A downloaded update is not reloaded on background: iOS suspends JS before the
263
+ * first render, so the native resolver counts the launch as failed and rolls it back.
264
+ * metadata already points at the new version, so the next cold start applies it
263
265
  */
264
266
  (0, _react.useEffect)(() => {
265
267
  const subscription = _reactNative.AppState.addEventListener('change', nextAppState => {
266
- // When going into background: if update is downloaded and ready, reload bundle silently
267
- // Only 'background', not 'inactive' (iOS fires it for Control Center, calls,
268
- // Face ID). Any previous state: iOS goes active → inactive → background.
269
- if (nextAppState === 'background' && pendingReloadRef.current) {
270
- pendingReloadRef.current = false;
271
- _NativeBsPatch.default.reloadBundle();
272
- }
273
268
  if (appState.current.match(/inactive|background/) && nextAppState === 'active' && bootstrapDone.current) {
274
269
  const mode = config.updateMode ?? _types.OtaUpdateMode.MANUAL;
275
270
  if (mode === _types.OtaUpdateMode.ON_APP_FOREGROUND) {
@@ -319,11 +314,12 @@ function OtaProvider({
319
314
  metrics,
320
315
  isUpdateReady,
321
316
  applyUpdate,
317
+ applyVersion,
322
318
  resetToFactory,
323
319
  markAsHealthy,
324
320
  checkUpdate: checkUpdates,
325
321
  reloadBundle: () => _NativeBsPatch.default.reloadBundle()
326
- }), [status, message, progress, currentVersion, latestVersion, pendingCount, isChecking, metrics, isUpdateReady, applyUpdate, resetToFactory, markAsHealthy, checkUpdates]);
322
+ }), [status, message, progress, currentVersion, latestVersion, pendingCount, isChecking, metrics, isUpdateReady, applyUpdate, applyVersion, resetToFactory, markAsHealthy, checkUpdates]);
327
323
 
328
324
  // Logic to determine if we should block the UI
329
325
  const isBlocking = (0, _react.useMemo)(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_NativeBsPatch","_interopRequireDefault","_otaCore","_otaLogger","_otaMetadata","_types","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OtaContext","createContext","undefined","OtaProvider","children","config","loadingView","useLoadingView","status","setStatus","useState","OtaStatus","IDLE","message","setMessage","progress","setProgress","currentVersion","setCurrentVersion","baseAppVersion","latestVersion","setLatestVersion","pendingCount","setPendingCount","isChecking","setIsChecking","metrics","setMetrics","patches","setPatches","isInitialized","setIsInitialized","isUpdateReady","setIsUpdateReady","appState","useRef","AppState","currentState","isCheckingRef","pendingReloadRef","bootstrapDone","runningVersionRef","progressRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","configError","useMemo","validateOtaConfig","Error","setProgressIfChanged","useCallback","nextProgress","current","getEffectiveConfig","appVersion","nativeVer","NativeBsPatch","getAppVersion","executeApplyUpdate","patchList","currentVer","targetVer","directPatch","selectUpdate","console","warn","ERROR","effectiveConfig","DOWNLOADING","applyOtaPatchInternal","s","msg","m","percent","error","applyUpdate","UP_TO_DATE","downloadBackgroundUpdate","localV","targetV","SUCCESS","autoReload","checkUpdates","CHECKING","createOtaLogger","onEvent","emit","OtaEvent","CHECK_UPDATE","remotePatches","fetchOtaManifest","metadata","loadMetadata","failed","failedVersions","platformPatches","filter","p","platform","toLowerCase","Platform","OS","includes","toVersion","maxV","length","Math","max","map","UPDATE_AVAILABLE","updateMode","OtaUpdateMode","BACKGROUND_DOWNLOAD","ON_APP_START","ON_APP_FOREGROUND","useEffect","bootstrap","readDir","DOCUMENT_DIR","then","dirs","dir","startsWith","removePath","catch","mode","MANUAL","subscription","addEventListener","nextAppState","reloadBundle","match","remove","markAsHealthy","log","MARK_HEALTHY","markHealthy","resetToFactory","APPLYING","RESET_FACTORY","exists","OTA_DIR","moveFile","Date","now","value","checkUpdate","isBlocking","healthyMarkedRef","jsx","Provider","View","style","styles","loadingContainer","jsxs","loadingCard","ActivityIndicator","size","color","Text","loadingTitle","loadingText","progressText","toFixed","useOta","context","useContext","StyleSheet","create","flex","justifyContent","alignItems","backgroundColor","paddingHorizontal","width","maxWidth","borderRadius","paddingVertical","borderWidth","borderColor","marginTop","fontSize","fontWeight","lineHeight","textAlign"],"sourceRoot":"../../../src","sources":["ota/OtaProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_NativeBsPatch","_interopRequireDefault","_otaCore","_otaLogger","_otaMetadata","_types","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OtaContext","createContext","undefined","OtaProvider","children","config","loadingView","useLoadingView","status","setStatus","useState","OtaStatus","IDLE","message","setMessage","progress","setProgress","currentVersion","setCurrentVersion","baseAppVersion","latestVersion","setLatestVersion","pendingCount","setPendingCount","isChecking","setIsChecking","metrics","setMetrics","patches","setPatches","isInitialized","setIsInitialized","isUpdateReady","setIsUpdateReady","appState","useRef","AppState","currentState","isCheckingRef","bootstrapDone","runningVersionRef","progressRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","configError","useMemo","validateOtaConfig","Error","setProgressIfChanged","useCallback","nextProgress","current","getEffectiveConfig","appVersion","nativeVer","NativeBsPatch","getAppVersion","executeApplyUpdate","patchList","currentVer","targetVer","directPatch","selectUpdate","console","warn","ERROR","effectiveConfig","DOWNLOADING","applyOtaPatchInternal","s","msg","m","percent","error","applyVersion","targetVersion","UP_TO_DATE","applyUpdate","downloadBackgroundUpdate","localV","targetV","SUCCESS","autoReload","checkUpdates","CHECKING","createOtaLogger","onEvent","emit","OtaEvent","CHECK_UPDATE","remotePatches","fetchOtaManifest","metadata","loadMetadata","failed","failedVersions","platformPatches","filter","p","platform","toLowerCase","Platform","OS","includes","toVersion","maxV","length","Math","max","map","UPDATE_AVAILABLE","updateMode","OtaUpdateMode","BACKGROUND_DOWNLOAD","ON_APP_START","ON_APP_FOREGROUND","useEffect","bootstrap","readDir","DOCUMENT_DIR","then","dirs","dir","startsWith","removePath","catch","mode","MANUAL","subscription","addEventListener","nextAppState","match","remove","markAsHealthy","log","MARK_HEALTHY","markHealthy","resetToFactory","APPLYING","RESET_FACTORY","exists","OTA_DIR","moveFile","Date","now","reloadBundle","value","checkUpdate","isBlocking","healthyMarkedRef","jsx","Provider","View","style","styles","loadingContainer","jsxs","loadingCard","ActivityIndicator","size","color","Text","loadingTitle","loadingText","progressText","toFixed","useOta","context","useContext","StyleSheet","create","flex","justifyContent","alignItems","backgroundColor","paddingHorizontal","width","maxWidth","borderRadius","paddingVertical","borderWidth","borderColor","marginTop","fontSize","fontWeight","lineHeight","textAlign"],"sourceRoot":"../../../src","sources":["ota/OtaProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["OtaUpdateMode","exports","OtaStatus"],"sourceRoot":"../../../src","sources":["ota/types.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AAFA,IAuBYA,aAAa,GAAAC,OAAA,CAAAD,aAAA,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAwCzB;AACA;AACA;AAFA,IA6EYE,SAAS,GAAAD,OAAA,CAAAC,SAAA,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["OtaUpdateMode","exports","OtaStatus"],"sourceRoot":"../../../src","sources":["ota/types.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AAFA,IAuBYA,aAAa,GAAAC,OAAA,CAAAD,aAAA,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAwCzB;AACA;AACA;AAFA,IA+EYE,SAAS,GAAAD,OAAA,CAAAC,SAAA,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA","ignoreList":[]}
@@ -28,7 +28,6 @@ export function OtaProvider({
28
28
  const [isUpdateReady, setIsUpdateReady] = useState(false);
29
29
  const appState = useRef(AppState.currentState);
30
30
  const isCheckingRef = useRef(false);
31
- const pendingReloadRef = useRef(false);
32
31
  const bootstrapDone = useRef(false);
33
32
  /** Version the native resolver loaded for this JS session */
34
33
  const runningVersionRef = useRef(config.baseAppVersion);
@@ -105,15 +104,16 @@ export function OtaProvider({
105
104
  /**
106
105
  * Exposed method for manual trigger
107
106
  */
108
- const applyUpdate = useCallback(async () => {
107
+ const applyVersion = useCallback(async targetVersion => {
109
108
  if (!isDebugUpdateEnabled) {
110
109
  setPendingCount(0);
111
110
  setStatus(OtaStatus.UP_TO_DATE);
112
111
  setMessage('OTA updates are disabled while running a debug build.');
113
112
  return;
114
113
  }
115
- await executeApplyUpdate(patches, currentVersion, latestVersion);
116
- }, [currentVersion, executeApplyUpdate, isDebugUpdateEnabled, latestVersion, patches]);
114
+ await executeApplyUpdate(patches, currentVersion, targetVersion);
115
+ }, [currentVersion, executeApplyUpdate, isDebugUpdateEnabled, patches]);
116
+ const applyUpdate = useCallback(() => applyVersion(latestVersion), [applyVersion, latestVersion]);
117
117
  const downloadBackgroundUpdate = useCallback(async (patchList, localV, targetV) => {
118
118
  const directPatch = selectUpdate(patchList, localV, targetV);
119
119
  if (!directPatch) return;
@@ -122,7 +122,6 @@ export function OtaProvider({
122
122
  await applyOtaPatchInternal(directPatch, effectiveConfig, (s, msg, m) => {
123
123
  if (s === OtaStatus.SUCCESS) {
124
124
  setIsUpdateReady(true);
125
- pendingReloadRef.current = true;
126
125
  setStatus(OtaStatus.UP_TO_DATE);
127
126
  setMessage(`Update V${targetV} ready for next launch`);
128
127
  if (m) setMetrics(m);
@@ -252,17 +251,13 @@ export function OtaProvider({
252
251
  }, []);
253
252
 
254
253
  /**
255
- * AppState listener for ON_APP_FOREGROUND mode and silent background reload
254
+ * AppState listener for ON_APP_FOREGROUND mode.
255
+ * A downloaded update is not reloaded on background: iOS suspends JS before the
256
+ * first render, so the native resolver counts the launch as failed and rolls it back.
257
+ * metadata already points at the new version, so the next cold start applies it
256
258
  */
257
259
  useEffect(() => {
258
260
  const subscription = AppState.addEventListener('change', nextAppState => {
259
- // When going into background: if update is downloaded and ready, reload bundle silently
260
- // Only 'background', not 'inactive' (iOS fires it for Control Center, calls,
261
- // Face ID). Any previous state: iOS goes active → inactive → background.
262
- if (nextAppState === 'background' && pendingReloadRef.current) {
263
- pendingReloadRef.current = false;
264
- NativeBsPatch.reloadBundle();
265
- }
266
261
  if (appState.current.match(/inactive|background/) && nextAppState === 'active' && bootstrapDone.current) {
267
262
  const mode = config.updateMode ?? OtaUpdateMode.MANUAL;
268
263
  if (mode === OtaUpdateMode.ON_APP_FOREGROUND) {
@@ -312,11 +307,12 @@ export function OtaProvider({
312
307
  metrics,
313
308
  isUpdateReady,
314
309
  applyUpdate,
310
+ applyVersion,
315
311
  resetToFactory,
316
312
  markAsHealthy,
317
313
  checkUpdate: checkUpdates,
318
314
  reloadBundle: () => NativeBsPatch.reloadBundle()
319
- }), [status, message, progress, currentVersion, latestVersion, pendingCount, isChecking, metrics, isUpdateReady, applyUpdate, resetToFactory, markAsHealthy, checkUpdates]);
315
+ }), [status, message, progress, currentVersion, latestVersion, pendingCount, isChecking, metrics, isUpdateReady, applyUpdate, applyVersion, resetToFactory, markAsHealthy, checkUpdates]);
320
316
 
321
317
  // Logic to determine if we should block the UI
322
318
  const isBlocking = useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","ActivityIndicator","AppState","Platform","StyleSheet","Text","View","NativeBsPatch","applyOtaPatchInternal","fetchOtaManifest","selectUpdate","validateOtaConfig","createOtaLogger","OtaEvent","DOCUMENT_DIR","loadMetadata","markHealthy","OTA_DIR","OtaStatus","OtaUpdateMode","jsx","_jsx","jsxs","_jsxs","OtaContext","undefined","OtaProvider","children","config","loadingView","useLoadingView","status","setStatus","IDLE","message","setMessage","progress","setProgress","currentVersion","setCurrentVersion","baseAppVersion","latestVersion","setLatestVersion","pendingCount","setPendingCount","isChecking","setIsChecking","metrics","setMetrics","patches","setPatches","isInitialized","setIsInitialized","isUpdateReady","setIsUpdateReady","appState","currentState","isCheckingRef","pendingReloadRef","bootstrapDone","runningVersionRef","progressRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","configError","e","Error","setProgressIfChanged","nextProgress","current","getEffectiveConfig","appVersion","nativeVer","getAppVersion","executeApplyUpdate","patchList","currentVer","targetVer","directPatch","console","warn","ERROR","effectiveConfig","DOWNLOADING","s","msg","m","percent","error","applyUpdate","UP_TO_DATE","downloadBackgroundUpdate","localV","targetV","SUCCESS","autoReload","checkUpdates","CHECKING","onEvent","emit","CHECK_UPDATE","remotePatches","metadata","failed","failedVersions","platformPatches","filter","p","platform","toLowerCase","OS","includes","toVersion","maxV","length","Math","max","map","UPDATE_AVAILABLE","updateMode","BACKGROUND_DOWNLOAD","ON_APP_START","ON_APP_FOREGROUND","bootstrap","readDir","then","dirs","dir","startsWith","removePath","catch","mode","MANUAL","subscription","addEventListener","nextAppState","reloadBundle","match","remove","markAsHealthy","log","MARK_HEALTHY","resetToFactory","APPLYING","RESET_FACTORY","exists","moveFile","Date","now","value","checkUpdate","isBlocking","healthyMarkedRef","Provider","style","styles","loadingContainer","loadingCard","size","color","loadingTitle","loadingText","progressText","toFixed","useOta","context","create","flex","justifyContent","alignItems","backgroundColor","paddingHorizontal","width","maxWidth","borderRadius","paddingVertical","borderWidth","borderColor","marginTop","fontSize","fontWeight","lineHeight","textAlign"],"sourceRoot":"../../../src","sources":["ota/OtaProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACVC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SACEC,iBAAiB,EACjBC,QAAQ,EAERC,QAAQ,EACRC,UAAU,EACVC,IAAI,EACJC,IAAI,QACC,cAAc;AACrB,OAAOC,aAAa,MAAM,kBAAkB;AAC5C,SAASC,qBAAqB,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,iBAAiB,QAAQ,WAAW;AACpG,SAASC,eAAe,EAAEC,QAAQ,QAAQ,aAAa;AACvD,SAASC,YAAY,EAAEC,YAAY,EAAEC,WAAW,EAAEC,OAAO,QAAQ,eAAe;AAChF,SAKEC,SAAS,EACTC,aAAa,QACR,SAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEjB,MAAMC,UAAU,gBAAG9B,aAAa,CAAuB+B,SAAS,CAAC;AAEjE,OAAO,SAASC,WAAWA,CAAC;EAC1BC,QAAQ;EACRC,MAAM;EACNC,WAAW;EACXC,cAAc,GAAG;AAMnB,CAAC,EAAE;EACD,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGhC,QAAQ,CAAYkB,SAAS,CAACe,IAAI,CAAC;EAC/D,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGnC,QAAQ,CAAS,iBAAiB,CAAC;EACjE,MAAM,CAACoC,QAAQ,EAAEC,WAAW,CAAC,GAAGrC,QAAQ,CAAS,CAAC,CAAC;EAEnD,MAAM,CAACsC,cAAc,EAAEC,iBAAiB,CAAC,GAAGvC,QAAQ,CAClD4B,MAAM,CAACY,cACT,CAAC;EACD,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG1C,QAAQ,CAChD4B,MAAM,CAACY,cACT,CAAC;EACD,MAAM,CAACG,YAAY,EAAEC,eAAe,CAAC,GAAG5C,QAAQ,CAAS,CAAC,CAAC;EAC3D,MAAM,CAAC6C,UAAU,EAAEC,aAAa,CAAC,GAAG9C,QAAQ,CAAU,KAAK,CAAC;EAC5D,MAAM,CAAC+C,OAAO,EAAEC,UAAU,CAAC,GAAGhD,QAAQ,CAAoB,IAAI,CAAC;EAC/D,MAAM,CAACiD,OAAO,EAAEC,UAAU,CAAC,GAAGlD,QAAQ,CAAa,EAAE,CAAC;EACtD,MAAM,CAACmD,aAAa,EAAEC,gBAAgB,CAAC,GAAGpD,QAAQ,CAAU,KAAK,CAAC;EAClE,MAAM,CAACqD,aAAa,EAAEC,gBAAgB,CAAC,GAAGtD,QAAQ,CAAU,KAAK,CAAC;EAElE,MAAMuD,QAAQ,GAAGxD,MAAM,CAACG,QAAQ,CAACsD,YAAY,CAAC;EAC9C,MAAMC,aAAa,GAAG1D,MAAM,CAAC,KAAK,CAAC;EACnC,MAAM2D,gBAAgB,GAAG3D,MAAM,CAAC,KAAK,CAAC;EACtC,MAAM4D,aAAa,GAAG5D,MAAM,CAAC,KAAK,CAAC;EACnC;EACA,MAAM6D,iBAAiB,GAAG7D,MAAM,CAAC6B,MAAM,CAACY,cAAc,CAAC;EACvD,MAAMqB,WAAW,GAAG9D,MAAM,CAAC,CAAC,CAAC;EAC7B,MAAM+D,oBAAoB,GAAG,CAACC,OAAO,IAAInC,MAAM,CAACoC,iBAAiB,KAAK,IAAI;;EAE1E;EACA;EACA,MAAMC,WAAW,GAAGnE,OAAO,CAAC,MAAM;IAChC,MAAMoE,CAAC,GAAGvD,iBAAiB,CAACiB,MAAM,CAAC;IACnC,OAAOsC,CAAC,IAAI,wCAAwCA,CAAC,EAAE;EACzD,CAAC,EAAE,CAACtC,MAAM,CAAC,CAAC;EACZ,IAAImC,OAAO,IAAIE,WAAW,EAAE;IAC1B,MAAM,IAAIE,KAAK,CAACF,WAAW,CAAC;EAC9B;EAEA,MAAMG,oBAAoB,GAAGzE,WAAW,CAAE0E,YAAoB,IAAK;IACjE,IAAIR,WAAW,CAACS,OAAO,KAAKD,YAAY,EAAE;MACxC;IACF;IACAR,WAAW,CAACS,OAAO,GAAGD,YAAY;IAClChC,WAAW,CAACgC,YAAY,CAAC;EAC3B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,kBAAkB,GAAG5E,WAAW,CAAC,YAAgC;IACrE,IAAIiC,MAAM,CAAC4C,UAAU,EAAE,OAAO5C,MAAM;IACpC,IAAI;MACF,MAAM6C,SAAS,GAAG,MAAMlE,aAAa,CAACmE,aAAa,CAAC,CAAC;MACrD,IAAI,CAACD,SAAS,EAAE;QACd,MAAM,IAAIN,KAAK,CAAC,4BAA4B,CAAC;MAC/C;MACA,OAAO;QAAE,GAAGvC,MAAM;QAAE4C,UAAU,EAAEC;MAAU,CAAC;IAC7C,CAAC,CAAC,OAAOP,CAAC,EAAE;MACV,MAAM,IAAIC,KAAK,CACb,+DAAgED,CAAC,CAAWhC,OAAO,IAAI,GACvF,+GACF,CAAC;IACH;EACF,CAAC,EAAE,CAACN,MAAM,CAAC,CAAC;;EAEZ;AACF;AACA;AACA;EACE,MAAM+C,kBAAkB,GAAGhF,WAAW,CACpC,OAAOiF,SAAqB,EAAEC,UAAkB,EAAEC,SAAiB,KAAK;IACtE,MAAMC,WAAW,GAAGrE,YAAY,CAACkE,SAAS,EAAEC,UAAU,EAAEC,SAAS,CAAC;IAElE,IAAI,CAACC,WAAW,EAAE;MAChB,IAAIhB,OAAO,EAAE;QACXiB,OAAO,CAACC,IAAI,CAAC,yCAAyC,EAAEJ,UAAU,EAAE,IAAI,EAAEC,SAAS,CAAC;MACtF;MACA9C,SAAS,CAACd,SAAS,CAACgE,KAAK,CAAC;MAC1B/C,UAAU,CAAC,wBAAwB,CAAC;MACpC;IACF;IAEA,IAAI;MACF,MAAMgD,eAAe,GAAG,MAAMZ,kBAAkB,CAAC,CAAC;MAClDvC,SAAS,CAACd,SAAS,CAACkE,WAAW,CAAC;MAChCvB,WAAW,CAACS,OAAO,GAAG,CAAC;MACvBjC,WAAW,CAAC,CAAC,CAAC;MACd,MAAM7B,qBAAqB,CACzBuE,WAAW,EACXI,eAAe,EACf,CAACE,CAAY,EAAEC,GAAW,EAAEC,CAAc,KAAK;QAC7CpD,UAAU,CAACmD,GAAG,CAAC;QACftD,SAAS,CAACqD,CAAC,CAAC;QACZ,IAAIE,CAAC,EAAEvC,UAAU,CAACuC,CAAC,CAAC;MACtB,CAAC,EACAC,OAAe,IAAK;QACnBpB,oBAAoB,CAACoB,OAAO,CAAC;MAC/B,CACF,CAAC;IACH,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,IAAI1B,OAAO,EAAE;QACXiB,OAAO,CAACS,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;MACrD;MACAzD,SAAS,CAACd,SAAS,CAACgE,KAAK,CAAC;MAC1B/C,UAAU,CAAC,kBAAmBsD,KAAK,CAAWvD,OAAO,EAAE,CAAC;IAC1D;EACF,CAAC,EACD,CAACqC,kBAAkB,EAAEH,oBAAoB,CAC3C,CAAC;;EAED;AACF;AACA;EACE,MAAMsB,WAAW,GAAG/F,WAAW,CAAC,YAAY;IAC1C,IAAI,CAACmE,oBAAoB,EAAE;MACzBlB,eAAe,CAAC,CAAC,CAAC;MAClBZ,SAAS,CAACd,SAAS,CAACyE,UAAU,CAAC;MAC/BxD,UAAU,CAAC,uDAAuD,CAAC;MACnE;IACF;IACA,MAAMwC,kBAAkB,CAAC1B,OAAO,EAAEX,cAAc,EAAEG,aAAa,CAAC;EAClE,CAAC,EAAE,CACDH,cAAc,EACdqC,kBAAkB,EAClBb,oBAAoB,EACpBrB,aAAa,EACbQ,OAAO,CACR,CAAC;EAEF,MAAM2C,wBAAwB,GAAGjG,WAAW,CAC1C,OACEiF,SAAqB,EACrBiB,MAAc,EACdC,OAAe,KACZ;IACH,MAAMf,WAAW,GAAGrE,YAAY,CAACkE,SAAS,EAAEiB,MAAM,EAAEC,OAAO,CAAC;IAC5D,IAAI,CAACf,WAAW,EAAE;IAElB,IAAI;MACF,MAAMI,eAAe,GAAG,MAAMZ,kBAAkB,CAAC,CAAC;MAClD,MAAM/D,qBAAqB,CACzBuE,WAAW,EACXI,eAAe,EACf,CAACE,CAAY,EAAEC,GAAW,EAAEC,CAAc,KAAK;QAC7C,IAAIF,CAAC,KAAKnE,SAAS,CAAC6E,OAAO,EAAE;UAC3BzC,gBAAgB,CAAC,IAAI,CAAC;UACtBI,gBAAgB,CAACY,OAAO,GAAG,IAAI;UAC/BtC,SAAS,CAACd,SAAS,CAACyE,UAAU,CAAC;UAC/BxD,UAAU,CAAC,WAAW2D,OAAO,wBAAwB,CAAC;UACtD,IAAIP,CAAC,EAAEvC,UAAU,CAACuC,CAAC,CAAC;QACtB;MACF,CAAC,EACD,MAAM,CAAC,CAAC;MAAE;MACV;QAAES,UAAU,EAAE;MAAM,CAAC,CAAE;MACzB,CAAC;IACH,CAAC,CAAC,OAAO9B,CAAC,EAAE;MACV,IAAIH,OAAO,EAAE;QACXiB,OAAO,CAACC,IAAI,CAAC,gDAAgD,EAAEf,CAAC,CAAC;MACnE;IACF;EACF,CAAC,EACD,CAACK,kBAAkB,CACrB,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAM0B,YAAY,GAAGtG,WAAW,CAAC,YAAY;IAC3C,IAAI8D,aAAa,CAACa,OAAO,IAAIL,WAAW,EAAE;IAC1C,IAAI,CAACH,oBAAoB,EAAE;MACzBlB,eAAe,CAAC,CAAC,CAAC;MAClBE,aAAa,CAAC,KAAK,CAAC;MACpBd,SAAS,CAACd,SAAS,CAACyE,UAAU,CAAC;MAC/BxD,UAAU,CAAC,uDAAuD,CAAC;MACnE;IACF;IACAsB,aAAa,CAACa,OAAO,GAAG,IAAI;IAC5BxB,aAAa,CAAC,IAAI,CAAC;IACnBd,SAAS,CAACd,SAAS,CAACgF,QAAQ,CAAC;IAC7B/D,UAAU,CAAC,yBAAyB,CAAC;IAErC,IAAI;MACF,MAAMgD,eAAe,GAAG,MAAMZ,kBAAkB,CAAC,CAAC;MAClD3D,eAAe,CAACuE,eAAe,CAACgB,OAAO,CAAC,CAACC,IAAI,CAACvF,QAAQ,CAACwF,YAAY,CAAC;MACpE,MAAMC,aAAa,GAAG,MAAM7F,gBAAgB,CAAC0E,eAAe,CAAC;MAC7D,MAAMoB,QAAQ,GAAG,MAAMxF,YAAY,CAACa,MAAM,CAACY,cAAc,CAAC;MAC1D,MAAMqD,MAAM,GAAGU,QAAQ,CAACjE,cAAc;;MAEtC;MACA;MACA,MAAMkE,MAAM,GAAGD,QAAQ,CAACE,cAAc,IAAI,EAAE;MAC5C,MAAMC,eAAe,GAAGJ,aAAa,CAACK,MAAM,CAC1CC,CAAC,IACC,CAAC,CAACA,CAAC,CAACC,QAAQ,IAAID,CAAC,CAACC,QAAQ,CAACC,WAAW,CAAC,CAAC,KAAK3G,QAAQ,CAAC4G,EAAE,KACxD,CAACP,MAAM,CAACQ,QAAQ,CAACJ,CAAC,CAACK,SAAS,CAChC,CAAC;MAED,MAAMC,IAAI,GACRR,eAAe,CAACS,MAAM,GAAG,CAAC,GACtBC,IAAI,CAACC,GAAG,CAAC,GAAGX,eAAe,CAACY,GAAG,CAACV,CAAC,IAAIA,CAAC,CAACK,SAAS,CAAC,CAAC,GAClDpB,MAAM;MAEZ3C,UAAU,CAACwD,eAAe,CAAC;MAC3BnE,iBAAiB,CAACsD,MAAM,CAAC;MACzBnD,gBAAgB,CAACwE,IAAI,CAAC;MAEtB,IAAIA,IAAI,GAAGrB,MAAM,EAAE;QACjBjD,eAAe,CAAC,CAAC,CAAC;QAClBT,UAAU,CAAC,sBAAsB0D,MAAM,OAAOqB,IAAI,EAAE,CAAC;QACrDlF,SAAS,CAACd,SAAS,CAACqG,gBAAgB,CAAC;;QAErC;QACA,IAAI3F,MAAM,CAAC4F,UAAU,KAAKrG,aAAa,CAACsG,mBAAmB,EAAE;UAC3D7B,wBAAwB,CAACc,eAAe,EAAEb,MAAM,EAAEqB,IAAI,CAAC;QACzD,CAAC,MAAM,IACLtF,MAAM,CAAC4F,UAAU,KAAKrG,aAAa,CAACuG,YAAY,IAChD9F,MAAM,CAAC4F,UAAU,KAAKrG,aAAa,CAACwG,iBAAiB,EACrD;UACA;UACA,MAAMhD,kBAAkB,CAAC+B,eAAe,EAAEb,MAAM,EAAEqB,IAAI,CAAC;QACzD;MACF,CAAC,MAAM;QACLtE,eAAe,CAAC,CAAC,CAAC;QAClBT,UAAU,CAAC,yBAAyB0D,MAAM,GAAG,CAAC;QAC9C7D,SAAS,CAACd,SAAS,CAACyE,UAAU,CAAC;MACjC;IACF,CAAC,CAAC,OAAOF,KAAK,EAAE;MACdtD,UAAU,CAAC,iBAAkBsD,KAAK,CAAWvD,OAAO,EAAE,CAAC;MACvDF,SAAS,CAACd,SAAS,CAACgE,KAAK,CAAC;IAC5B,CAAC,SAAS;MACRzB,aAAa,CAACa,OAAO,GAAG,KAAK;MAC7BxB,aAAa,CAAC,KAAK,CAAC;IACtB;EACF,CAAC,EAAE,CAAClB,MAAM,EAAEqC,WAAW,EAAEU,kBAAkB,EAAEb,oBAAoB,EAAE8B,wBAAwB,EAAErB,kBAAkB,CAAC,CAAC;;EAEjH;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE1E,SAAS,CAAC,MAAM;IACd,MAAM+H,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC5B;MACArH,aAAa,CAACsH,OAAO,CAAC/G,YAAY,CAAC,CAACgH,IAAI,CAACC,IAAI,IAAI;QAC/C,KAAK,MAAMC,GAAG,IAAID,IAAI,EAAE;UACtB,IAAIC,GAAG,CAACC,UAAU,CAAC,YAAY,CAAC,EAAE;YAChC1H,aAAa,CAAC2H,UAAU,CAAC,GAAGpH,YAAY,IAAIkH,GAAG,EAAE,CAAC,CAACG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;UACpE;QACF;MACF,CAAC,CAAC,CAACA,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MAElB,MAAM5B,QAAQ,GAAG,MAAMxF,YAAY,CAACa,MAAM,CAACY,cAAc,CAAC;MAC1DoB,iBAAiB,CAACU,OAAO,GAAGiC,QAAQ,CAACjE,cAAc;;MAEnD;MACAC,iBAAiB,CAACgE,QAAQ,CAACjE,cAAc,CAAC;;MAE1C;MACA,IAAI2B,WAAW,EAAE;QACfe,OAAO,CAACS,KAAK,CAACxB,WAAW,CAAC;QAC1B9B,UAAU,CAAC8B,WAAW,CAAC;QACvBjC,SAAS,CAACd,SAAS,CAACgE,KAAK,CAAC;QAC1B;MACF;MACAvB,aAAa,CAACW,OAAO,GAAG,IAAI;;MAE5B;MACA,MAAM8D,IAAI,GAAGxG,MAAM,CAAC4F,UAAU,IAAIrG,aAAa,CAACkH,MAAM;MACtD,IACED,IAAI,KAAKjH,aAAa,CAACuG,YAAY,IACnCU,IAAI,KAAKjH,aAAa,CAACsG,mBAAmB,EAC1C;QACAxB,YAAY,CAAC,CAAC;MAChB,CAAC,MAAM;QACL9D,UAAU,CAAC,WAAWoE,QAAQ,CAACjE,cAAc,GAAG,CAAC;QACjDN,SAAS,CAACd,SAAS,CAACyE,UAAU,CAAC;MACjC;IACF,CAAC;IAEDiC,SAAS,CAAC,CAAC,CAACE,IAAI,CAAC,MAAM1E,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC+E,KAAK,CAAC,MAAM;MACzD;MACA;MACA;IAAA,CACD,CAAC;IACF;EACF,CAAC,EAAE,EAAE,CAAC;;EAEN;AACF;AACA;EACEtI,SAAS,CAAC,MAAM;IACd,MAAMyI,YAAY,GAAGpI,QAAQ,CAACqI,gBAAgB,CAC5C,QAAQ,EACPC,YAA4B,IAAK;MAChC;MACA;MACA;MACA,IAAIA,YAAY,KAAK,YAAY,IAAI9E,gBAAgB,CAACY,OAAO,EAAE;QAC7DZ,gBAAgB,CAACY,OAAO,GAAG,KAAK;QAChC/D,aAAa,CAACkI,YAAY,CAAC,CAAC;MAC9B;MAEA,IACElF,QAAQ,CAACe,OAAO,CAACoE,KAAK,CAAC,qBAAqB,CAAC,IAC7CF,YAAY,KAAK,QAAQ,IACzB7E,aAAa,CAACW,OAAO,EACrB;QACA,MAAM8D,IAAI,GAAGxG,MAAM,CAAC4F,UAAU,IAAIrG,aAAa,CAACkH,MAAM;QACtD,IAAID,IAAI,KAAKjH,aAAa,CAACwG,iBAAiB,EAAE;UAC5C1B,YAAY,CAAC,CAAC;QAChB;MACF;MACA1C,QAAQ,CAACe,OAAO,GAAGkE,YAAY;IACjC,CACF,CAAC;IAED,OAAO,MAAM;MACXF,YAAY,CAACK,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,CAAC/G,MAAM,CAAC4F,UAAU,EAAEvB,YAAY,CAAC,CAAC;EAErC,MAAM2C,aAAa,GAAGjJ,WAAW,CAAC,YAAY;IAC5C,MAAMkJ,GAAG,GAAGjI,eAAe,CAACgB,MAAM,CAACuE,OAAO,CAAC;IAC3C0C,GAAG,CAACzC,IAAI,CAACvF,QAAQ,CAACiI,YAAY,CAAC;IAC/B,MAAMtE,UAAU,GAAG,MAAMjE,aAAa,CAACmE,aAAa,CAAC,CAAC,CAACyD,KAAK,CAAC,MAAMvG,MAAM,CAAC4C,UAAU,CAAC;IACrF,MAAMxD,WAAW,CAACY,MAAM,CAACY,cAAc,EAAEoB,iBAAiB,CAACU,OAAO,EAAEE,UAAU,CAAC;EACjF,CAAC,EAAE,CAAC5C,MAAM,CAAC,CAAC;EAEZ,MAAMmH,cAAc,GAAGpJ,WAAW,CAAC,YAAY;IAC7C,MAAMkJ,GAAG,GAAGjI,eAAe,CAACgB,MAAM,CAACuE,OAAO,CAAC;IAC3C,IAAI;MACFnE,SAAS,CAACd,SAAS,CAAC8H,QAAQ,CAAC;MAC7B7G,UAAU,CAAC,0BAA0B,CAAC;MACtC0G,GAAG,CAACzC,IAAI,CAACvF,QAAQ,CAACoI,aAAa,CAAC;MAChC,IAAI,MAAM1I,aAAa,CAAC2I,MAAM,CAACjI,OAAO,CAAC,EAAE;QACvC;QACA,MAAMV,aAAa,CAAC4I,QAAQ,CAAClI,OAAO,EAAE,GAAGH,YAAY,cAAcsI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,CAAC;QAChF;MACF;MACAlH,UAAU,CAAC,0CAA0C,CAAC;MACtD5B,aAAa,CAACkI,YAAY,CAAC,CAAC;IAC9B,CAAC,CAAC,OAAOhD,KAAK,EAAE;MACdzD,SAAS,CAACd,SAAS,CAACgE,KAAK,CAAC;MAC1B/C,UAAU,CAAC,iBAAkBsD,KAAK,CAAWvD,OAAO,EAAE,CAAC;IACzD;EACF,CAAC,EAAE,CAACN,MAAM,CAAC,CAAC;;EAEZ;EACA,MAAM0H,KAAK,GAAGxJ,OAAO,CAAW,OAAO;IACrCiC,MAAM;IACNG,OAAO;IACPE,QAAQ;IACRE,cAAc;IACdG,aAAa;IACbE,YAAY;IACZE,UAAU;IACVE,OAAO;IACPM,aAAa;IACbqC,WAAW;IACXqD,cAAc;IACdH,aAAa;IACbW,WAAW,EAAEtD,YAAY;IACzBwC,YAAY,EAAEA,CAAA,KAAMlI,aAAa,CAACkI,YAAY,CAAC;EACjD,CAAC,CAAC,EAAE,CACF1G,MAAM,EACNG,OAAO,EACPE,QAAQ,EACRE,cAAc,EACdG,aAAa,EACbE,YAAY,EACZE,UAAU,EACVE,OAAO,EACPM,aAAa,EACbqC,WAAW,EACXqD,cAAc,EACdH,aAAa,EACb3C,YAAY,CACb,CAAC;;EAEF;EACA,MAAMuD,UAAU,GAAG1J,OAAO,CAAC,MAAM;IAC/B,OACEgC,cAAc,KACb,CAACqB,aAAa,IACZvB,MAAM,CAAC4F,UAAU,KAAKrG,aAAa,CAACuG,YAAY,KAC9C3F,MAAM,KAAKb,SAAS,CAACe,IAAI,IACxBF,MAAM,KAAKb,SAAS,CAACgF,QAAQ,IAC7BnE,MAAM,KAAKb,SAAS,CAACkE,WAAW,IAChCrD,MAAM,KAAKb,SAAS,CAAC8H,QAAQ,IAC7BjH,MAAM,KAAKb,SAAS,CAACqG,gBAAgB,CAAE,CAAC;EAElD,CAAC,EAAE,CAACzF,cAAc,EAAEqB,aAAa,EAAEvB,MAAM,CAAC4F,UAAU,EAAEzF,MAAM,CAAC,CAAC;;EAE9D;EACA;EACA;EACA,MAAM0H,gBAAgB,GAAG1J,MAAM,CAAC,KAAK,CAAC;EACtCF,SAAS,CAAC,MAAM;IACd,IAAI2J,UAAU,IAAI,CAACrG,aAAa,IAAIsG,gBAAgB,CAACnF,OAAO,EAAE;IAC9DmF,gBAAgB,CAACnF,OAAO,GAAG,IAAI;IAC/BsE,aAAa,CAAC,CAAC,CAACT,KAAK,CAACjE,CAAC,IAAIc,OAAO,CAACC,IAAI,CAAC,qCAAqC,EAAEf,CAAC,CAAC,CAAC;IAClF;EACF,CAAC,EAAE,CAACsF,UAAU,EAAErG,aAAa,CAAC,CAAC;EAE/B,oBACE9B,IAAA,CAACG,UAAU,CAACkI,QAAQ;IAACJ,KAAK,EAAEA,KAAM;IAAA3H,QAAA,EAC/B,CAAC6H,UAAU,GACV7H,QAAQ,GACNE,WAAW,KAAKJ,SAAS,GAC3BI,WAAW,gBAEXR,IAAA,CAACf,IAAI;MAACqJ,KAAK,EAAEC,MAAM,CAACC,gBAAiB;MAAAlI,QAAA,eACnCJ,KAAA,CAACjB,IAAI;QAACqJ,KAAK,EAAEC,MAAM,CAACE,WAAY;QAAAnI,QAAA,gBAC9BN,IAAA,CAACpB,iBAAiB;UAAC8J,IAAI,EAAC,OAAO;UAACC,KAAK,EAAC;QAAS,CAAE,CAAC,eAClD3I,IAAA,CAAChB,IAAI;UAACsJ,KAAK,EAAEC,MAAM,CAACK,YAAa;UAAAtI,QAAA,EAAC;QAAW,CAAM,CAAC,eACpDN,IAAA,CAAChB,IAAI;UAACsJ,KAAK,EAAEC,MAAM,CAACM,WAAY;UAAAvI,QAAA,EAAEO;QAAO,CAAO,CAAC,EAChDH,MAAM,KAAKb,SAAS,CAACkE,WAAW,IAAIrD,MAAM,KAAKb,SAAS,CAAC8H,QAAQ,gBAChEzH,KAAA,CAAClB,IAAI;UAACsJ,KAAK,EAAEC,MAAM,CAACO,YAAa;UAAAxI,QAAA,GAAES,QAAQ,CAACgI,OAAO,CAAC,CAAC,CAAC,EAAC,GAAC;QAAA,CAAM,CAAC,GAC7D,IAAI;MAAA,CACJ;IAAC,CACH;EACP,CACkB,CAAC;AAE1B;AAEA,OAAO,SAASC,MAAMA,CAAA,EAAG;EACvB,MAAMC,OAAO,GAAG1K,UAAU,CAAC4B,UAAU,CAAC;EACtC,IAAI8I,OAAO,KAAK7I,SAAS,EAAE;IACzB,MAAM,IAAI0C,KAAK,CAAC,2CAA2C,CAAC;EAC9D;EACA,OAAOmG,OAAO;AAChB;AAEA,MAAMV,MAAM,GAAGxJ,UAAU,CAACmK,MAAM,CAAC;EAC/BV,gBAAgB,EAAE;IAChBW,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,SAAS;IAC1BC,iBAAiB,EAAE;EACrB,CAAC;EACDd,WAAW,EAAE;IACXe,KAAK,EAAE,MAAM;IACbC,QAAQ,EAAE,GAAG;IACbH,eAAe,EAAE,SAAS;IAC1BI,YAAY,EAAE,EAAE;IAChBH,iBAAiB,EAAE,EAAE;IACrBI,eAAe,EAAE,EAAE;IACnBN,UAAU,EAAE,QAAQ;IACpBO,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE;EACf,CAAC;EACDjB,YAAY,EAAE;IACZkB,SAAS,EAAE,EAAE;IACbnB,KAAK,EAAE,SAAS;IAChBoB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDnB,WAAW,EAAE;IACXiB,SAAS,EAAE,CAAC;IACZnB,KAAK,EAAE,SAAS;IAChBoB,QAAQ,EAAE,EAAE;IACZE,UAAU,EAAE,EAAE;IACdC,SAAS,EAAE;EACb,CAAC;EACDpB,YAAY,EAAE;IACZgB,SAAS,EAAE,EAAE;IACbnB,KAAK,EAAE,SAAS;IAChBoB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","ActivityIndicator","AppState","Platform","StyleSheet","Text","View","NativeBsPatch","applyOtaPatchInternal","fetchOtaManifest","selectUpdate","validateOtaConfig","createOtaLogger","OtaEvent","DOCUMENT_DIR","loadMetadata","markHealthy","OTA_DIR","OtaStatus","OtaUpdateMode","jsx","_jsx","jsxs","_jsxs","OtaContext","undefined","OtaProvider","children","config","loadingView","useLoadingView","status","setStatus","IDLE","message","setMessage","progress","setProgress","currentVersion","setCurrentVersion","baseAppVersion","latestVersion","setLatestVersion","pendingCount","setPendingCount","isChecking","setIsChecking","metrics","setMetrics","patches","setPatches","isInitialized","setIsInitialized","isUpdateReady","setIsUpdateReady","appState","currentState","isCheckingRef","bootstrapDone","runningVersionRef","progressRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","configError","e","Error","setProgressIfChanged","nextProgress","current","getEffectiveConfig","appVersion","nativeVer","getAppVersion","executeApplyUpdate","patchList","currentVer","targetVer","directPatch","console","warn","ERROR","effectiveConfig","DOWNLOADING","s","msg","m","percent","error","applyVersion","targetVersion","UP_TO_DATE","applyUpdate","downloadBackgroundUpdate","localV","targetV","SUCCESS","autoReload","checkUpdates","CHECKING","onEvent","emit","CHECK_UPDATE","remotePatches","metadata","failed","failedVersions","platformPatches","filter","p","platform","toLowerCase","OS","includes","toVersion","maxV","length","Math","max","map","UPDATE_AVAILABLE","updateMode","BACKGROUND_DOWNLOAD","ON_APP_START","ON_APP_FOREGROUND","bootstrap","readDir","then","dirs","dir","startsWith","removePath","catch","mode","MANUAL","subscription","addEventListener","nextAppState","match","remove","markAsHealthy","log","MARK_HEALTHY","resetToFactory","APPLYING","RESET_FACTORY","exists","moveFile","Date","now","reloadBundle","value","checkUpdate","isBlocking","healthyMarkedRef","Provider","style","styles","loadingContainer","loadingCard","size","color","loadingTitle","loadingText","progressText","toFixed","useOta","context","create","flex","justifyContent","alignItems","backgroundColor","paddingHorizontal","width","maxWidth","borderRadius","paddingVertical","borderWidth","borderColor","marginTop","fontSize","fontWeight","lineHeight","textAlign"],"sourceRoot":"../../../src","sources":["ota/OtaProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["OtaUpdateMode","OtaStatus"],"sourceRoot":"../../../src","sources":["ota/types.ts"],"mappings":";;AAAA;AACA;AACA;;AAqBA,WAAYA,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;;AAwCzB;AACA;AACA;;AA2EA,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["OtaUpdateMode","OtaStatus"],"sourceRoot":"../../../src","sources":["ota/types.ts"],"mappings":";;AAAA;AACA;AACA;;AAqBA,WAAYA,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;;AAwCzB;AACA;AACA;;AA6EA,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"OtaProvider.d.ts","sourceRoot":"","sources":["../../../src/ota/OtaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAcf,OAAO,EACL,SAAS,EAGT,QAAQ,EAGT,MAAM,SAAS,CAAC;AAIjB,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,MAAM,EACN,WAAW,EACX,cAAqB,GACtB,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,qBA2aA;AAED,wBAAgB,MAAM,aAMrB"}
1
+ {"version":3,"file":"OtaProvider.d.ts","sourceRoot":"","sources":["../../../src/ota/OtaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAcf,OAAO,EACL,SAAS,EAGT,QAAQ,EAGT,MAAM,SAAS,CAAC;AAIjB,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,MAAM,EACN,WAAW,EACX,cAAqB,GACtB,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,qBAqaA;AAED,wBAAgB,MAAM,aAMrB"}
@@ -76,6 +76,8 @@ export type OtaMetadata = {
76
76
  failedVersions?: number[];
77
77
  /** Last version that launched and rendered successfully; the native resolver never rolls it back */
78
78
  verifiedVersion?: number;
79
+ /** Unverified launches of currentVersion so far; native rolls back once it reaches the limit (3) */
80
+ launchAttempts?: number;
79
81
  };
80
82
  export type OtaMetrics = {
81
83
  patchSizeKB: number;
@@ -145,6 +147,8 @@ export type OtaState = {
145
147
  /** True if a background update has been downloaded and prepared silently */
146
148
  isUpdateReady: boolean;
147
149
  applyUpdate: () => Promise<void>;
150
+ /** Installs and reloads `version` from the last checked manifest (full bundle, or a patch from the current version) */
151
+ applyVersion: (version: number) => Promise<void>;
148
152
  resetToFactory: () => Promise<void>;
149
153
  markAsHealthy: () => Promise<void>;
150
154
  checkUpdate: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ota/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ota/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-bspatch",
3
- "version": "4.0.2",
3
+ "version": "4.1.0",
4
4
  "description": "Premium OTA Update Solution for React Native using TurboModules and bsdiff",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -61,7 +61,6 @@ export function OtaProvider({
61
61
 
62
62
  const appState = useRef(AppState.currentState);
63
63
  const isCheckingRef = useRef(false);
64
- const pendingReloadRef = useRef(false);
65
64
  const bootstrapDone = useRef(false);
66
65
  /** Version the native resolver loaded for this JS session */
67
66
  const runningVersionRef = useRef(config.baseAppVersion);
@@ -150,21 +149,20 @@ export function OtaProvider({
150
149
  /**
151
150
  * Exposed method for manual trigger
152
151
  */
153
- const applyUpdate = useCallback(async () => {
152
+ const applyVersion = useCallback(async (targetVersion: number) => {
154
153
  if (!isDebugUpdateEnabled) {
155
154
  setPendingCount(0);
156
155
  setStatus(OtaStatus.UP_TO_DATE);
157
156
  setMessage('OTA updates are disabled while running a debug build.');
158
157
  return;
159
158
  }
160
- await executeApplyUpdate(patches, currentVersion, latestVersion);
161
- }, [
162
- currentVersion,
163
- executeApplyUpdate,
164
- isDebugUpdateEnabled,
165
- latestVersion,
166
- patches,
167
- ]);
159
+ await executeApplyUpdate(patches, currentVersion, targetVersion);
160
+ }, [currentVersion, executeApplyUpdate, isDebugUpdateEnabled, patches]);
161
+
162
+ const applyUpdate = useCallback(
163
+ () => applyVersion(latestVersion),
164
+ [applyVersion, latestVersion],
165
+ );
168
166
 
169
167
  const downloadBackgroundUpdate = useCallback(
170
168
  async (
@@ -183,7 +181,6 @@ export function OtaProvider({
183
181
  (s: OtaStatus, msg: string, m?: OtaMetrics) => {
184
182
  if (s === OtaStatus.SUCCESS) {
185
183
  setIsUpdateReady(true);
186
- pendingReloadRef.current = true;
187
184
  setStatus(OtaStatus.UP_TO_DATE);
188
185
  setMessage(`Update V${targetV} ready for next launch`);
189
186
  if (m) setMetrics(m);
@@ -332,20 +329,15 @@ export function OtaProvider({
332
329
  }, []);
333
330
 
334
331
  /**
335
- * AppState listener for ON_APP_FOREGROUND mode and silent background reload
332
+ * AppState listener for ON_APP_FOREGROUND mode.
333
+ * A downloaded update is not reloaded on background: iOS suspends JS before the
334
+ * first render, so the native resolver counts the launch as failed and rolls it back.
335
+ * metadata already points at the new version, so the next cold start applies it
336
336
  */
337
337
  useEffect(() => {
338
338
  const subscription = AppState.addEventListener(
339
339
  'change',
340
340
  (nextAppState: AppStateStatus) => {
341
- // When going into background: if update is downloaded and ready, reload bundle silently
342
- // Only 'background', not 'inactive' (iOS fires it for Control Center, calls,
343
- // Face ID). Any previous state: iOS goes active → inactive → background.
344
- if (nextAppState === 'background' && pendingReloadRef.current) {
345
- pendingReloadRef.current = false;
346
- NativeBsPatch.reloadBundle();
347
- }
348
-
349
341
  if (
350
342
  appState.current.match(/inactive|background/) &&
351
343
  nextAppState === 'active' &&
@@ -403,6 +395,7 @@ export function OtaProvider({
403
395
  metrics,
404
396
  isUpdateReady,
405
397
  applyUpdate,
398
+ applyVersion,
406
399
  resetToFactory,
407
400
  markAsHealthy,
408
401
  checkUpdate: checkUpdates,
@@ -418,6 +411,7 @@ export function OtaProvider({
418
411
  metrics,
419
412
  isUpdateReady,
420
413
  applyUpdate,
414
+ applyVersion,
421
415
  resetToFactory,
422
416
  markAsHealthy,
423
417
  checkUpdates,
package/src/ota/types.ts CHANGED
@@ -84,6 +84,8 @@ export type OtaMetadata = {
84
84
  failedVersions?: number[];
85
85
  /** Last version that launched and rendered successfully; the native resolver never rolls it back */
86
86
  verifiedVersion?: number;
87
+ /** Unverified launches of currentVersion so far; native rolls back once it reaches the limit (3) */
88
+ launchAttempts?: number;
87
89
  };
88
90
 
89
91
  export type OtaMetrics = {
@@ -162,6 +164,8 @@ export type OtaState = {
162
164
  /** True if a background update has been downloaded and prepared silently */
163
165
  isUpdateReady: boolean;
164
166
  applyUpdate: () => Promise<void>;
167
+ /** Installs and reloads `version` from the last checked manifest (full bundle, or a patch from the current version) */
168
+ applyVersion: (version: number) => Promise<void>;
165
169
  resetToFactory: () => Promise<void>;
166
170
  markAsHealthy: () => Promise<void>;
167
171
  checkUpdate: () => Promise<void>;