Skip to content

Commit 917e955

Browse files
authored
Fix dev client crash (#80)
* fix: dev client crash * bump iphone sim to use for tests * use xcode 16.4
1 parent 13ed57e commit 917e955

2 files changed

Lines changed: 23 additions & 24 deletions

File tree

.github/workflows/test.yml

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ jobs:
1919
bun-version: latest
2020

2121
- run: bun install
22-
22+
2323
- run: bun lint
24-
24+
2525
typecheck:
2626
name: Typecheck
2727
runs-on: ubuntu-latest
@@ -34,7 +34,7 @@ jobs:
3434
bun-version: latest
3535

3636
- run: bun install
37-
37+
3838
- run: bun typecheck
3939

4040
typecheck-example:
@@ -43,7 +43,7 @@ jobs:
4343
timeout-minutes: 10
4444
steps:
4545
- uses: actions/checkout@v4
46-
46+
4747
- uses: oven-sh/setup-bun@v2
4848
with:
4949
bun-version: latest
@@ -59,7 +59,7 @@ jobs:
5959
timeout-minutes: 10
6060
steps:
6161
- uses: actions/checkout@v4
62-
62+
6363
- uses: oven-sh/setup-bun@v2
6464
with:
6565
bun-version: latest
@@ -75,7 +75,7 @@ jobs:
7575
runs-on: ubuntu-latest
7676
steps:
7777
- uses: actions/checkout@v4
78-
78+
7979
- uses: oven-sh/setup-bun@v2
8080
with:
8181
bun-version: latest
@@ -91,7 +91,7 @@ jobs:
9191
timeout-minutes: 10
9292
steps:
9393
- uses: actions/checkout@v4
94-
94+
9595
- uses: oven-sh/setup-bun@v2
9696
with:
9797
bun-version: latest
@@ -107,7 +107,7 @@ jobs:
107107
timeout-minutes: 10
108108
steps:
109109
- uses: actions/checkout@v4
110-
110+
111111
- uses: oven-sh/setup-bun@v2
112112
with:
113113
bun-version: latest
@@ -123,7 +123,7 @@ jobs:
123123

124124
- run: pod install
125125
working-directory: apps/example/ios
126-
126+
127127
- run: apps/example/ios/Pods/SwiftLint/swiftlint lint
128128

129129
swift-test:
@@ -166,19 +166,15 @@ jobs:
166166
restore-keys: xcode-cache-deriveddata-${{ github.workflow }}-
167167

168168
- name: Set up Xcode version
169-
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
169+
run: sudo xcode-select -s /Applications/Xcode_16.4.app
170170

171171
- name: Check Swift version
172172
run: swift --version
173-
173+
174174
- run: pod install
175175
working-directory: apps/example/ios
176176

177177
- run: cp .swiftlint.yml apps/example/ios
178-
179-
- run: xcodebuild test -workspace reactnativedeviceactivityexample.xcworkspace -scheme Tests -allowProvisioningUpdates -destination "platform=iOS Simulator,OS=latest,name=iPhone 16"
180-
working-directory: apps/example/ios
181178

182-
183-
184-
179+
- run: xcodebuild test -workspace reactnativedeviceactivityexample.xcworkspace -scheme Tests -allowProvisioningUpdates -destination "platform=iOS Simulator,OS=latest,name=iPhone 17"
180+
working-directory: apps/example/ios

packages/react-native-device-activity/ios/ReactNativeDeviceActivityModule.swift

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,10 @@ class NativeEventObserver {
232232
registerListener(name: "intervalWillEndWarning")
233233
registerListener(name: "eventWillReachThresholdWarning")
234234
}
235+
236+
func unregister() {
237+
CFNotificationCenterRemoveEveryObserver(notificationCenter, observer)
238+
}
235239
}
236240

237241
@available(iOS 15.0, *)
@@ -277,8 +281,6 @@ public class ReactNativeDeviceActivityModule: Module {
277281
])
278282
let fileManager = FileManager.default
279283

280-
let observer = NativeEventObserver(module: self)
281-
282284
var watchActivitiesHandle: Cancellable?
283285
var onDeviceActivityDetectedHandle: Cancellable?
284286

@@ -321,7 +323,10 @@ public class ReactNativeDeviceActivityModule: Module {
321323
return to.absoluteString
322324
}
323325

326+
var observer: NativeEventObserver?
327+
324328
OnStartObserving {
329+
observer = NativeEventObserver(module: self)
325330
onDeviceActivityDetectedHandle = AuthorizationCenter.shared.$authorizationStatus.sink {
326331
status in
327332
self.sendEvent(
@@ -341,6 +346,8 @@ public class ReactNativeDeviceActivityModule: Module {
341346
}
342347

343348
OnStopObserving {
349+
observer?.unregister()
350+
observer = nil
344351
watchActivitiesHandle?.cancel()
345352
onDeviceActivityDetectedHandle?.cancel()
346353
}
@@ -694,7 +701,7 @@ public class ReactNativeDeviceActivityModule: Module {
694701

695702
let activitySelection = parseActivitySelectionInput(input: familyActivitySelection)
696703

697-
try blockSelectedApps(
704+
blockSelectedApps(
698705
blockSelection: activitySelection,
699706
triggeredBy: triggeredBy
700707
)
@@ -816,15 +823,11 @@ public class ReactNativeDeviceActivityModule: Module {
816823
}
817824

818825
Prop("footerText") { (view: ReactNativeDeviceActivityView, prop: String?) in
819-
820826
view.model.footerText = prop
821-
822827
}
823828

824829
Prop("headerText") { (view: ReactNativeDeviceActivityView, prop: String?) in
825-
826830
view.model.headerText = prop
827-
828831
}
829832
}
830833
}

0 commit comments

Comments
 (0)