@hot-updater/react-native 1.0.0-rc.1 → 1.0.0-rc.14
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/android/proguard-rules.pro +15 -0
- package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +1 -1
- package/android/src/main/java/com/hotupdater/BundleMetadata.kt +7 -0
- package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryManager.kt +37 -54
- package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryState.kt +64 -0
- package/android/src/test/java/com/hotupdater/HotUpdaterRecoveryStateTest.kt +97 -0
- package/android/src/test/java/com/hotupdater/PendingCrashRecoveryTest.kt +44 -0
- package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +102 -20
- package/ios/HotUpdater/Recovery/HotUpdaterRecovery.h +16 -0
- package/ios/HotUpdater/Recovery/HotUpdaterRecovery.mm +83 -0
- package/ios/HotUpdater/Recovery/HotUpdaterRecoveryHooks.mm +49 -0
- package/lib/commonjs/checkForUpdate.js +25 -13
- package/lib/commonjs/checkForUpdate.js.map +1 -1
- package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js +88 -24
- package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js.map +1 -1
- package/lib/commonjs/httpClient.js +2 -2
- package/lib/commonjs/httpClient.js.map +1 -1
- package/lib/commonjs/index.js +30 -9
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.spec.js +56 -11
- package/lib/commonjs/index.spec.js.map +1 -1
- package/lib/commonjs/native.js +8 -6
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/native.spec.js +107 -6
- package/lib/commonjs/native.spec.js.map +1 -1
- package/lib/commonjs/{notifyAppReadyAnalytics.boundary.spec.js → notifyAppReadyInsights.boundary.spec.js} +21 -21
- package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js.map +1 -0
- package/lib/commonjs/notifyAppReadyInsights.js +185 -0
- package/lib/commonjs/notifyAppReadyInsights.js.map +1 -0
- package/lib/commonjs/{notifyAppReadyAnalytics.spec.js → notifyAppReadyInsights.spec.js} +102 -29
- package/lib/commonjs/notifyAppReadyInsights.spec.js.map +1 -0
- package/lib/commonjs/{notifyAppReadyAnalytics.test-utils.js → notifyAppReadyInsights.test-utils.js} +3 -3
- package/lib/commonjs/notifyAppReadyInsights.test-utils.js.map +1 -0
- package/lib/commonjs/{notifyAppReadyAnalytics.transport.spec.js → notifyAppReadyInsights.transport.spec.js} +7 -7
- package/lib/commonjs/notifyAppReadyInsights.transport.spec.js.map +1 -0
- package/lib/commonjs/sdkVersion.js +1 -1
- package/lib/commonjs/sdkVersion.js.map +1 -1
- package/lib/commonjs/wrap.js +10 -9
- package/lib/commonjs/wrap.js.map +1 -1
- package/lib/commonjs/wrap.spec.js +90 -25
- package/lib/commonjs/wrap.spec.js.map +1 -1
- package/lib/module/checkForUpdate.js +25 -13
- package/lib/module/checkForUpdate.js.map +1 -1
- package/lib/module/checkForUpdate.releaseCatalog.spec.js +88 -24
- package/lib/module/checkForUpdate.releaseCatalog.spec.js.map +1 -1
- package/lib/module/httpClient.js +2 -2
- package/lib/module/httpClient.js.map +1 -1
- package/lib/module/index.js +31 -10
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.spec.js +56 -11
- package/lib/module/index.spec.js.map +1 -1
- package/lib/module/native.js +6 -4
- package/lib/module/native.js.map +1 -1
- package/lib/module/native.spec.js +107 -6
- package/lib/module/native.spec.js.map +1 -1
- package/lib/module/{notifyAppReadyAnalytics.boundary.spec.js → notifyAppReadyInsights.boundary.spec.js} +16 -16
- package/lib/module/notifyAppReadyInsights.boundary.spec.js.map +1 -0
- package/lib/module/notifyAppReadyInsights.js +178 -0
- package/lib/module/notifyAppReadyInsights.js.map +1 -0
- package/lib/module/{notifyAppReadyAnalytics.spec.js → notifyAppReadyInsights.spec.js} +94 -21
- package/lib/module/notifyAppReadyInsights.spec.js.map +1 -0
- package/lib/module/{notifyAppReadyAnalytics.test-utils.js → notifyAppReadyInsights.test-utils.js} +3 -3
- package/lib/module/notifyAppReadyInsights.test-utils.js.map +1 -0
- package/lib/module/{notifyAppReadyAnalytics.transport.spec.js → notifyAppReadyInsights.transport.spec.js} +4 -4
- package/lib/module/notifyAppReadyInsights.transport.spec.js.map +1 -0
- package/lib/module/sdkVersion.js +1 -1
- package/lib/module/sdkVersion.js.map +1 -1
- package/lib/module/wrap.js +10 -9
- package/lib/module/wrap.js.map +1 -1
- package/lib/module/wrap.spec.js +92 -25
- package/lib/module/wrap.spec.js.map +1 -1
- package/lib/typescript/commonjs/checkForUpdate.d.ts +1 -1
- package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/commonjs/httpClient.d.ts +6 -6
- package/lib/typescript/commonjs/httpClient.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +4 -5
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/native.d.ts +4 -3
- package/lib/typescript/commonjs/native.d.ts.map +1 -1
- package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts +25 -0
- package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts.map +1 -0
- package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts +8 -0
- package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
- package/lib/typescript/commonjs/sdkVersion.d.ts.map +1 -1
- package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
- package/lib/typescript/commonjs/wrap.types.d.ts +5 -6
- package/lib/typescript/commonjs/wrap.types.d.ts.map +1 -1
- package/lib/typescript/module/checkForUpdate.d.ts +1 -1
- package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/module/httpClient.d.ts +6 -6
- package/lib/typescript/module/httpClient.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +4 -5
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/native.d.ts +4 -3
- package/lib/typescript/module/native.d.ts.map +1 -1
- package/lib/typescript/module/notifyAppReadyInsights.d.ts +25 -0
- package/lib/typescript/module/notifyAppReadyInsights.d.ts.map +1 -0
- package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts +8 -0
- package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts.map +1 -0
- package/lib/typescript/module/sdkVersion.d.ts +1 -1
- package/lib/typescript/module/sdkVersion.d.ts.map +1 -1
- package/lib/typescript/module/wrap.d.ts.map +1 -1
- package/lib/typescript/module/wrap.types.d.ts +5 -6
- package/lib/typescript/module/wrap.types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/checkForUpdate.releaseCatalog.spec.ts +127 -57
- package/src/checkForUpdate.ts +30 -18
- package/src/httpClient.ts +11 -11
- package/src/index.spec.ts +59 -11
- package/src/index.ts +41 -13
- package/src/native.spec.ts +110 -6
- package/src/native.ts +9 -8
- package/src/{notifyAppReadyAnalytics.boundary.spec.ts → notifyAppReadyInsights.boundary.spec.ts} +17 -17
- package/src/{notifyAppReadyAnalytics.spec.ts → notifyAppReadyInsights.spec.ts} +81 -22
- package/src/{notifyAppReadyAnalytics.test-utils.ts → notifyAppReadyInsights.test-utils.ts} +4 -4
- package/src/{notifyAppReadyAnalytics.transport.spec.ts → notifyAppReadyInsights.transport.spec.ts} +5 -5
- package/src/notifyAppReadyInsights.ts +281 -0
- package/src/sdkVersion.ts +1 -1
- package/src/wrap.spec.ts +101 -31
- package/src/wrap.tsx +11 -9
- package/src/wrap.types.ts +5 -6
- package/lib/commonjs/notifyAppReadyAnalytics.boundary.spec.js.map +0 -1
- package/lib/commonjs/notifyAppReadyAnalytics.js +0 -133
- package/lib/commonjs/notifyAppReadyAnalytics.js.map +0 -1
- package/lib/commonjs/notifyAppReadyAnalytics.spec.js.map +0 -1
- package/lib/commonjs/notifyAppReadyAnalytics.test-utils.js.map +0 -1
- package/lib/commonjs/notifyAppReadyAnalytics.transport.spec.js.map +0 -1
- package/lib/module/notifyAppReadyAnalytics.boundary.spec.js.map +0 -1
- package/lib/module/notifyAppReadyAnalytics.js +0 -128
- package/lib/module/notifyAppReadyAnalytics.js.map +0 -1
- package/lib/module/notifyAppReadyAnalytics.spec.js.map +0 -1
- package/lib/module/notifyAppReadyAnalytics.test-utils.js.map +0 -1
- package/lib/module/notifyAppReadyAnalytics.transport.spec.js.map +0 -1
- package/lib/typescript/commonjs/notifyAppReadyAnalytics.d.ts +0 -13
- package/lib/typescript/commonjs/notifyAppReadyAnalytics.d.ts.map +0 -1
- package/lib/typescript/commonjs/notifyAppReadyAnalytics.test-utils.d.ts +0 -8
- package/lib/typescript/commonjs/notifyAppReadyAnalytics.test-utils.d.ts.map +0 -1
- package/lib/typescript/module/notifyAppReadyAnalytics.d.ts +0 -13
- package/lib/typescript/module/notifyAppReadyAnalytics.d.ts.map +0 -1
- package/lib/typescript/module/notifyAppReadyAnalytics.test-utils.d.ts +0 -8
- package/lib/typescript/module/notifyAppReadyAnalytics.test-utils.d.ts.map +0 -1
- package/src/notifyAppReadyAnalytics.ts +0 -194
|
@@ -17,6 +17,18 @@ private func hotUpdaterUpdateSignalLaunchStateSymbol(
|
|
|
17
17
|
@_silgen_name("HotUpdaterPerformRecoveryReload")
|
|
18
18
|
private func hotUpdaterPerformRecoveryReloadSymbol() -> ObjCBool
|
|
19
19
|
|
|
20
|
+
@_silgen_name("HotUpdaterMarkFailedRuntime")
|
|
21
|
+
private func hotUpdaterMarkFailedRuntime()
|
|
22
|
+
|
|
23
|
+
@_silgen_name("HotUpdaterIsFailedRuntime")
|
|
24
|
+
private func hotUpdaterIsFailedRuntime() -> ObjCBool
|
|
25
|
+
|
|
26
|
+
@_silgen_name("HotUpdaterInstallRecoveryHooks")
|
|
27
|
+
private func hotUpdaterInstallRecoveryHooks()
|
|
28
|
+
|
|
29
|
+
@_silgen_name("HotUpdaterAfterSurfaceStarts")
|
|
30
|
+
private func hotUpdaterAfterSurfaceStarts(_ action: @convention(block) @escaping () -> Void)
|
|
31
|
+
|
|
20
32
|
@_silgen_name("HotUpdaterCopyMinBundleId")
|
|
21
33
|
private func hotUpdaterCopyMinBundleIdSymbol() -> UnsafeMutableRawPointer
|
|
22
34
|
|
|
@@ -545,6 +557,11 @@ private func hotUpdaterGetMinBundleId() -> String {
|
|
|
545
557
|
// MARK: - Rollback Support
|
|
546
558
|
|
|
547
559
|
public func notifyAppReady() -> [String: Any] {
|
|
560
|
+
// A failed runtime can finish queued native calls while recovery starts.
|
|
561
|
+
// Keep its readiness loop from consuming the new launch's report.
|
|
562
|
+
if hotUpdaterIsFailedRuntime().boolValue {
|
|
563
|
+
return ["status": "PENDING"]
|
|
564
|
+
}
|
|
548
565
|
return bundleStorage.notifyAppReady()
|
|
549
566
|
}
|
|
550
567
|
|
|
@@ -672,6 +689,7 @@ final class HotUpdaterRecoveryManager: NSObject {
|
|
|
672
689
|
private var handlersInstalled = false
|
|
673
690
|
private var isMonitoring = false
|
|
674
691
|
private var recoveryRequested = false
|
|
692
|
+
private var monitoringGeneration = 0
|
|
675
693
|
private var currentBundleId: String?
|
|
676
694
|
private var shouldRollbackOnCrash = false
|
|
677
695
|
private var contentAppearedCallback: ((String?) -> Void)?
|
|
@@ -709,6 +727,10 @@ final class HotUpdaterRecoveryManager: NSObject {
|
|
|
709
727
|
shouldRollback: Bool,
|
|
710
728
|
onContentAppeared: @escaping (String?) -> Void
|
|
711
729
|
) {
|
|
730
|
+
objc_sync_enter(self)
|
|
731
|
+
defer { objc_sync_exit(self) }
|
|
732
|
+
|
|
733
|
+
monitoringGeneration += 1
|
|
712
734
|
currentBundleId = bundleId
|
|
713
735
|
shouldRollbackOnCrash = shouldRollback
|
|
714
736
|
recoveryRequested = false
|
|
@@ -719,6 +741,7 @@ final class HotUpdaterRecoveryManager: NSObject {
|
|
|
719
741
|
stopMonitoringWorkItem = nil
|
|
720
742
|
|
|
721
743
|
installHandlersIfNeeded()
|
|
744
|
+
hotUpdaterInstallRecoveryHooks()
|
|
722
745
|
registerObservers()
|
|
723
746
|
installSignalHandlersIfNeeded()
|
|
724
747
|
hotUpdaterUpdateSignalLaunchState(bundleId, shouldRollback: shouldRollback)
|
|
@@ -726,9 +749,8 @@ final class HotUpdaterRecoveryManager: NSObject {
|
|
|
726
749
|
|
|
727
750
|
func handleUncaughtException(_ exception: NSException) {
|
|
728
751
|
writeCrashMarker()
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
}
|
|
752
|
+
// An uncaught native exception cannot safely continue in this process.
|
|
753
|
+
// Preserve the marker so the next launch can select the safe bundle.
|
|
732
754
|
previousUncaughtExceptionHandler?(exception)
|
|
733
755
|
}
|
|
734
756
|
|
|
@@ -742,16 +764,22 @@ final class HotUpdaterRecoveryManager: NSObject {
|
|
|
742
764
|
previousUncaughtExceptionHandler = NSGetUncaughtExceptionHandler()
|
|
743
765
|
|
|
744
766
|
RCTSetFatalHandler { [weak self] error in
|
|
745
|
-
|
|
746
|
-
if self?.requestRecoveryReloadIfNeeded(
|
|
747
|
-
self?.
|
|
767
|
+
guard !hotUpdaterIsFailedRuntime().boolValue else { return }
|
|
768
|
+
if self?.requestRecoveryReloadIfNeeded(onFailure: {
|
|
769
|
+
self?.forwardFatalError(error)
|
|
770
|
+
}) != true {
|
|
771
|
+
self?.writeCrashMarker()
|
|
772
|
+
self?.forwardFatalError(error)
|
|
748
773
|
}
|
|
749
774
|
}
|
|
750
775
|
|
|
751
776
|
RCTSetFatalExceptionHandler { [weak self] exception in
|
|
752
|
-
|
|
753
|
-
if self?.requestRecoveryReloadIfNeeded(
|
|
754
|
-
self?.
|
|
777
|
+
guard !hotUpdaterIsFailedRuntime().boolValue else { return }
|
|
778
|
+
if self?.requestRecoveryReloadIfNeeded(onFailure: {
|
|
779
|
+
self?.forwardFatalException(exception)
|
|
780
|
+
}) != true {
|
|
781
|
+
self?.writeCrashMarker()
|
|
782
|
+
self?.forwardFatalException(exception)
|
|
755
783
|
}
|
|
756
784
|
}
|
|
757
785
|
|
|
@@ -759,6 +787,33 @@ final class HotUpdaterRecoveryManager: NSObject {
|
|
|
759
787
|
handlersInstalled = true
|
|
760
788
|
}
|
|
761
789
|
|
|
790
|
+
private func forwardFatalError(_ error: Error?) {
|
|
791
|
+
if let previousFatalHandler {
|
|
792
|
+
previousFatalHandler(error)
|
|
793
|
+
} else {
|
|
794
|
+
let handler = RCTGetFatalHandler()
|
|
795
|
+
RCTSetFatalHandler(nil)
|
|
796
|
+
RCTFatal(error)
|
|
797
|
+
// React Native's DEBUG default handler can return.
|
|
798
|
+
if RCTGetFatalHandler() == nil {
|
|
799
|
+
RCTSetFatalHandler(handler)
|
|
800
|
+
}
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
private func forwardFatalException(_ exception: NSException?) {
|
|
805
|
+
if let previousFatalExceptionHandler {
|
|
806
|
+
previousFatalExceptionHandler(exception)
|
|
807
|
+
} else {
|
|
808
|
+
let handler = RCTGetFatalExceptionHandler()
|
|
809
|
+
RCTSetFatalExceptionHandler(nil)
|
|
810
|
+
RCTFatalException(exception)
|
|
811
|
+
if RCTGetFatalExceptionHandler() == nil {
|
|
812
|
+
RCTSetFatalExceptionHandler(handler)
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
|
|
762
817
|
private func installSignalHandlersIfNeeded() {
|
|
763
818
|
guard !signalHandlersInstalled else {
|
|
764
819
|
return
|
|
@@ -777,7 +832,7 @@ final class HotUpdaterRecoveryManager: NSObject {
|
|
|
777
832
|
unregisterObservers()
|
|
778
833
|
NotificationCenter.default.addObserver(
|
|
779
834
|
self,
|
|
780
|
-
selector: #selector(handleJavaScriptDidFailToLoad),
|
|
835
|
+
selector: #selector(handleJavaScriptDidFailToLoad(_:)),
|
|
781
836
|
name: NSNotification.Name.RCTJavaScriptDidFailToLoad,
|
|
782
837
|
object: nil
|
|
783
838
|
)
|
|
@@ -802,15 +857,25 @@ final class HotUpdaterRecoveryManager: NSObject {
|
|
|
802
857
|
)
|
|
803
858
|
}
|
|
804
859
|
|
|
805
|
-
@objc private func handleJavaScriptDidFailToLoad() {
|
|
806
|
-
|
|
860
|
+
@objc private func handleJavaScriptDidFailToLoad(_ notification: Notification) {
|
|
861
|
+
let error = notification.userInfo?["error"] as? NSError ?? NSError(
|
|
862
|
+
domain: "HotUpdaterRecovery",
|
|
863
|
+
code: 1,
|
|
864
|
+
userInfo: [NSLocalizedDescriptionKey: "JavaScript bundle failed to load"]
|
|
865
|
+
)
|
|
866
|
+
if requestRecoveryReloadIfNeeded(onFailure: { [weak self] in
|
|
867
|
+
self?.forwardFatalError(error)
|
|
868
|
+
}) {
|
|
807
869
|
return
|
|
808
870
|
}
|
|
809
871
|
unregisterObservers()
|
|
810
872
|
}
|
|
811
873
|
|
|
812
874
|
@objc private func handleContentDidAppear() {
|
|
813
|
-
|
|
875
|
+
objc_sync_enter(self)
|
|
876
|
+
defer { objc_sync_exit(self) }
|
|
877
|
+
|
|
878
|
+
guard isMonitoring, !recoveryRequested else {
|
|
814
879
|
return
|
|
815
880
|
}
|
|
816
881
|
|
|
@@ -820,14 +885,19 @@ final class HotUpdaterRecoveryManager: NSObject {
|
|
|
820
885
|
hotUpdaterUpdateSignalLaunchState(currentBundleId, shouldRollback: false)
|
|
821
886
|
|
|
822
887
|
stopMonitoringWorkItem?.cancel()
|
|
888
|
+
let generation = monitoringGeneration
|
|
823
889
|
let workItem = DispatchWorkItem { [weak self] in
|
|
824
|
-
self?.finishMonitoring()
|
|
890
|
+
self?.finishMonitoring(generation: generation)
|
|
825
891
|
}
|
|
826
892
|
stopMonitoringWorkItem = workItem
|
|
827
893
|
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(10), execute: workItem)
|
|
828
894
|
}
|
|
829
895
|
|
|
830
|
-
private func finishMonitoring() {
|
|
896
|
+
private func finishMonitoring(generation: Int) {
|
|
897
|
+
objc_sync_enter(self)
|
|
898
|
+
defer { objc_sync_exit(self) }
|
|
899
|
+
guard monitoringGeneration == generation else { return }
|
|
900
|
+
|
|
831
901
|
isMonitoring = false
|
|
832
902
|
recoveryRequested = false
|
|
833
903
|
stopMonitoringWorkItem = nil
|
|
@@ -837,31 +907,40 @@ final class HotUpdaterRecoveryManager: NSObject {
|
|
|
837
907
|
hotUpdaterUpdateSignalLaunchState(nil, shouldRollback: false)
|
|
838
908
|
}
|
|
839
909
|
|
|
840
|
-
private func requestRecoveryReloadIfNeeded() -> Bool {
|
|
910
|
+
private func requestRecoveryReloadIfNeeded(onFailure: @escaping () -> Void) -> Bool {
|
|
911
|
+
objc_sync_enter(self)
|
|
912
|
+
defer { objc_sync_exit(self) }
|
|
913
|
+
|
|
841
914
|
guard isMonitoring, shouldRollbackOnCrash else {
|
|
842
915
|
return false
|
|
843
916
|
}
|
|
844
917
|
|
|
845
|
-
|
|
918
|
+
hotUpdaterMarkFailedRuntime()
|
|
846
919
|
if recoveryRequested {
|
|
847
|
-
objc_sync_exit(self)
|
|
848
920
|
return true
|
|
849
921
|
}
|
|
850
922
|
recoveryRequested = true
|
|
851
|
-
|
|
923
|
+
writeCrashMarker()
|
|
852
924
|
|
|
853
925
|
let bundleId = currentBundleId
|
|
854
|
-
|
|
926
|
+
let generation = monitoringGeneration
|
|
927
|
+
hotUpdaterAfterSurfaceStarts { [weak self] in
|
|
855
928
|
guard let self else {
|
|
856
929
|
return
|
|
857
930
|
}
|
|
858
931
|
|
|
932
|
+
objc_sync_enter(self)
|
|
933
|
+
let isCurrentLaunch = self.monitoringGeneration == generation
|
|
934
|
+
objc_sync_exit(self)
|
|
935
|
+
guard isCurrentLaunch else { return }
|
|
936
|
+
|
|
859
937
|
let started = hotUpdaterPerformRecoveryReload()
|
|
860
938
|
if !started {
|
|
861
939
|
objc_sync_enter(self)
|
|
862
940
|
self.recoveryRequested = false
|
|
863
941
|
objc_sync_exit(self)
|
|
864
942
|
NSLog("[HotUpdaterRecovery] Failed to trigger recovery reload")
|
|
943
|
+
onFailure()
|
|
865
944
|
} else {
|
|
866
945
|
NSLog("[HotUpdaterRecovery] Triggered recovery reload for bundleId=\(bundleId ?? "nil")")
|
|
867
946
|
}
|
|
@@ -871,6 +950,9 @@ final class HotUpdaterRecoveryManager: NSObject {
|
|
|
871
950
|
}
|
|
872
951
|
|
|
873
952
|
private func writeCrashMarker() {
|
|
953
|
+
objc_sync_enter(self)
|
|
954
|
+
defer { objc_sync_exit(self) }
|
|
955
|
+
|
|
874
956
|
guard isMonitoring else {
|
|
875
957
|
return
|
|
876
958
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
2
|
+
|
|
3
|
+
#ifdef __cplusplus
|
|
4
|
+
extern "C" {
|
|
5
|
+
#endif
|
|
6
|
+
|
|
7
|
+
void HotUpdaterMarkFailedRuntime(void);
|
|
8
|
+
BOOL HotUpdaterIsFailedRuntime(void);
|
|
9
|
+
void HotUpdaterInstallRecoveryHooks(void);
|
|
10
|
+
BOOL HotUpdaterBeginSurfaceStart(const void *surfaceHandler);
|
|
11
|
+
void HotUpdaterFinishSurfaceStart(const void *surfaceHandler);
|
|
12
|
+
void HotUpdaterAfterSurfaceStarts(dispatch_block_t action);
|
|
13
|
+
|
|
14
|
+
#ifdef __cplusplus
|
|
15
|
+
}
|
|
16
|
+
#endif
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#import "HotUpdaterRecovery.h"
|
|
2
|
+
|
|
3
|
+
static NSString *const failedRuntimeKey = @"HotUpdater.failedRuntime";
|
|
4
|
+
static NSString *const surfaceStartsKey = @"HotUpdater.surfaceStarts";
|
|
5
|
+
|
|
6
|
+
static BOOL isRuntimeThread(void)
|
|
7
|
+
{
|
|
8
|
+
return [[NSThread currentThread].name isEqualToString:@"com.facebook.react.runtime.JavaScript"];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
static NSMutableDictionary *pendingStarts(void)
|
|
12
|
+
{
|
|
13
|
+
static NSMutableDictionary *starts;
|
|
14
|
+
static dispatch_once_t onceToken;
|
|
15
|
+
dispatch_once(&onceToken, ^{ starts = [NSMutableDictionary new]; });
|
|
16
|
+
return starts;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
BOOL HotUpdaterIsFailedRuntime(void)
|
|
20
|
+
{
|
|
21
|
+
return [[[NSThread currentThread] threadDictionary][failedRuntimeKey] boolValue];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
void HotUpdaterMarkFailedRuntime(void)
|
|
25
|
+
{
|
|
26
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
27
|
+
// A bridgeless runtime owns this thread. Never mark shared native workers.
|
|
28
|
+
if (isRuntimeThread()) {
|
|
29
|
+
[NSThread currentThread].threadDictionary[failedRuntimeKey] = @YES;
|
|
30
|
+
}
|
|
31
|
+
#endif
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
BOOL HotUpdaterBeginSurfaceStart(const void *surfaceHandler)
|
|
35
|
+
{
|
|
36
|
+
if (HotUpdaterIsFailedRuntime()) {
|
|
37
|
+
return NO;
|
|
38
|
+
}
|
|
39
|
+
if (!isRuntimeThread()) {
|
|
40
|
+
return YES;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
NSMutableDictionary *starts = pendingStarts();
|
|
44
|
+
NSValue *key = [NSValue valueWithPointer:surfaceHandler];
|
|
45
|
+
@synchronized (starts) {
|
|
46
|
+
if (starts[key]) {
|
|
47
|
+
return NO;
|
|
48
|
+
}
|
|
49
|
+
NSMutableDictionary *runtime = [NSThread currentThread].threadDictionary;
|
|
50
|
+
dispatch_group_t group = runtime[surfaceStartsKey];
|
|
51
|
+
if (!group) {
|
|
52
|
+
group = dispatch_group_create();
|
|
53
|
+
runtime[surfaceStartsKey] = group;
|
|
54
|
+
}
|
|
55
|
+
dispatch_group_enter(group);
|
|
56
|
+
starts[key] = group;
|
|
57
|
+
}
|
|
58
|
+
return YES;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
void HotUpdaterFinishSurfaceStart(const void *surfaceHandler)
|
|
62
|
+
{
|
|
63
|
+
NSMutableDictionary *starts = pendingStarts();
|
|
64
|
+
NSValue *key = [NSValue valueWithPointer:surfaceHandler];
|
|
65
|
+
dispatch_group_t group;
|
|
66
|
+
@synchronized (starts) {
|
|
67
|
+
group = starts[key];
|
|
68
|
+
[starts removeObjectForKey:key];
|
|
69
|
+
}
|
|
70
|
+
if (group) {
|
|
71
|
+
dispatch_group_leave(group);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
void HotUpdaterAfterSurfaceStarts(dispatch_block_t action)
|
|
76
|
+
{
|
|
77
|
+
dispatch_group_t group = [NSThread currentThread].threadDictionary[surfaceStartsKey];
|
|
78
|
+
if (group) {
|
|
79
|
+
dispatch_group_notify(group, dispatch_get_main_queue(), action);
|
|
80
|
+
} else {
|
|
81
|
+
dispatch_async(dispatch_get_main_queue(), action);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#import "HotUpdaterRecovery.h"
|
|
2
|
+
#import <objc/runtime.h>
|
|
3
|
+
|
|
4
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
5
|
+
#import <React/RCTFabricSurface.h>
|
|
6
|
+
#import <React/RCTSurfacePresenter.h>
|
|
7
|
+
#endif
|
|
8
|
+
|
|
9
|
+
void HotUpdaterInstallRecoveryHooks(void)
|
|
10
|
+
{
|
|
11
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
12
|
+
static dispatch_once_t onceToken;
|
|
13
|
+
dispatch_once(&onceToken, ^{
|
|
14
|
+
SEL startSelector = @selector(start);
|
|
15
|
+
SEL completionSelector = @selector(setupAnimationDriverWithSurfaceHandler:);
|
|
16
|
+
Method startMethod = class_getInstanceMethod(RCTFabricSurface.class, startSelector);
|
|
17
|
+
Method completionMethod = class_getInstanceMethod(RCTSurfacePresenter.class, completionSelector);
|
|
18
|
+
if (!startMethod || !completionMethod) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
IMP originalCompletion = method_getImplementation(completionMethod);
|
|
23
|
+
method_setImplementation(completionMethod, imp_implementationWithBlock(
|
|
24
|
+
^(RCTSurfacePresenter *presenter, const facebook::react::SurfaceHandler &handler) {
|
|
25
|
+
((void (*)(id, SEL, const facebook::react::SurfaceHandler &))originalCompletion)(
|
|
26
|
+
presenter, completionSelector, handler);
|
|
27
|
+
// This is the final operation in both synchronous and asynchronous
|
|
28
|
+
// Fabric starts. A stage callback fires too early to permit reload.
|
|
29
|
+
HotUpdaterFinishSurfaceStart(&handler);
|
|
30
|
+
}));
|
|
31
|
+
|
|
32
|
+
IMP originalStart = method_getImplementation(startMethod);
|
|
33
|
+
method_setImplementation(startMethod, imp_implementationWithBlock(^(RCTFabricSurface *surface) {
|
|
34
|
+
if (HotUpdaterIsFailedRuntime()) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const auto &handler = surface.surfaceHandler;
|
|
38
|
+
if (handler.getStatus() != facebook::react::SurfaceHandler::Status::Registered) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (HotUpdaterBeginSurfaceStart(&handler)) {
|
|
42
|
+
// No coordination lock crosses the original call: older RN versions
|
|
43
|
+
// invoke the completion synchronously on this same thread.
|
|
44
|
+
((void (*)(id, SEL))originalStart)(surface, startSelector);
|
|
45
|
+
}
|
|
46
|
+
}));
|
|
47
|
+
});
|
|
48
|
+
#endif
|
|
49
|
+
}
|
|
@@ -9,6 +9,7 @@ var _pluginCore = require("@hot-updater/plugin-core");
|
|
|
9
9
|
var _reactNative = require("react-native");
|
|
10
10
|
var _error = require("./error.js");
|
|
11
11
|
var _native = require("./native.js");
|
|
12
|
+
var _notifyAppReadyInsights = require("./notifyAppReadyInsights.js");
|
|
12
13
|
var _releaseCatalogCache = require("./releaseCatalogCache.js");
|
|
13
14
|
var _store = require("./store.js");
|
|
14
15
|
const sameReceipt = (first, second) => first !== null && first.kind === second.kind && first.releaseId === second.releaseId && first.bundleId === second.bundleId && first.catalogId === second.catalogId && first.scopeKey === second.scopeKey && first.generation === second.generation && first.catalogHash === second.catalogHash && first.channel === second.channel && first.selectionContextHash === second.selectionContextHash;
|
|
@@ -27,18 +28,18 @@ const resetProgress = () => {
|
|
|
27
28
|
totalBytes: undefined
|
|
28
29
|
});
|
|
29
30
|
};
|
|
30
|
-
const
|
|
31
|
+
const notifyUnchangedSelection = async input => {
|
|
31
32
|
const {
|
|
32
33
|
userId,
|
|
33
34
|
username
|
|
34
35
|
} = (0, _native.getPersistedUserIdentity)();
|
|
35
36
|
try {
|
|
36
|
-
await input.session.
|
|
37
|
+
await input.session.sendInsightsEvent({
|
|
37
38
|
appVersion: input.appVersion,
|
|
38
39
|
channel: input.desired.channel,
|
|
39
40
|
cohort: input.cohort,
|
|
40
41
|
fingerprintHash: input.fingerprintHash,
|
|
41
|
-
fromBundleId:
|
|
42
|
+
fromBundleId: null,
|
|
42
43
|
fromReleaseId: input.active?.releaseId ?? null,
|
|
43
44
|
installId: (0, _native.getInstallId)(),
|
|
44
45
|
platform: input.platform,
|
|
@@ -46,8 +47,8 @@ const notifyReleaseAdoption = async input => {
|
|
|
46
47
|
requestTimeout: input.requestTimeout,
|
|
47
48
|
toBundleId: input.desired.bundleId,
|
|
48
49
|
toReleaseId: input.desired.releaseId,
|
|
49
|
-
type: "
|
|
50
|
-
updateStrategy:
|
|
50
|
+
type: "UNCHANGED",
|
|
51
|
+
updateStrategy: null,
|
|
51
52
|
...(userId === undefined ? {} : {
|
|
52
53
|
userId
|
|
53
54
|
}),
|
|
@@ -56,7 +57,7 @@ const notifyReleaseAdoption = async input => {
|
|
|
56
57
|
})
|
|
57
58
|
});
|
|
58
59
|
} catch (error) {
|
|
59
|
-
console.warn("[HotUpdater]
|
|
60
|
+
console.warn("[HotUpdater] Unchanged selection insights failed:", error);
|
|
60
61
|
}
|
|
61
62
|
};
|
|
62
63
|
async function checkForReleaseCatalogUpdate(input) {
|
|
@@ -96,7 +97,8 @@ async function checkForReleaseCatalogUpdate(input) {
|
|
|
96
97
|
const catalogId = catalog.catalogId;
|
|
97
98
|
const scopeKey = catalog.scopeKey;
|
|
98
99
|
const crashedBundleIds = (0, _native.getCrashHistory)();
|
|
99
|
-
const
|
|
100
|
+
const activeState = (0, _native.getActiveUpdateState)();
|
|
101
|
+
const active = activeState.activeSelection;
|
|
100
102
|
const explicitScopeSwitch = input.explicitChannel !== undefined && input.explicitChannel !== input.currentChannel;
|
|
101
103
|
const activeInTargetScope = active?.catalogId === catalogId && active.scopeKey === scopeKey ? active : null;
|
|
102
104
|
const hasAuthenticatedActive = active !== null && active.catalogId !== null && active.scopeKey !== null && active.generation !== null;
|
|
@@ -176,8 +178,8 @@ async function checkForReleaseCatalogUpdate(input) {
|
|
|
176
178
|
guard,
|
|
177
179
|
selection: receipt
|
|
178
180
|
});
|
|
179
|
-
if (committed && transitionKind === "ADOPT_RELEASE" && options.
|
|
180
|
-
await
|
|
181
|
+
if (committed && transitionKind === "ADOPT_RELEASE" && options.insights) {
|
|
182
|
+
await notifyUnchangedSelection({
|
|
181
183
|
active,
|
|
182
184
|
appVersion: input.currentAppVersion,
|
|
183
185
|
cohort: input.cohort,
|
|
@@ -186,8 +188,7 @@ async function checkForReleaseCatalogUpdate(input) {
|
|
|
186
188
|
platform: input.platform,
|
|
187
189
|
requestHeaders: options.requestHeaders,
|
|
188
190
|
requestTimeout: options.requestTimeout,
|
|
189
|
-
session
|
|
190
|
-
updateStrategy: options.updateStrategy
|
|
191
|
+
session
|
|
191
192
|
});
|
|
192
193
|
}
|
|
193
194
|
return committed;
|
|
@@ -201,7 +202,7 @@ async function checkForReleaseCatalogUpdate(input) {
|
|
|
201
202
|
if (!(0, _native.isReleaseSelectionCurrent)(guard)) {
|
|
202
203
|
throw new _error.StaleReleaseCatalogError();
|
|
203
204
|
}
|
|
204
|
-
|
|
205
|
+
const downloaded = await (0, _native.updateBundle)({
|
|
205
206
|
bundleId: desired.bundleId,
|
|
206
207
|
changedAssets: artifact.changedAssets ?? null,
|
|
207
208
|
channel: input.targetChannel,
|
|
@@ -213,11 +214,22 @@ async function checkForReleaseCatalogUpdate(input) {
|
|
|
213
214
|
shouldSkipCurrentBundleIdCheck: true,
|
|
214
215
|
status: desired.status
|
|
215
216
|
});
|
|
217
|
+
if (downloaded) {
|
|
218
|
+
await (0, _notifyAppReadyInsights.reportBundleDownloaded)(options, {
|
|
219
|
+
fromBundleId: input.currentBundleId,
|
|
220
|
+
fromReleaseId: active?.bundleId === input.currentBundleId ? active.releaseId : activeState.stableSelection?.bundleId === input.currentBundleId ? activeState.stableSelection.releaseId : null,
|
|
221
|
+
toBundleId: desired.bundleId,
|
|
222
|
+
toReleaseId: desired.releaseId,
|
|
223
|
+
channel: input.targetChannel,
|
|
224
|
+
updateStrategy: options.updateStrategy
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
return downloaded;
|
|
216
228
|
};
|
|
217
229
|
return {
|
|
218
230
|
fileHash: null,
|
|
219
231
|
fileUrl: null,
|
|
220
|
-
id: desired.bundleId,
|
|
232
|
+
id: desired.releaseId ?? desired.bundleId,
|
|
221
233
|
message: release?.message ?? null,
|
|
222
234
|
releaseId: desired.releaseId,
|
|
223
235
|
rolloutCohortCount: release?.rolloutCohortCount ?? 1000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_core","require","_pluginCore","_reactNative","_error","_native","_releaseCatalogCache","_store","sameReceipt","first","second","kind","releaseId","bundleId","catalogId","scopeKey","generation","catalogHash","channel","selectionContextHash","validateCatalog","catalog","expectedScope","schemaVersion","Number","isSafeInteger","test","hasExpectedReleaseCatalogScope","HotUpdaterError","resetProgress","hotUpdaterStore","setState","artifactType","details","downloadedBytes","undefined","isUpdateDownloaded","progress","totalBytes","notifyReleaseAdoption","input","userId","username","getPersistedUserIdentity","session","sendAnalyticsEvent","appVersion","desired","cohort","fingerprintHash","fromBundleId","fromReleaseId","active","installId","getInstallId","platform","requestHeaders","requestTimeout","toBundleId","toReleaseId","type","updateStrategy","error","console","warn","checkForReleaseCatalogUpdate","options","client","createSession","channelKey","encodeChannelKey","targetChannel","strategy","canonicalAppVersion","canonicalizeAppVersion","currentAppVersion","fetchReleaseCatalog","crashedBundleIds","getCrashHistory","getActiveUpdateState","activeSelection","explicitScopeSwitch","explicitChannel","currentChannel","activeInTargetScope","hasAuthenticatedActive","selectorCurrentBundleId","currentBundleId","minimumReleaseId","createReleaseSelectionContextHash","activeBundleId","activeReleaseId","strategyValue","acceptReleaseCatalog","selectDesiredRelease","builtInBundleId","receipt","authorization","authorizeReleaseTransition","authorized","reason","release","transitionKind","guard","updateBundleForSelection","isReleaseSelectionCurrent","StaleReleaseCatalogError","committed","commitReleaseSelection","selection","analytics","artifact","resolveArtifact","targetBundleId","updateBundle","changedAssets","fileHash","fileUrl","manifestFileHash","manifestUrl","shouldSkipCurrentBundleIdCheck","status","id","message","rolloutCohortCount","shouldForceUpdate","targetCohorts","checkForUpdate","__DEV__","includes","Platform","OS","onError","getAppVersion","getBundleId","getMinBundleId","defaultChannel","getDefaultChannel","isSwitched","isChannelSwitched","getChannel","getCohort","getFingerprintHash"],"sourceRoot":"../../src","sources":["checkForUpdate.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_core","require","_pluginCore","_reactNative","_error","_native","_notifyAppReadyInsights","_releaseCatalogCache","_store","sameReceipt","first","second","kind","releaseId","bundleId","catalogId","scopeKey","generation","catalogHash","channel","selectionContextHash","validateCatalog","catalog","expectedScope","schemaVersion","Number","isSafeInteger","test","hasExpectedReleaseCatalogScope","HotUpdaterError","resetProgress","hotUpdaterStore","setState","artifactType","details","downloadedBytes","undefined","isUpdateDownloaded","progress","totalBytes","notifyUnchangedSelection","input","userId","username","getPersistedUserIdentity","session","sendInsightsEvent","appVersion","desired","cohort","fingerprintHash","fromBundleId","fromReleaseId","active","installId","getInstallId","platform","requestHeaders","requestTimeout","toBundleId","toReleaseId","type","updateStrategy","error","console","warn","checkForReleaseCatalogUpdate","options","client","createSession","channelKey","encodeChannelKey","targetChannel","strategy","canonicalAppVersion","canonicalizeAppVersion","currentAppVersion","fetchReleaseCatalog","crashedBundleIds","getCrashHistory","activeState","getActiveUpdateState","activeSelection","explicitScopeSwitch","explicitChannel","currentChannel","activeInTargetScope","hasAuthenticatedActive","selectorCurrentBundleId","currentBundleId","minimumReleaseId","createReleaseSelectionContextHash","activeBundleId","activeReleaseId","strategyValue","acceptReleaseCatalog","selectDesiredRelease","builtInBundleId","receipt","authorization","authorizeReleaseTransition","authorized","reason","release","transitionKind","guard","updateBundleForSelection","isReleaseSelectionCurrent","StaleReleaseCatalogError","committed","commitReleaseSelection","selection","insights","artifact","resolveArtifact","targetBundleId","downloaded","updateBundle","changedAssets","fileHash","fileUrl","manifestFileHash","manifestUrl","shouldSkipCurrentBundleIdCheck","status","reportBundleDownloaded","stableSelection","id","message","rolloutCohortCount","shouldForceUpdate","targetCohorts","checkForUpdate","__DEV__","includes","Platform","OS","onError","getAppVersion","getBundleId","getMinBundleId","defaultChannel","getDefaultChannel","isSwitched","isChannelSwitched","getChannel","getCohort","getFingerprintHash"],"sourceRoot":"../../src","sources":["checkForUpdate.ts"],"mappings":"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","ignoreList":[]}
|