From 7041c73b9708c0660d383b2af6e9a0cf56137f0f Mon Sep 17 00:00:00 2001 From: himanshunaidu Date: Mon, 17 Aug 2026 12:54:27 -0700 Subject: [PATCH 1/2] Additional scheme for release-like testing --- .../iOSPointMapper-FieldDebug.xcscheme | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 IOSAccessAssessment.xcodeproj/xcshareddata/xcschemes/iOSPointMapper-FieldDebug.xcscheme diff --git a/IOSAccessAssessment.xcodeproj/xcshareddata/xcschemes/iOSPointMapper-FieldDebug.xcscheme b/IOSAccessAssessment.xcodeproj/xcshareddata/xcschemes/iOSPointMapper-FieldDebug.xcscheme new file mode 100644 index 00000000..220ba2ce --- /dev/null +++ b/IOSAccessAssessment.xcodeproj/xcshareddata/xcschemes/iOSPointMapper-FieldDebug.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From e4a5916a0b8c66c076c86792a4cb64e057d06692 Mon Sep 17 00:00:00 2001 From: himanshunaidu Date: Fri, 21 Aug 2026 18:38:43 -0700 Subject: [PATCH 2/2] Add some corrections to test version of camera view related to manager lifecycle --- IOSAccessAssessment.xcodeproj/project.pbxproj | 2 ++ .../ARCamera/TestCameraManager.swift | 5 +++++ .../View/TestMode/TestCameraView.swift | 17 +++++++++++++++-- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/IOSAccessAssessment.xcodeproj/project.pbxproj b/IOSAccessAssessment.xcodeproj/project.pbxproj index b7546d51..b168a86e 100644 --- a/IOSAccessAssessment.xcodeproj/project.pbxproj +++ b/IOSAccessAssessment.xcodeproj/project.pbxproj @@ -1325,6 +1325,7 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + "SWIFT_ACTIVE_COMPILATION_CONDITIONS[arch=*]" = STRESS_MODE; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OBJC_BRIDGING_HEADER = "IOSAccessAssessment/IOSAccessAssessment-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -1376,6 +1377,7 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + "SWIFT_ACTIVE_COMPILATION_CONDITIONS[arch=*]" = STRESS_MODE; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OBJC_BRIDGING_HEADER = "IOSAccessAssessment/IOSAccessAssessment-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/IOSAccessAssessment/ARCamera/TestCameraManager.swift b/IOSAccessAssessment/ARCamera/TestCameraManager.swift index ed1b1fcb..4349ba06 100644 --- a/IOSAccessAssessment/ARCamera/TestCameraManager.swift +++ b/IOSAccessAssessment/ARCamera/TestCameraManager.swift @@ -562,4 +562,9 @@ extension TestCameraManager { self.cameraMeshResults = nil self.cameraCache = ARCameraCache() } + + @MainActor + func resume() throws { + self.outputConsumer?.resumeSession() + } } diff --git a/IOSAccessAssessment/View/TestMode/TestCameraView.swift b/IOSAccessAssessment/View/TestMode/TestCameraView.swift index 1f127487..c452df21 100644 --- a/IOSAccessAssessment/View/TestMode/TestCameraView.swift +++ b/IOSAccessAssessment/View/TestMode/TestCameraView.swift @@ -245,6 +245,14 @@ struct TestCameraView: View { } } .onDisappear { + Task { + do { + try manager.pause() + locationManager.stopLocationUpdates() + } catch { + print("Error pausing ARCameraManager: \(error)") + } + } } .alert(ARCameraViewConstants.Texts.managerStatusAlertTitleKey, isPresented: $managerConfigureStatusViewModel.isFailed, actions: { Button(ARCameraViewConstants.Texts.managerStatusAlertDismissButtonKey) { @@ -284,8 +292,13 @@ struct TestCameraView: View { // If the AnnotationView is dismissed, clear capture history and move to the next capture data Task { if (oldValue == true && newValue == false) { - await sharedAppData.refreshQueue() - self.currentIndex = max(min(self.currentIndex + 1, self.totalCaptures - 1), 0) + do { + await sharedAppData.refreshQueue() + try manager.resume() + self.currentIndex = max(min(self.currentIndex + 1, self.totalCaptures - 1), 0) + } catch { + managerConfigureStatusViewModel.update(isFailed: true, errorMessage: error.localizedDescription) + } } } }