diff --git a/Package.swift b/Package.swift index 74ee7a9..f6ab473 100644 --- a/Package.swift +++ b/Package.swift @@ -1,16 +1,18 @@ -// swift-tools-version:5.0 +// swift-tools-version:5.9 import PackageDescription let package = Package( - name: "QRCodeReader", - products: [ - .library(name: "QRCodeReader", targets: ["QRCodeReader"]), - ], - targets: [ - .target( - name: "QRCodeReader", - dependencies: [], - path: "Sources"), - ] + name: "QRCodeReader", + platforms: [ + .iOS(.v16) + ], + products: [ + .library(name: "QRCodeReader", targets: ["QRCodeReader"]) + ], + targets: [ + .target( + name: "QRCodeReader", + dependencies: [], + ) + ] ) - diff --git a/QRCodeReader.swift.podspec b/QRCodeReader.swift.podspec index 26c9668..bb19361 100644 --- a/QRCodeReader.swift.podspec +++ b/QRCodeReader.swift.podspec @@ -13,6 +13,6 @@ Pod::Spec.new do |s| s.ios.deployment_target = '8.0' s.framework = 'AVFoundation' - s.source_files = 'Sources/*.swift' + s.source_files = 'Sources/QRCodeReader/*.swift' s.requires_arc = true end diff --git a/Sources/QRCodeReader.swift b/Sources/QRCodeReader/QRCodeReader.swift similarity index 98% rename from Sources/QRCodeReader.swift rename to Sources/QRCodeReader/QRCodeReader.swift index ae3178f..de5e480 100644 --- a/Sources/QRCodeReader.swift +++ b/Sources/QRCodeReader/QRCodeReader.swift @@ -130,7 +130,8 @@ public final class QRCodeReader: NSObject, AVCaptureMetadataOutputObjectsDelegat super.init() - sessionQueue.async { + sessionQueue.async { [weak self] in + guard let self = self else { return } self.configureDefaultComponents(withCaptureDevicePosition: captureDevicePosition) } } @@ -199,7 +200,8 @@ public final class QRCodeReader: NSObject, AVCaptureMetadataOutputObjectsDelegat *Notes: if `stopScanningWhenCodeIsFound` is sets to true (default behaviour), each time the scanner found a code it calls the `stopScanning` method.* */ public func startScanning() { - sessionQueue.async { + sessionQueue.async { [weak self] in + guard let self = self else { return } guard !self.session.isRunning else { return } self.session.startRunning() @@ -212,7 +214,8 @@ public final class QRCodeReader: NSObject, AVCaptureMetadataOutputObjectsDelegat /// Stops scanning the codes. public func stopScanning() { - sessionQueue.async { + sessionQueue.async { [weak self] in + guard let self = self else { return } guard self.session.isRunning else { return } self.session.stopRunning() diff --git a/Sources/QRCodeReaderResult.swift b/Sources/QRCodeReader/QRCodeReaderResult.swift similarity index 100% rename from Sources/QRCodeReaderResult.swift rename to Sources/QRCodeReader/QRCodeReaderResult.swift diff --git a/Sources/QRCodeReaderView.swift b/Sources/QRCodeReader/QRCodeReaderView.swift similarity index 100% rename from Sources/QRCodeReaderView.swift rename to Sources/QRCodeReader/QRCodeReaderView.swift diff --git a/Sources/QRCodeReaderViewContainer.swift b/Sources/QRCodeReader/QRCodeReaderViewContainer.swift similarity index 100% rename from Sources/QRCodeReaderViewContainer.swift rename to Sources/QRCodeReader/QRCodeReaderViewContainer.swift diff --git a/Sources/QRCodeReaderViewController.swift b/Sources/QRCodeReader/QRCodeReaderViewController.swift similarity index 95% rename from Sources/QRCodeReaderViewController.swift rename to Sources/QRCodeReader/QRCodeReaderViewController.swift index d304e59..7bf032d 100644 --- a/Sources/QRCodeReaderViewController.swift +++ b/Sources/QRCodeReader/QRCodeReaderViewController.swift @@ -64,9 +64,9 @@ public class QRCodeReaderViewController: UIViewController { view.backgroundColor = .black - codeReader.didFindCode = { [weak self] resultAsObject in + codeReader.didFindCode = { [weak self, weak builder] resultAsObject in if let weakSelf = self { - if let qrv = builder.readerView.displayable as? QRCodeReaderView { + if let qrv = builder?.readerView.displayable as? QRCodeReaderView { qrv.addGreenBorder() } weakSelf.completionBlock?(resultAsObject) @@ -74,8 +74,8 @@ public class QRCodeReaderViewController: UIViewController { } } - codeReader.didFailDecoding = { - if let qrv = builder.readerView.displayable as? QRCodeReaderView { + codeReader.didFailDecoding = { [weak builder] in + if let qrv = builder?.readerView.displayable as? QRCodeReaderView { qrv.addRedBorder() } } diff --git a/Sources/QRCodeReaderViewControllerBuilder.swift b/Sources/QRCodeReader/QRCodeReaderViewControllerBuilder.swift similarity index 100% rename from Sources/QRCodeReaderViewControllerBuilder.swift rename to Sources/QRCodeReader/QRCodeReaderViewControllerBuilder.swift diff --git a/Sources/QRCodeReaderViewControllerDelegate.swift b/Sources/QRCodeReader/QRCodeReaderViewControllerDelegate.swift similarity index 100% rename from Sources/QRCodeReaderViewControllerDelegate.swift rename to Sources/QRCodeReader/QRCodeReaderViewControllerDelegate.swift diff --git a/Sources/ReaderOverlayView.swift b/Sources/QRCodeReader/ReaderOverlayView.swift similarity index 100% rename from Sources/ReaderOverlayView.swift rename to Sources/QRCodeReader/ReaderOverlayView.swift diff --git a/Sources/SwitchCameraButton.swift b/Sources/QRCodeReader/SwitchCameraButton.swift similarity index 100% rename from Sources/SwitchCameraButton.swift rename to Sources/QRCodeReader/SwitchCameraButton.swift diff --git a/Sources/ToggleTorchButton.swift b/Sources/QRCodeReader/ToggleTorchButton.swift similarity index 100% rename from Sources/ToggleTorchButton.swift rename to Sources/QRCodeReader/ToggleTorchButton.swift