From d99f8d3cb859f758c29ad0e41a0c67b8dd95b79b Mon Sep 17 00:00:00 2001 From: Ben John Date: Sat, 14 Oct 2023 16:11:59 +0200 Subject: [PATCH 01/16] refactor(wrappers/ios): enable adding ios dependency in a clean way - move `Package.swift` to root - use dynamic build - get rid of `unsafeFlags` - remove need of umbrella framework - adjust readme and gitignore files --- .gitignore | 2 ++ wrappers/ios/Package.swift => Package.swift | 21 +++++++++++-------- wrappers/ios/.gitignore | 4 ---- wrappers/ios/README.md | 13 +----------- .../Wrapper/Reader/ZXIBarcodeReader.mm | 6 +++--- .../Sources/Wrapper/Reader/ZXIDecodeHints.mm | 2 +- .../Wrapper/Reader/ZXIPosition+Helper.h | 2 +- .../Wrapper/Writer/ZXIBarcodeWriter.mm | 4 ++-- .../ios/Sources/Wrapper/ZXIFormatHelper.h | 2 +- wrappers/ios/ZXing | 1 + wrappers/ios/demo/README.md | 2 -- 11 files changed, 24 insertions(+), 35 deletions(-) rename wrappers/ios/Package.swift => Package.swift (51%) create mode 120000 wrappers/ios/ZXing diff --git a/.gitignore b/.gitignore index 9992cb687a..57cb900099 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ CMakeLists.txt.user *.d *.a compile_commands.json +.swiftpm +.build diff --git a/wrappers/ios/Package.swift b/Package.swift similarity index 51% rename from wrappers/ios/Package.swift rename to Package.swift index 7e3352acd7..2ac556d4bb 100644 --- a/wrappers/ios/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.3 +// swift-tools-version:5.8 import PackageDescription let package = Package( @@ -9,23 +9,26 @@ let package = Package( products: [ .library( name: "ZXingCppWrapper", - type: .static, + type: .dynamic, targets: ["ZXingCppWrapper"]) ], targets: [ - .binaryTarget( + .target( name: "ZXingCpp", - path: "ZXingCpp.xcframework" + path: "core/src", + publicHeadersPath: "." ), .target( name: "ZXingCppWrapper", dependencies: ["ZXingCpp"], - path: "Sources/Wrapper", + path: "wrappers/ios/Sources/Wrapper", publicHeadersPath: ".", - cxxSettings: [ - .unsafeFlags(["-stdlib=libc++"]), - .unsafeFlags(["-std=gnu++17"]) + linkerSettings: [ + .linkedFramework("CoreGraphics"), + .linkedFramework("CoreImage"), + .linkedFramework("CoreVideo") ] ) - ] + ], + cxxLanguageStandard: CXXLanguageStandard.gnucxx17 ) diff --git a/wrappers/ios/.gitignore b/wrappers/ios/.gitignore index be5558caa1..9bce6af399 100644 --- a/wrappers/ios/.gitignore +++ b/wrappers/ios/.gitignore @@ -1,5 +1 @@ -.swiftpm -_builds -.build xcuserdata -ZXingCpp.xcframework diff --git a/wrappers/ios/README.md b/wrappers/ios/README.md index 44aae4bf41..1af3f4c041 100644 --- a/wrappers/ios/README.md +++ b/wrappers/ios/README.md @@ -1,14 +1,3 @@ # ZXingCpp iOS Framework -To use the iOS (wrapper) framework in other apps, it is easiest -to build the library project and include the resulting xcframework -file in your app. - -## How to build and use - -To build the xcframework: - - $ ./build-release.sh - -Then you can add the iOS Wrapper as a local Swift Package by adding it as a dependency to your app. -Don't forget to add the wrapper to the `Frameworks, Libraries, and Embedded Content` section within the `General` tab. +Add the iOS wrapper either as a local Swift Package by adding it as a dependency to your app or add the repository, the Package.swift file is automatically picked. diff --git a/wrappers/ios/Sources/Wrapper/Reader/ZXIBarcodeReader.mm b/wrappers/ios/Sources/Wrapper/Reader/ZXIBarcodeReader.mm index fbf1eaeb7f..1e32566378 100644 --- a/wrappers/ios/Sources/Wrapper/Reader/ZXIBarcodeReader.mm +++ b/wrappers/ios/Sources/Wrapper/Reader/ZXIBarcodeReader.mm @@ -3,9 +3,9 @@ // SPDX-License-Identifier: Apache-2.0 #import "ZXIBarcodeReader.h" -#import "ZXing/ReadBarcode.h" -#import "ZXing/ImageView.h" -#import "ZXing/Result.h" +#import "ReadBarcode.h" +#import "ImageView.h" +#import "Result.h" #import "ZXIFormatHelper.h" #import "ZXIPosition+Helper.h" diff --git a/wrappers/ios/Sources/Wrapper/Reader/ZXIDecodeHints.mm b/wrappers/ios/Sources/Wrapper/Reader/ZXIDecodeHints.mm index 9a50235c0d..92383d36e4 100644 --- a/wrappers/ios/Sources/Wrapper/Reader/ZXIDecodeHints.mm +++ b/wrappers/ios/Sources/Wrapper/Reader/ZXIDecodeHints.mm @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Apache-2.0 #import "ZXIDecodeHints.h" -#import "ZXing/DecodeHints.h" +#import "DecodeHints.h" @interface ZXIDecodeHints() @property(nonatomic) ZXing::DecodeHints zxingHints; diff --git a/wrappers/ios/Sources/Wrapper/Reader/ZXIPosition+Helper.h b/wrappers/ios/Sources/Wrapper/Reader/ZXIPosition+Helper.h index 5224ea8d9c..93ec83b8d8 100644 --- a/wrappers/ios/Sources/Wrapper/Reader/ZXIPosition+Helper.h +++ b/wrappers/ios/Sources/Wrapper/Reader/ZXIPosition+Helper.h @@ -4,7 +4,7 @@ #import #import "ZXIPosition.h" -#import "ZXing/Result.h" +#import "Result.h" NS_ASSUME_NONNULL_BEGIN diff --git a/wrappers/ios/Sources/Wrapper/Writer/ZXIBarcodeWriter.mm b/wrappers/ios/Sources/Wrapper/Writer/ZXIBarcodeWriter.mm index 430fed9995..2a10257904 100644 --- a/wrappers/ios/Sources/Wrapper/Writer/ZXIBarcodeWriter.mm +++ b/wrappers/ios/Sources/Wrapper/Writer/ZXIBarcodeWriter.mm @@ -4,8 +4,8 @@ #import #import "ZXIBarcodeWriter.h" -#import "ZXing/MultiFormatWriter.h" -#import "ZXing/BitMatrix.h" +#import "MultiFormatWriter.h" +#import "BitMatrix.h" #import "ZXIFormatHelper.h" #import "ZXIErrors.h" #import diff --git a/wrappers/ios/Sources/Wrapper/ZXIFormatHelper.h b/wrappers/ios/Sources/Wrapper/ZXIFormatHelper.h index 29f90a03bf..257314506c 100644 --- a/wrappers/ios/Sources/Wrapper/ZXIFormatHelper.h +++ b/wrappers/ios/Sources/Wrapper/ZXIFormatHelper.h @@ -3,7 +3,7 @@ // SPDX-License-Identifier: Apache-2.0 #import -#import "ZXing/BarcodeFormat.h" +#import "BarcodeFormat.h" #import "ZXIFormat.h" NS_ASSUME_NONNULL_BEGIN diff --git a/wrappers/ios/ZXing b/wrappers/ios/ZXing new file mode 120000 index 0000000000..8e3969847d --- /dev/null +++ b/wrappers/ios/ZXing @@ -0,0 +1 @@ +../../core/src \ No newline at end of file diff --git a/wrappers/ios/demo/README.md b/wrappers/ios/demo/README.md index 6d8a8ed41e..c8b7ccf3a2 100644 --- a/wrappers/ios/demo/README.md +++ b/wrappers/ios/demo/README.md @@ -1,5 +1,3 @@ # ZXingWrapper Demo Project This demo-project sets up a basic `AVCaptureSession` and uses ZXing on the incoming frames. -You have to build the `ZXing.xcframework` before, by performing the `build-release.sh` script -in the parent-directory. From b26f10238ab7cf75f5ebc15977e8cc00082fe5d6 Mon Sep 17 00:00:00 2001 From: Ben John Date: Sat, 14 Oct 2023 16:18:56 +0200 Subject: [PATCH 02/16] feat(wrappers/ios/demo): adapt xcodeproj for streamlined deps usage - add `ZXingCppWrapper` as swift package dependency - embed `ZXingCppWrapper` framework in project - lower minimum deployment target to `iOS 13.0` --- .../ios/demo/demo.xcodeproj/project.pbxproj | 55 ++++++++++++++----- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/wrappers/ios/demo/demo.xcodeproj/project.pbxproj b/wrappers/ios/demo/demo.xcodeproj/project.pbxproj index 204cd12fe1..6759209e61 100644 --- a/wrappers/ios/demo/demo.xcodeproj/project.pbxproj +++ b/wrappers/ios/demo/demo.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 55; + objectVersion = 60; objects = { /* Begin PBXBuildFile section */ @@ -13,10 +13,25 @@ 388BF030283CC49D005CE271 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 388BF02E283CC49D005CE271 /* Main.storyboard */; }; 388BF032283CC49E005CE271 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 388BF031283CC49E005CE271 /* Assets.xcassets */; }; 388BF035283CC49E005CE271 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 388BF033283CC49E005CE271 /* LaunchScreen.storyboard */; }; - 9507445028609C0500E02D06 /* ZXingCppWrapper in Frameworks */ = {isa = PBXBuildFile; productRef = 9507444F28609C0500E02D06 /* ZXingCppWrapper */; }; + 52A975472ADAD7DE002D6BD8 /* ZXingCppWrapper in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 9507444F28609C0500E02D06 /* ZXingCppWrapper */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + 52A9754D2ADADA2B002D6BD8 /* ZXingCppWrapper in Frameworks */ = {isa = PBXBuildFile; productRef = 52A9754C2ADADA2B002D6BD8 /* ZXingCppWrapper */; }; 950744522860A3A300E02D06 /* WriteViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 950744512860A3A300E02D06 /* WriteViewController.swift */; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + 52A975482ADAD7DE002D6BD8 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 52A975472ADAD7DE002D6BD8 /* ZXingCppWrapper in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 388BF025283CC49D005CE271 /* demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 388BF028283CC49D005CE271 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -27,8 +42,8 @@ 388BF034283CC49E005CE271 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 388BF036283CC49E005CE271 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 388BF043283CE0AC005CE271 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 52A975492ADADA1B002D6BD8 /* zxing-cpp */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "zxing-cpp"; path = "/Users/john/git/private/zxing-cpp"; sourceTree = ""; }; 950744512860A3A300E02D06 /* WriteViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WriteViewController.swift; sourceTree = ""; }; - 9550105328609B7900ED103F /* ios */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = ios; path = ..; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -36,7 +51,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9507445028609C0500E02D06 /* ZXingCppWrapper in Frameworks */, + 52A9754D2ADADA2B002D6BD8 /* ZXingCppWrapper in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -47,7 +62,6 @@ isa = PBXGroup; children = ( 388BF043283CE0AC005CE271 /* README.md */, - 388BF03E283CD6C5005CE271 /* Packages */, 388BF027283CC49D005CE271 /* demo */, 388BF026283CC49D005CE271 /* Products */, 388BF040283CD908005CE271 /* Frameworks */, @@ -77,17 +91,10 @@ path = demo; sourceTree = ""; }; - 388BF03E283CD6C5005CE271 /* Packages */ = { - isa = PBXGroup; - children = ( - 9550105328609B7900ED103F /* ios */, - ); - name = Packages; - sourceTree = ""; - }; 388BF040283CD908005CE271 /* Frameworks */ = { isa = PBXGroup; children = ( + 52A975492ADADA1B002D6BD8 /* zxing-cpp */, ); name = Frameworks; sourceTree = ""; @@ -102,6 +109,7 @@ 388BF021283CC49D005CE271 /* Sources */, 388BF022283CC49D005CE271 /* Frameworks */, 388BF023283CC49D005CE271 /* Resources */, + 52A975482ADAD7DE002D6BD8 /* Embed Frameworks */, ); buildRules = ( ); @@ -110,6 +118,7 @@ name = demo; packageProductDependencies = ( 9507444F28609C0500E02D06 /* ZXingCppWrapper */, + 52A9754C2ADADA2B002D6BD8 /* ZXingCppWrapper */, ); productName = demo; productReference = 388BF025283CC49D005CE271 /* demo.app */; @@ -139,6 +148,9 @@ Base, ); mainGroup = 388BF01C283CC49D005CE271; + packageReferences = ( + 52A9754B2ADADA2B002D6BD8 /* XCLocalSwiftPackageReference "../../.." */, + ); productRefGroup = 388BF026283CC49D005CE271 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -314,6 +326,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; @@ -326,6 +339,7 @@ INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -333,6 +347,7 @@ MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = "com.zxing-cpp.ios.demo-${SAMPLE_CODE_DISAMBIGUATOR}"; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -345,6 +360,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; @@ -357,6 +373,7 @@ INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -364,6 +381,7 @@ MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = "com.zxing-cpp.ios.demo-${SAMPLE_CODE_DISAMBIGUATOR}"; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -394,7 +412,18 @@ }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 52A9754B2ADADA2B002D6BD8 /* XCLocalSwiftPackageReference "../../.." */ = { + isa = XCLocalSwiftPackageReference; + relativePath = ../../..; + }; +/* End XCLocalSwiftPackageReference section */ + /* Begin XCSwiftPackageProductDependency section */ + 52A9754C2ADADA2B002D6BD8 /* ZXingCppWrapper */ = { + isa = XCSwiftPackageProductDependency; + productName = ZXingCppWrapper; + }; 9507444F28609C0500E02D06 /* ZXingCppWrapper */ = { isa = XCSwiftPackageProductDependency; productName = ZXingCppWrapper; From fb274c94ef6ef40de6b31757292482e917cd817b Mon Sep 17 00:00:00 2001 From: Ben John Date: Sat, 14 Oct 2023 16:21:14 +0200 Subject: [PATCH 03/16] refactor(wrappers/ios/demo): improve read functionality - start stream on background thread - use 32RGBA instead of 'old' yuv variant (nowadays devices stream native 32RGBA) - add more camera variants to enable macro mode on newer devices --- wrappers/ios/demo/demo/ViewController.swift | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/wrappers/ios/demo/demo/ViewController.swift b/wrappers/ios/demo/demo/ViewController.swift index 4b4dd1e245..21c15e2b8e 100644 --- a/wrappers/ios/demo/demo/ViewController.swift +++ b/wrappers/ios/demo/demo/ViewController.swift @@ -25,8 +25,13 @@ class ViewController: UIViewController { // setup camera session self.requestAccess { let discoverySession = AVCaptureDevice.DiscoverySession( - deviceTypes: [.builtInWideAngleCamera], - mediaType: AVMediaType.video, + deviceTypes: [ + .builtInTripleCamera, + .builtInDualWideCamera, + .builtInDualCamera, + .builtInWideAngleCamera + ], + mediaType: .video, position: .back) let device = discoverySession.devices.first! @@ -35,11 +40,13 @@ class ViewController: UIViewController { self.captureSession.addInput(cameraInput) let videoDataOutput = AVCaptureVideoDataOutput() videoDataOutput.setSampleBufferDelegate(self, queue: self.queue) - videoDataOutput.videoSettings = [kCVPixelBufferPixelFormatTypeKey as String: Int(kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange)] + videoDataOutput.videoSettings = [kCVPixelBufferPixelFormatTypeKey as String: kCVPixelFormatType_32BGRA] videoDataOutput.alwaysDiscardsLateVideoFrames = true self.captureSession.addOutput(videoDataOutput) self.captureSession.commitConfiguration() - self.captureSession.startRunning() + DispatchQueue.global(qos: .background).async { + self.captureSession.startRunning() + } } } } From bf5e6cf485310f6ea58976976ed91ea48e65bca6 Mon Sep 17 00:00:00 2001 From: Ben John Date: Sat, 14 Oct 2023 16:29:05 +0200 Subject: [PATCH 04/16] refactor(core): remove apple framework references from cmake file --- core/CMakeLists.txt | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index a637d11b9b..ab8f8ab8cc 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -482,25 +482,6 @@ endif() set_target_properties(ZXing PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADERS}") -if (APPLE AND BUILD_APPLE_FRAMEWORK) - set_target_properties(ZXing PROPERTIES - FRAMEWORK TRUE - FRAMEWORK_VERSION "C" - XCODE_ATTRIBUTE_DEFINES_MODULE YES - XCODE_ATTRIBUTE_BUILD_LIBRARY_FOR_DISTRIBUTION YES - XCODE_ATTRIBUTE_MODULEMAP_FILE "wrappers/ios/Sources/Wrapper/module.modulemap" - XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES - MACOSX_FRAMEWORK_IDENTIFIER "com.zxing-cpp.ios" - MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${PROJECT_VERSION} - MACOSX_FRAMEWORK_BUNDLE_VERSION ${PROJECT_VERSION} - CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH NO - #MACOSX_FRAMEWORK_INFO_PLIST Info.plist - PUBLIC_HEADER "${PUBLIC_HEADERS}" - XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer" - XCODE_ATTRIBUTE_ENABLE_BITCODE "NO" - ) -endif() - include (GNUInstallDirs) set(ZX_INSTALL_TARGETS ZXing) From 1870e2dda4a9cfe3d46e272224d122c8abdec067 Mon Sep 17 00:00:00 2001 From: Ben John Date: Sat, 14 Oct 2023 16:30:27 +0200 Subject: [PATCH 05/16] fix(wrappers/ios): remove unused symbolic link --- wrappers/ios/ZXing | 1 - 1 file changed, 1 deletion(-) delete mode 120000 wrappers/ios/ZXing diff --git a/wrappers/ios/ZXing b/wrappers/ios/ZXing deleted file mode 120000 index 8e3969847d..0000000000 --- a/wrappers/ios/ZXing +++ /dev/null @@ -1 +0,0 @@ -../../core/src \ No newline at end of file From ca95badf098ca5a9ab2b86f4063c53cd989a4126 Mon Sep 17 00:00:00 2001 From: Ben John Date: Sat, 14 Oct 2023 16:33:11 +0200 Subject: [PATCH 06/16] refactor(wrappers/ios): remove unnecessary files --- wrappers/ios/Info.plist | Bin 723 -> 0 bytes wrappers/ios/build-release.sh | 37 ---------------------------------- 2 files changed, 37 deletions(-) delete mode 100644 wrappers/ios/Info.plist delete mode 100755 wrappers/ios/build-release.sh diff --git a/wrappers/ios/Info.plist b/wrappers/ios/Info.plist deleted file mode 100644 index 0433f478b49fa21f43f38dbba7b6bc0a62542df1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmYjOyKWOf6x}<#5+2DWPJo02On3x{Sb4pPrO+VRYa=VNW4!Cwi9%N6-LXB&?1Ozo zc7B0^p3YxDO+|&M_y8(IK|_ORD4=0>V-u#i_ndpqoqK269-~2+$$Sy#0G&B|?)-&` z$%~gRUzwT~XJ%7#^H;B3Us$}cbn{mF_DcHB-Fx>}9~xpRA5msiu-T&y+13(dhzo^M zK5{HZRB}X^>)FH!>!eFv#}H@7wPK%`QHa}&{7058E~Onxd_!CwE6YyDRjCd-9coARwl*>!G|K$ts7XrLrfgt{OO0}!yo{(%tdl|kd$>&*4Jip4Sy|0xn?Yf-1mM>1VoI_~rQvFUjdbptIYW%N>|xurklXSm#=wVoUQ+N2?_#A?1cBNES& zwF8N^VcDj;mWOn4uVpiE~Q7?A6fi7=I>-%FA16@`WE>nuKtkh*?_&|i=qXzcv z+`2F!C_-5v!m;pLcq@DmJ`2BK3Kn1uo Date: Sat, 14 Oct 2023 16:47:33 +0200 Subject: [PATCH 07/16] fix(wrappers/ios/demo): get rid of duplicated framework reference --- .../ios/demo/demo.xcodeproj/project.pbxproj | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/wrappers/ios/demo/demo.xcodeproj/project.pbxproj b/wrappers/ios/demo/demo.xcodeproj/project.pbxproj index 6759209e61..16dacdbe63 100644 --- a/wrappers/ios/demo/demo.xcodeproj/project.pbxproj +++ b/wrappers/ios/demo/demo.xcodeproj/project.pbxproj @@ -13,8 +13,8 @@ 388BF030283CC49D005CE271 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 388BF02E283CC49D005CE271 /* Main.storyboard */; }; 388BF032283CC49E005CE271 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 388BF031283CC49E005CE271 /* Assets.xcassets */; }; 388BF035283CC49E005CE271 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 388BF033283CC49E005CE271 /* LaunchScreen.storyboard */; }; - 52A975472ADAD7DE002D6BD8 /* ZXingCppWrapper in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 9507444F28609C0500E02D06 /* ZXingCppWrapper */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; - 52A9754D2ADADA2B002D6BD8 /* ZXingCppWrapper in Frameworks */ = {isa = PBXBuildFile; productRef = 52A9754C2ADADA2B002D6BD8 /* ZXingCppWrapper */; }; + 52A4CB722ADAE13500A1BF26 /* ZXingCppWrapper in Frameworks */ = {isa = PBXBuildFile; productRef = 52A4CB712ADAE13500A1BF26 /* ZXingCppWrapper */; }; + 52A4CB732ADAE13500A1BF26 /* ZXingCppWrapper in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 52A4CB712ADAE13500A1BF26 /* ZXingCppWrapper */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; 950744522860A3A300E02D06 /* WriteViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 950744512860A3A300E02D06 /* WriteViewController.swift */; }; /* End PBXBuildFile section */ @@ -25,7 +25,7 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 52A975472ADAD7DE002D6BD8 /* ZXingCppWrapper in Embed Frameworks */, + 52A4CB732ADAE13500A1BF26 /* ZXingCppWrapper in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -51,7 +51,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 52A9754D2ADADA2B002D6BD8 /* ZXingCppWrapper in Frameworks */, + 52A4CB722ADAE13500A1BF26 /* ZXingCppWrapper in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -117,8 +117,7 @@ ); name = demo; packageProductDependencies = ( - 9507444F28609C0500E02D06 /* ZXingCppWrapper */, - 52A9754C2ADADA2B002D6BD8 /* ZXingCppWrapper */, + 52A4CB712ADAE13500A1BF26 /* ZXingCppWrapper */, ); productName = demo; productReference = 388BF025283CC49D005CE271 /* demo.app */; @@ -420,11 +419,7 @@ /* End XCLocalSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - 52A9754C2ADADA2B002D6BD8 /* ZXingCppWrapper */ = { - isa = XCSwiftPackageProductDependency; - productName = ZXingCppWrapper; - }; - 9507444F28609C0500E02D06 /* ZXingCppWrapper */ = { + 52A4CB712ADAE13500A1BF26 /* ZXingCppWrapper */ = { isa = XCSwiftPackageProductDependency; productName = ZXingCppWrapper; }; From 2e2a6cf4c9e2c9e5760c562ed45df9b496a2f4b8 Mon Sep 17 00:00:00 2001 From: Ben John Date: Mon, 16 Oct 2023 11:37:05 +0200 Subject: [PATCH 08/16] fix(wrappers/ios): change c++ language standard to 20 --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index 2ac556d4bb..d7a2861fdb 100644 --- a/Package.swift +++ b/Package.swift @@ -30,5 +30,5 @@ let package = Package( ] ) ], - cxxLanguageStandard: CXXLanguageStandard.gnucxx17 + cxxLanguageStandard: CXXLanguageStandard.gnucxx20 ) From 3c010293f96a39eb06de7c32f836d0b0967bf404 Mon Sep 17 00:00:00 2001 From: Ben John Date: Mon, 16 Oct 2023 11:37:58 +0200 Subject: [PATCH 09/16] fix(wrappers/ios): clean-up xcodeproj by removing absolute reference --- wrappers/ios/demo/demo.xcodeproj/project.pbxproj | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/wrappers/ios/demo/demo.xcodeproj/project.pbxproj b/wrappers/ios/demo/demo.xcodeproj/project.pbxproj index 16dacdbe63..fdcdf06a01 100644 --- a/wrappers/ios/demo/demo.xcodeproj/project.pbxproj +++ b/wrappers/ios/demo/demo.xcodeproj/project.pbxproj @@ -42,7 +42,6 @@ 388BF034283CC49E005CE271 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 388BF036283CC49E005CE271 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 388BF043283CE0AC005CE271 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 52A975492ADADA1B002D6BD8 /* zxing-cpp */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "zxing-cpp"; path = "/Users/john/git/private/zxing-cpp"; sourceTree = ""; }; 950744512860A3A300E02D06 /* WriteViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WriteViewController.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -64,7 +63,6 @@ 388BF043283CE0AC005CE271 /* README.md */, 388BF027283CC49D005CE271 /* demo */, 388BF026283CC49D005CE271 /* Products */, - 388BF040283CD908005CE271 /* Frameworks */, ); sourceTree = ""; }; @@ -91,14 +89,6 @@ path = demo; sourceTree = ""; }; - 388BF040283CD908005CE271 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 52A975492ADADA1B002D6BD8 /* zxing-cpp */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ From 2b4a2a4cb058cfa6f5cfafce80ca4e3208001edd Mon Sep 17 00:00:00 2001 From: Ben John Date: Mon, 16 Oct 2023 11:38:52 +0200 Subject: [PATCH 10/16] fix(wrappers/ios): revert videoSetting to yuv --- wrappers/ios/demo/demo/ViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wrappers/ios/demo/demo/ViewController.swift b/wrappers/ios/demo/demo/ViewController.swift index 21c15e2b8e..baea20b463 100644 --- a/wrappers/ios/demo/demo/ViewController.swift +++ b/wrappers/ios/demo/demo/ViewController.swift @@ -40,7 +40,7 @@ class ViewController: UIViewController { self.captureSession.addInput(cameraInput) let videoDataOutput = AVCaptureVideoDataOutput() videoDataOutput.setSampleBufferDelegate(self, queue: self.queue) - videoDataOutput.videoSettings = [kCVPixelBufferPixelFormatTypeKey as String: kCVPixelFormatType_32BGRA] + videoDataOutput.videoSettings = [kCVPixelBufferPixelFormatTypeKey as String: kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange] videoDataOutput.alwaysDiscardsLateVideoFrames = true self.captureSession.addOutput(videoDataOutput) self.captureSession.commitConfiguration() From 8f7f0e8d8b697a06af7f77c73bb5618e16362965 Mon Sep 17 00:00:00 2001 From: Ben John Date: Mon, 16 Oct 2023 12:07:07 +0200 Subject: [PATCH 11/16] chore(workflows/ci): replace old script invocation with swift pm build command --- .github/workflows/ci.yml | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 004277a1cd..0ca0361399 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,16 +80,10 @@ jobs: with: ref: ${{github.ref}} - - name: Build the ZXingCpp.xcframework + - name: Build the swift package shell: sh - working-directory: ${{runner.workspace}}/${{github.event.repository.name}}/wrappers/ios - run: ./build-release.sh - - - name: Upload .xcframework - uses: actions/upload-artifact@v3 - with: - name: ios-artifacts - path: ${{runner.workspace}}/${{github.event.repository.name}}/wrappers/ios/ZXingCpp.xcframework + working-directory: ${{runner.workspace}}/${{github.event.repository.name}} + run: swift build - name: Build the demo app shell: sh From 8bfca58d0d6bf7228267f8fe83a6e4ad03cf14bf Mon Sep 17 00:00:00 2001 From: Ben John Date: Mon, 16 Oct 2023 17:48:02 +0200 Subject: [PATCH 12/16] fix(wrappers/ios): omit the type (static vs dynamic) for the library in swift pm - without the `type` attribute, it gets either linked statically or dynamically depending on the target --- Package.swift | 1 - wrappers/ios/demo/demo.xcodeproj/project.pbxproj | 14 ++++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/Package.swift b/Package.swift index d7a2861fdb..e96fbb7c7f 100644 --- a/Package.swift +++ b/Package.swift @@ -9,7 +9,6 @@ let package = Package( products: [ .library( name: "ZXingCppWrapper", - type: .dynamic, targets: ["ZXingCppWrapper"]) ], targets: [ diff --git a/wrappers/ios/demo/demo.xcodeproj/project.pbxproj b/wrappers/ios/demo/demo.xcodeproj/project.pbxproj index fdcdf06a01..aa73670a10 100644 --- a/wrappers/ios/demo/demo.xcodeproj/project.pbxproj +++ b/wrappers/ios/demo/demo.xcodeproj/project.pbxproj @@ -13,8 +13,7 @@ 388BF030283CC49D005CE271 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 388BF02E283CC49D005CE271 /* Main.storyboard */; }; 388BF032283CC49E005CE271 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 388BF031283CC49E005CE271 /* Assets.xcassets */; }; 388BF035283CC49E005CE271 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 388BF033283CC49E005CE271 /* LaunchScreen.storyboard */; }; - 52A4CB722ADAE13500A1BF26 /* ZXingCppWrapper in Frameworks */ = {isa = PBXBuildFile; productRef = 52A4CB712ADAE13500A1BF26 /* ZXingCppWrapper */; }; - 52A4CB732ADAE13500A1BF26 /* ZXingCppWrapper in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 52A4CB712ADAE13500A1BF26 /* ZXingCppWrapper */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + 52F9E5E92ADD921E000304E3 /* ZXingCppWrapper in Frameworks */ = {isa = PBXBuildFile; productRef = 52F9E5E82ADD921E000304E3 /* ZXingCppWrapper */; }; 950744522860A3A300E02D06 /* WriteViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 950744512860A3A300E02D06 /* WriteViewController.swift */; }; /* End PBXBuildFile section */ @@ -25,7 +24,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 52A4CB732ADAE13500A1BF26 /* ZXingCppWrapper in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -50,7 +48,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 52A4CB722ADAE13500A1BF26 /* ZXingCppWrapper in Frameworks */, + 52F9E5E92ADD921E000304E3 /* ZXingCppWrapper in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -107,7 +105,7 @@ ); name = demo; packageProductDependencies = ( - 52A4CB712ADAE13500A1BF26 /* ZXingCppWrapper */, + 52F9E5E82ADD921E000304E3 /* ZXingCppWrapper */, ); productName = demo; productReference = 388BF025283CC49D005CE271 /* demo.app */; @@ -138,7 +136,7 @@ ); mainGroup = 388BF01C283CC49D005CE271; packageReferences = ( - 52A9754B2ADADA2B002D6BD8 /* XCLocalSwiftPackageReference "../../.." */, + 52F9E5E72ADD921E000304E3 /* XCLocalSwiftPackageReference "../../.." */, ); productRefGroup = 388BF026283CC49D005CE271 /* Products */; projectDirPath = ""; @@ -402,14 +400,14 @@ /* End XCConfigurationList section */ /* Begin XCLocalSwiftPackageReference section */ - 52A9754B2ADADA2B002D6BD8 /* XCLocalSwiftPackageReference "../../.." */ = { + 52F9E5E72ADD921E000304E3 /* XCLocalSwiftPackageReference "../../.." */ = { isa = XCLocalSwiftPackageReference; relativePath = ../../..; }; /* End XCLocalSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - 52A4CB712ADAE13500A1BF26 /* ZXingCppWrapper */ = { + 52F9E5E82ADD921E000304E3 /* ZXingCppWrapper */ = { isa = XCSwiftPackageProductDependency; productName = ZXingCppWrapper; }; From 19241b6c4ed8e269d0d1ec4ededa05bbc8bc432c Mon Sep 17 00:00:00 2001 From: Ben John Date: Tue, 17 Oct 2023 14:32:08 +0200 Subject: [PATCH 13/16] fix(wrappers/ios): downgrade used swift-tools-version for github action --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index e96fbb7c7f..36ce23b707 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.8 +// swift-tools-version:5.7.1 import PackageDescription let package = Package( From 2f0d8203aaa7d4dd1ca1d2fdcae5379f4852879a Mon Sep 17 00:00:00 2001 From: Ben John Date: Tue, 17 Oct 2023 16:26:34 +0200 Subject: [PATCH 14/16] fix(ci): use macos-13 image to run build & test --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0ca0361399..92bc7d75f3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,7 +74,7 @@ jobs: run: ctest -V build-ios: - runs-on: macos-latest + runs-on: macos-13 steps: - uses: actions/checkout@v3 with: From 2f883c3227aabb9322fb400e6739f67e4aca30c8 Mon Sep 17 00:00:00 2001 From: Ben John Date: Tue, 17 Oct 2023 21:09:55 +0200 Subject: [PATCH 15/16] fix(wrappers/ios): fix demo project for Xcode 14 again Co-authored-by: Alexander Manzer --- .../ios/demo/demo.xcodeproj/project.pbxproj | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/wrappers/ios/demo/demo.xcodeproj/project.pbxproj b/wrappers/ios/demo/demo.xcodeproj/project.pbxproj index aa73670a10..99c06f5311 100644 --- a/wrappers/ios/demo/demo.xcodeproj/project.pbxproj +++ b/wrappers/ios/demo/demo.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 60; + objectVersion = 55; objects = { /* Begin PBXBuildFile section */ @@ -13,7 +13,7 @@ 388BF030283CC49D005CE271 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 388BF02E283CC49D005CE271 /* Main.storyboard */; }; 388BF032283CC49E005CE271 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 388BF031283CC49E005CE271 /* Assets.xcassets */; }; 388BF035283CC49E005CE271 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 388BF033283CC49E005CE271 /* LaunchScreen.storyboard */; }; - 52F9E5E92ADD921E000304E3 /* ZXingCppWrapper in Frameworks */ = {isa = PBXBuildFile; productRef = 52F9E5E82ADD921E000304E3 /* ZXingCppWrapper */; }; + 5EFA4B742ADF0F35000132A0 /* ZXingCppWrapper in Frameworks */ = {isa = PBXBuildFile; productRef = 5EFA4B732ADF0F35000132A0 /* ZXingCppWrapper */; }; 950744522860A3A300E02D06 /* WriteViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 950744512860A3A300E02D06 /* WriteViewController.swift */; }; /* End PBXBuildFile section */ @@ -40,6 +40,7 @@ 388BF034283CC49E005CE271 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 388BF036283CC49E005CE271 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 388BF043283CE0AC005CE271 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 5EFA4B712ADF0F16000132A0 /* zxing-cpp */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "zxing-cpp"; path = ../../..; sourceTree = ""; }; 950744512860A3A300E02D06 /* WriteViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WriteViewController.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -48,7 +49,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 52F9E5E92ADD921E000304E3 /* ZXingCppWrapper in Frameworks */, + 5EFA4B742ADF0F35000132A0 /* ZXingCppWrapper in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -58,9 +59,11 @@ 388BF01C283CC49D005CE271 = { isa = PBXGroup; children = ( + 5EFA4B702ADF0F16000132A0 /* Packages */, 388BF043283CE0AC005CE271 /* README.md */, 388BF027283CC49D005CE271 /* demo */, 388BF026283CC49D005CE271 /* Products */, + 5EFA4B722ADF0F35000132A0 /* Frameworks */, ); sourceTree = ""; }; @@ -87,6 +90,21 @@ path = demo; sourceTree = ""; }; + 5EFA4B702ADF0F16000132A0 /* Packages */ = { + isa = PBXGroup; + children = ( + 5EFA4B712ADF0F16000132A0 /* zxing-cpp */, + ); + name = Packages; + sourceTree = ""; + }; + 5EFA4B722ADF0F35000132A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -105,7 +123,7 @@ ); name = demo; packageProductDependencies = ( - 52F9E5E82ADD921E000304E3 /* ZXingCppWrapper */, + 5EFA4B732ADF0F35000132A0 /* ZXingCppWrapper */, ); productName = demo; productReference = 388BF025283CC49D005CE271 /* demo.app */; @@ -136,7 +154,6 @@ ); mainGroup = 388BF01C283CC49D005CE271; packageReferences = ( - 52F9E5E72ADD921E000304E3 /* XCLocalSwiftPackageReference "../../.." */, ); productRefGroup = 388BF026283CC49D005CE271 /* Products */; projectDirPath = ""; @@ -399,15 +416,8 @@ }; /* End XCConfigurationList section */ -/* Begin XCLocalSwiftPackageReference section */ - 52F9E5E72ADD921E000304E3 /* XCLocalSwiftPackageReference "../../.." */ = { - isa = XCLocalSwiftPackageReference; - relativePath = ../../..; - }; -/* End XCLocalSwiftPackageReference section */ - /* Begin XCSwiftPackageProductDependency section */ - 52F9E5E82ADD921E000304E3 /* ZXingCppWrapper */ = { + 5EFA4B732ADF0F35000132A0 /* ZXingCppWrapper */ = { isa = XCSwiftPackageProductDependency; productName = ZXingCppWrapper; }; From 2a592e95459658493607348cb9a08dd2858cb327 Mon Sep 17 00:00:00 2001 From: Ben John Date: Tue, 17 Oct 2023 21:12:03 +0200 Subject: [PATCH 16/16] chore(ci): revert back to macos-latest - basically revert 2f0d8203aaa7d4dd1ca1d2fdcae5379f4852879a --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 92bc7d75f3..0ca0361399 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,7 +74,7 @@ jobs: run: ctest -V build-ios: - runs-on: macos-13 + runs-on: macos-latest steps: - uses: actions/checkout@v3 with: