diff --git a/.github/composite_actions/run_xcodebuild/action.yml b/.github/composite_actions/run_xcodebuild/action.yml index d5567939bf..e5de6b9a4c 100644 --- a/.github/composite_actions/run_xcodebuild/action.yml +++ b/.github/composite_actions/run_xcodebuild/action.yml @@ -71,5 +71,5 @@ runs: fi xcodebuild -version - xcodebuild build -scheme $SCHEME -sdk '${{ inputs.sdk }}' -destination '${{ inputs.destination }}' $otherFlags | xcpretty --simple --color --report junit && exit ${PIPESTATUS[0]} + xcodebuild build -scheme $SCHEME -sdk '${{ inputs.sdk }}' -destination '${{ inputs.destination }}' $otherFlags | xcbeautify --renderer github-actions && exit ${PIPESTATUS[0]} shell: bash \ No newline at end of file diff --git a/.github/composite_actions/run_xcodebuild_test/action.yml b/.github/composite_actions/run_xcodebuild_test/action.yml index b025621254..dff01112ce 100644 --- a/.github/composite_actions/run_xcodebuild_test/action.yml +++ b/.github/composite_actions/run_xcodebuild_test/action.yml @@ -100,7 +100,7 @@ runs: xcode-select -p xcodebuild -version - xcodebuild $action -scheme $SCHEME -sdk '${{ inputs.sdk }}' -destination '${{ inputs.destination }}' ${{ inputs.other_flags }} $clonedSourcePackagesPath $derivedDataPath $coverageFlags | xcpretty --simple --color --report junit && exit ${PIPESTATUS[0]} + xcodebuild $action -scheme $SCHEME -sdk '${{ inputs.sdk }}' -destination '${{ inputs.destination }}' ${{ inputs.other_flags }} $clonedSourcePackagesPath $derivedDataPath $coverageFlags | xcbeautify --renderer github-actions && exit ${PIPESTATUS[0]} shell: bash - name: Generate Coverage report diff --git a/AmplifyPlugins/Predictions/AWSPredictionsPlugin/Liveness/Service/FaceLivenessSession.swift b/AmplifyPlugins/Predictions/AWSPredictionsPlugin/Liveness/Service/FaceLivenessSession.swift index 092532d8e3..1723f0c688 100644 --- a/AmplifyPlugins/Predictions/AWSPredictionsPlugin/Liveness/Service/FaceLivenessSession.swift +++ b/AmplifyPlugins/Predictions/AWSPredictionsPlugin/Liveness/Service/FaceLivenessSession.swift @@ -71,7 +71,9 @@ public final class FaceLivenessSession: LivenessService { } public func closeSocket(with code: URLSessionWebSocketTask.CloseCode) { - websocket.close(with: code) + livenessServiceDispatchQueue.async { + self.websocket.close(with: code) + } } public func initializeLivenessStream(withSessionID sessionID: String, userAgent: String = "") throws { @@ -89,14 +91,16 @@ public final class FaceLivenessSession: LivenessService { savedURLForReconnect = url let signedConnectionURL = signer.sign(url: url) - websocket.open(url: signedConnectionURL) + livenessServiceDispatchQueue.async { + self.websocket.open(url: signedConnectionURL) + } } public func send( _ event: LivenessEvent, eventDate: @escaping () -> Date = Date.init ) { - livenessServiceDispatchQueue.sync { + livenessServiceDispatchQueue.async { let encodedPayload = self.eventStreamEncoder.encode( payload: event.payload, headers: [ @@ -107,7 +111,7 @@ public final class FaceLivenessSession: LivenessService { ) let dateForSigning: Date - if let serverDate = serverDate { + if let serverDate = self.serverDate { dateForSigning = serverDate } else { dateForSigning = eventDate() diff --git a/AmplifyPlugins/Predictions/AWSPredictionsPlugin/Liveness/Service/WebSocketSession.swift b/AmplifyPlugins/Predictions/AWSPredictionsPlugin/Liveness/Service/WebSocketSession.swift index f900f3dfc3..5888cde6e4 100644 --- a/AmplifyPlugins/Predictions/AWSPredictionsPlugin/Liveness/Service/WebSocketSession.swift +++ b/AmplifyPlugins/Predictions/AWSPredictionsPlugin/Liveness/Service/WebSocketSession.swift @@ -15,13 +15,19 @@ final class WebSocketSession { private var receiveMessage: ((Result) -> WebSocketMessageResult)? private var onSocketClosed: ((URLSessionWebSocketTask.CloseCode) -> Void)? private var onServerDateReceived: ((Date?) -> Void)? + private let delegateQueue: OperationQueue init() { + self.delegateQueue = OperationQueue() + self.delegateQueue.maxConcurrentOperationCount = 1 + self.delegateQueue.qualityOfService = .userInteractive + self.urlSessionWebSocketDelegate = Delegate() + self.session = URLSession( configuration: .default, delegate: urlSessionWebSocketDelegate, - delegateQueue: .init() + delegateQueue: delegateQueue ) }