From b6deeba807266f2430c2c6ec28a1121f899dcaad Mon Sep 17 00:00:00 2001 From: Robert Herber Date: Mon, 29 Dec 2025 16:48:49 +0100 Subject: [PATCH 1/3] fix: dev client crash --- .../ios/ReactNativeDeviceActivityModule.swift | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/react-native-device-activity/ios/ReactNativeDeviceActivityModule.swift b/packages/react-native-device-activity/ios/ReactNativeDeviceActivityModule.swift index 24d3eca..abce029 100644 --- a/packages/react-native-device-activity/ios/ReactNativeDeviceActivityModule.swift +++ b/packages/react-native-device-activity/ios/ReactNativeDeviceActivityModule.swift @@ -232,6 +232,10 @@ class NativeEventObserver { registerListener(name: "intervalWillEndWarning") registerListener(name: "eventWillReachThresholdWarning") } + + func unregister() { + CFNotificationCenterRemoveEveryObserver(notificationCenter, observer) + } } @available(iOS 15.0, *) @@ -277,8 +281,6 @@ public class ReactNativeDeviceActivityModule: Module { ]) let fileManager = FileManager.default - let observer = NativeEventObserver(module: self) - var watchActivitiesHandle: Cancellable? var onDeviceActivityDetectedHandle: Cancellable? @@ -321,7 +323,10 @@ public class ReactNativeDeviceActivityModule: Module { return to.absoluteString } + var observer: NativeEventObserver? + OnStartObserving { + observer = NativeEventObserver(module: self) onDeviceActivityDetectedHandle = AuthorizationCenter.shared.$authorizationStatus.sink { status in self.sendEvent( @@ -341,6 +346,8 @@ public class ReactNativeDeviceActivityModule: Module { } OnStopObserving { + observer?.unregister() + observer = nil watchActivitiesHandle?.cancel() onDeviceActivityDetectedHandle?.cancel() } @@ -694,7 +701,7 @@ public class ReactNativeDeviceActivityModule: Module { let activitySelection = parseActivitySelectionInput(input: familyActivitySelection) - try blockSelectedApps( + blockSelectedApps( blockSelection: activitySelection, triggeredBy: triggeredBy ) @@ -816,15 +823,11 @@ public class ReactNativeDeviceActivityModule: Module { } Prop("footerText") { (view: ReactNativeDeviceActivityView, prop: String?) in - view.model.footerText = prop - } Prop("headerText") { (view: ReactNativeDeviceActivityView, prop: String?) in - view.model.headerText = prop - } } } From 493efd188013e3fbd73b3437a39179a67ae7debd Mon Sep 17 00:00:00 2001 From: Robert Herber Date: Mon, 29 Dec 2025 17:26:47 +0100 Subject: [PATCH 2/3] bump iphone sim to use for tests --- .github/workflows/test.yml | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index abaed15..350f00a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,9 +19,9 @@ jobs: bun-version: latest - run: bun install - + - run: bun lint - + typecheck: name: Typecheck runs-on: ubuntu-latest @@ -34,7 +34,7 @@ jobs: bun-version: latest - run: bun install - + - run: bun typecheck typecheck-example: @@ -43,7 +43,7 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@v4 - + - uses: oven-sh/setup-bun@v2 with: bun-version: latest @@ -59,7 +59,7 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@v4 - + - uses: oven-sh/setup-bun@v2 with: bun-version: latest @@ -75,7 +75,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - + - uses: oven-sh/setup-bun@v2 with: bun-version: latest @@ -91,7 +91,7 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@v4 - + - uses: oven-sh/setup-bun@v2 with: bun-version: latest @@ -107,7 +107,7 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@v4 - + - uses: oven-sh/setup-bun@v2 with: bun-version: latest @@ -123,7 +123,7 @@ jobs: - run: pod install working-directory: apps/example/ios - + - run: apps/example/ios/Pods/SwiftLint/swiftlint lint swift-test: @@ -170,15 +170,11 @@ jobs: - name: Check Swift version run: swift --version - + - run: pod install working-directory: apps/example/ios - run: cp .swiftlint.yml apps/example/ios - - - run: xcodebuild test -workspace reactnativedeviceactivityexample.xcworkspace -scheme Tests -allowProvisioningUpdates -destination "platform=iOS Simulator,OS=latest,name=iPhone 16" - working-directory: apps/example/ios - - - \ No newline at end of file + - run: xcodebuild test -workspace reactnativedeviceactivityexample.xcworkspace -scheme Tests -allowProvisioningUpdates -destination "platform=iOS Simulator,OS=latest,name=iPhone 17" + working-directory: apps/example/ios From 18c7b031c5243edcf883d780423f554c92462b80 Mon Sep 17 00:00:00 2001 From: Robert Herber Date: Mon, 29 Dec 2025 17:32:08 +0100 Subject: [PATCH 3/3] use xcode 16.4 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 350f00a..15d9e40 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -166,7 +166,7 @@ jobs: restore-keys: xcode-cache-deriveddata-${{ github.workflow }}- - name: Set up Xcode version - run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer + run: sudo xcode-select -s /Applications/Xcode_16.4.app - name: Check Swift version run: swift --version