From b8c7b47e64d79d55118db3e7461824ff4094836d Mon Sep 17 00:00:00 2001 From: Itay Brenner Date: Sun, 31 Oct 2021 01:21:50 -0300 Subject: [PATCH] Apply fix for macOS Monterey --- CameraController.xcodeproj/project.pbxproj | 16 ++++++--- .../UVC/Models/Controls/UVCControl.swift | 34 +++++++++++++------ Helper/Info.plist | 4 +-- 3 files changed, 38 insertions(+), 16 deletions(-) diff --git a/CameraController.xcodeproj/project.pbxproj b/CameraController.xcodeproj/project.pbxproj index 5798007..cedb376 100644 --- a/CameraController.xcodeproj/project.pbxproj +++ b/CameraController.xcodeproj/project.pbxproj @@ -834,7 +834,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 4; + CURRENT_PROJECT_VERSION = 5; DEVELOPMENT_ASSET_PATHS = "\"CameraController/Preview Content\""; DEVELOPMENT_TEAM = PY9WJ3M9MW; ENABLE_HARDENED_RUNTIME = YES; @@ -845,7 +845,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.2.1; + MARKETING_VERSION = 1.3; PRODUCT_BUNDLE_IDENTIFIER = com.itaysoft.CameraController; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -862,7 +862,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 4; + CURRENT_PROJECT_VERSION = 5; DEVELOPMENT_ASSET_PATHS = "\"CameraController/Preview Content\""; DEVELOPMENT_TEAM = PY9WJ3M9MW; ENABLE_HARDENED_RUNTIME = YES; @@ -874,7 +874,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.2.1; + MARKETING_VERSION = 1.3; PRODUCT_BUNDLE_IDENTIFIER = com.itaysoft.CameraController; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -933,8 +933,10 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = Helper/Helper.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 5; DEVELOPMENT_ASSET_PATHS = "\"Helper/Preview Content\""; DEVELOPMENT_TEAM = PY9WJ3M9MW; ENABLE_HARDENED_RUNTIME = YES; @@ -945,8 +947,10 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; + MARKETING_VERSION = 1.3; PRODUCT_BUNDLE_IDENTIFIER = com.itaysoft.CameraController.Helper; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SWIFT_VERSION = 5.0; }; @@ -957,8 +961,10 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = Helper/Helper.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 5; DEVELOPMENT_ASSET_PATHS = "\"Helper/Preview Content\""; DEVELOPMENT_TEAM = PY9WJ3M9MW; ENABLE_HARDENED_RUNTIME = YES; @@ -969,8 +975,10 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; + MARKETING_VERSION = 1.3; PRODUCT_BUNDLE_IDENTIFIER = com.itaysoft.CameraController.Helper; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SWIFT_VERSION = 5.0; }; diff --git a/CameraController/UVC/Models/Controls/UVCControl.swift b/CameraController/UVC/Models/Controls/UVCControl.swift index 0a25c01..8150476 100644 --- a/CameraController/UVC/Models/Controls/UVCControl.swift +++ b/CameraController/UVC/Models/Controls/UVCControl.swift @@ -42,11 +42,18 @@ class UVCControl { wLength: UInt16(length), pData: &value, wLenDone: 0) - guard - interface.pointee.pointee.USBInterfaceOpen(interface) == kIOReturnSuccess, - interface.pointee.pointee.ControlRequest(interface, 0, &request) == kIOReturnSuccess, - interface.pointee.pointee.USBInterfaceClose(interface) == kIOReturnSuccess else { - return 0 + if #available(macOS 12.0, *) { + guard + interface.pointee.pointee.ControlRequest(interface, 0, &request) == kIOReturnSuccess else { + return 0 + } + } else { + guard + interface.pointee.pointee.USBInterfaceOpenSeize(interface) == kIOReturnSuccess, + interface.pointee.pointee.ControlRequest(interface, 0, &request) == kIOReturnSuccess, + interface.pointee.pointee.USBInterfaceClose(interface) == kIOReturnSuccess else { + return 0 + } } return value @@ -65,11 +72,18 @@ class UVCControl { pData: &ref, wLenDone: 0) - guard - interface.pointee.pointee.USBInterfaceOpen(interface) == kIOReturnSuccess, - interface.pointee.pointee.ControlRequest(interface, 0, &request) == kIOReturnSuccess, - interface.pointee.pointee.USBInterfaceClose(interface) == kIOReturnSuccess else { - return false + if #available(macOS 12.0, *) { + guard + interface.pointee.pointee.ControlRequest(interface, 0, &request) == kIOReturnSuccess else { + return false + } + } else { + guard + interface.pointee.pointee.USBInterfaceOpenSeize(interface) == kIOReturnSuccess, + interface.pointee.pointee.ControlRequest(interface, 0, &request) == kIOReturnSuccess, + interface.pointee.pointee.USBInterfaceClose(interface) == kIOReturnSuccess else { + return false + } } return true diff --git a/Helper/Info.plist b/Helper/Info.plist index e7d99d7..f4c758f 100644 --- a/Helper/Info.plist +++ b/Helper/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.0 + $(MARKETING_VERSION) CFBundleVersion - 1 + $(CURRENT_PROJECT_VERSION) LSApplicationCategoryType public.app-category.photography LSBackgroundOnly