diff --git a/.version b/.version index 850e742..141f2e8 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -1.14.0 +1.15.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 8995c54..9eaeba5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,18 @@ # Orchard Change Log +## [1.15.0](https://github.com/Detroit-Labs/Orchard/releases/tag/1.15.0) +**Released:** 2023-08-30 + +### Updated +- Set minimum iOS deployment target to 12.0 +- Set minimum tvOS deployment target to 12.0 +- Set minimum watchOS deployment target to 4.0 + ## [1.14.0](https://github.com/Detroit-Labs/Orchard/releases/tag/1.14.0) **Released:** 2023-08-30 ### Added -- Support for Apple TV 4K (3nd Generation) +- Support for Apple TV 4K (3rd Generation) ### Updated - Support for Apple TV 4K (2nd Generation) diff --git a/Common/GYBUtilities.py b/Common/GYBUtilities.py index aecffef..88501a9 100644 --- a/Common/GYBUtilities.py +++ b/Common/GYBUtilities.py @@ -39,9 +39,9 @@ def longestEnumNameLength(deviceFamily = iOSDeviceFamily.IPHONE): longest = length return longest -iOSDeploymentTarget=os.getenv('IPHONEOS_DEPLOYMENT_TARGET', '9.0') -watchOSDeploymentTarget=os.getenv('WATCHOS_DEPLOYMENT_TARGET', '2.0') -tvOSDeploymentTarget=os.getenv('TVOS_DEPLOYMENT_TARGET', '9.0') +iOSDeploymentTarget=os.getenv('IPHONEOS_DEPLOYMENT_TARGET', '12.0') +watchOSDeploymentTarget=os.getenv('WATCHOS_DEPLOYMENT_TARGET', '4.0') +tvOSDeploymentTarget=os.getenv('TVOS_DEPLOYMENT_TARGET', '12.0') def versiontuple(v): return tuple(map(int, v.split('.'))) diff --git a/Gemfile.lock b/Gemfile.lock index 425f07b..2845226 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -88,6 +88,7 @@ GEM zeitwerk (2.5.4) PLATFORMS + arm64-darwin-21 x86_64-darwin-21 DEPENDENCIES diff --git a/Orchard-ObjC/tvOS/OrchardtvOSDevice.m b/Orchard-ObjC/tvOS/OrchardtvOSDevice.m index 0db1fe0..f25d601 100644 --- a/Orchard-ObjC/tvOS/OrchardtvOSDevice.m +++ b/Orchard-ObjC/tvOS/OrchardtvOSDevice.m @@ -22,9 +22,7 @@ OrchardtvOSDevice OrchardtvOSDeviceFromNSString(NSString *string) { return OrchardtvOSDeviceAppleTVHD; } else if ([string isEqualToString:@"AppleTV6,2"]) { - if (@available(tvOS 11.0, *)) { - return OrchardtvOSDeviceAppleTV4K; - } + return OrchardtvOSDeviceAppleTV4K; } else if ([string isEqualToString:@"AppleTV11,1"]) { if (@available(tvOS 14.5, *)) { diff --git a/Orchard-ObjC/watchOS/OrchardwatchOSDevice.m b/Orchard-ObjC/watchOS/OrchardwatchOSDevice.m index 21a4c6a..a5efaee 100644 --- a/Orchard-ObjC/watchOS/OrchardwatchOSDevice.m +++ b/Orchard-ObjC/watchOS/OrchardwatchOSDevice.m @@ -27,36 +27,24 @@ OrchardwatchOSDevice OrchardwatchOSDeviceFromNSString(NSString *string) { return OrchardwatchOSDeviceAppleWatch_42mm; } else if ([string isEqualToString:@"Watch2,6"]) { - if (@available(watchOS 3.0, *)) { - return OrchardwatchOSDeviceAppleWatchSeries1_38mm; - } + return OrchardwatchOSDeviceAppleWatchSeries1_38mm; } else if ([string isEqualToString:@"Watch2,7"]) { - if (@available(watchOS 3.0, *)) { - return OrchardwatchOSDeviceAppleWatchSeries1_42mm; - } + return OrchardwatchOSDeviceAppleWatchSeries1_42mm; } else if ([string isEqualToString:@"Watch2,3"]) { - if (@available(watchOS 3.0, *)) { - return OrchardwatchOSDeviceAppleWatchSeries2_38mm; - } + return OrchardwatchOSDeviceAppleWatchSeries2_38mm; } else if ([string isEqualToString:@"Watch2,4"]) { - if (@available(watchOS 3.0, *)) { - return OrchardwatchOSDeviceAppleWatchSeries2_42mm; - } + return OrchardwatchOSDeviceAppleWatchSeries2_42mm; } else if ([string orchard_isEqualToOneOfStrings:@[@"Watch3,1", @"Watch3,3"]]) { - if (@available(watchOS 4.0, *)) { - return OrchardwatchOSDeviceAppleWatchSeries3_38mm; - } + return OrchardwatchOSDeviceAppleWatchSeries3_38mm; } else if ([string orchard_isEqualToOneOfStrings:@[@"Watch3,2", @"Watch3,4"]]) { - if (@available(watchOS 4.0, *)) { - return OrchardwatchOSDeviceAppleWatchSeries3_42mm; - } + return OrchardwatchOSDeviceAppleWatchSeries3_42mm; } else if ([string orchard_isEqualToOneOfStrings:@[@"Watch4,1", @"Watch4,3"]]) { diff --git a/Orchard-Swift/iOS/iPads.swift b/Orchard-Swift/iOS/iPads.swift index e48e49a..6c5a9a9 100644 --- a/Orchard-Swift/iOS/iPads.swift +++ b/Orchard-Swift/iOS/iPads.swift @@ -109,24 +109,11 @@ public enum iPads { self = .unknown switch model { - case "iPad2,1", "iPad2,2", "iPad2,3", "iPad2,4": - self = .iPad2 - - case "iPad3,1", "iPad3,2", "iPad3,3": - self = .iPad3 - - case "iPad3,4", "iPad3,5", "iPad3,6": - self = .iPad4 - case "iPad6,11", "iPad6,12": - if #available(iOS 10.3, *) { - self = .iPad5 - } + self = .iPad5 case "iPad7,5", "iPad7,6": - if #available(iOS 11.3, *) { - self = .iPad6 - } + self = .iPad6 case "iPad7,11", "iPad7,12": if #available(iOS 13.1, *) { @@ -143,9 +130,6 @@ public enum iPads { self = .iPad9 } - case "iPad2,5", "iPad2,6", "iPad2,7": - self = .iPadMini - case "iPad4,4", "iPad4,5", "iPad4,6": self = .iPadMini2 @@ -187,24 +171,16 @@ public enum iPads { } case "iPad6,7", "iPad6,8": - if #available(iOS 9.1, *) { - self = .iPadPro12_9Inch - } + self = .iPadPro12_9Inch case "iPad6,3", "iPad6,4": - if #available(iOS 9.3, *) { - self = .iPadPro9_7Inch - } + self = .iPadPro9_7Inch case "iPad7,1", "iPad7,2": - if #available(iOS 10.3, *) { - self = .iPadPro12_9Inch2 - } + self = .iPadPro12_9Inch2 case "iPad7,3", "iPad7,4": - if #available(iOS 10.3, *) { - self = .iPadPro10_5Inch - } + self = .iPadPro10_5Inch case "iPad8,5", "iPad8,6", "iPad8,7", "iPad8,8": if #available(iOS 12.1, *) { diff --git a/Orchard-Swift/iOS/iPhones.swift b/Orchard-Swift/iOS/iPhones.swift index c98766d..a316b57 100644 --- a/Orchard-Swift/iOS/iPhones.swift +++ b/Orchard-Swift/iOS/iPhones.swift @@ -133,15 +133,6 @@ public enum iPhones { self = .unknown switch model { - case "iPhone4,1": - self = .iPhone4S - - case "iPhone5,1", "iPhone5,2": - self = .iPhone5 - - case "iPhone5,3", "iPhone5,4": - self = .iPhone5c - case "iPhone6,1", "iPhone6,2": self = .iPhone5s @@ -158,49 +149,31 @@ public enum iPhones { self = .iPhone6sPlus case "iPhone8,4": - if #available(iOS 9.3, *) { - self = .iPhoneSE - } + self = .iPhoneSE case "iPhone9,1", "iPhone9,3": - if #available(iOS 10.0, *) { - self = .iPhone7 - } + self = .iPhone7 case "iPhone9,2", "iPhone9,4": - if #available(iOS 10.0, *) { - self = .iPhone7Plus - } + self = .iPhone7Plus case "iPhone10,1", "iPhone10,4": - if #available(iOS 11.0, *) { - self = .iPhone8 - } + self = .iPhone8 case "iPhone10,2", "iPhone10,5": - if #available(iOS 11.0, *) { - self = .iPhone8Plus - } + self = .iPhone8Plus case "iPhone10,3", "iPhone10,6": - if #available(iOS 11.0, *) { - self = .iPhoneX - } + self = .iPhoneX case "iPhone11,2": - if #available(iOS 12.0, *) { - self = .iPhoneXS - } + self = .iPhoneXS case "iPhone11,4", "iPhone11,6": - if #available(iOS 12.0, *) { - self = .iPhoneXSMax - } + self = .iPhoneXSMax case "iPhone11,8": - if #available(iOS 12.0, *) { - self = .iPhoneXR - } + self = .iPhoneXR case "iPhone12,1": if #available(iOS 13.0, *) { diff --git a/Orchard-Swift/iOS/iPods.swift b/Orchard-Swift/iOS/iPods.swift index 5368be1..eea559d 100644 --- a/Orchard-Swift/iOS/iPods.swift +++ b/Orchard-Swift/iOS/iPods.swift @@ -40,9 +40,6 @@ public enum iPods { self = .unknown switch model { - case "iPod5,1": - self = .iPodTouch5 - case "iPod7,1": self = .iPodTouch6 diff --git a/Orchard-Swift/tvOS/TVs.swift b/Orchard-Swift/tvOS/TVs.swift index 0b13e6a..e759bb4 100644 --- a/Orchard-Swift/tvOS/TVs.swift +++ b/Orchard-Swift/tvOS/TVs.swift @@ -35,9 +35,7 @@ public enum TVs { self = .AppleTVHD case "AppleTV6,2": - if #available(tvOS 11.0, *) { - self = .AppleTV4K - } + self = .AppleTV4K case "AppleTV11,1": if #available(tvOS 14.5, *) { diff --git a/Orchard-Swift/watchOS/Watches.swift b/Orchard-Swift/watchOS/Watches.swift index 97a75c0..1a82bbe 100644 --- a/Orchard-Swift/watchOS/Watches.swift +++ b/Orchard-Swift/watchOS/Watches.swift @@ -95,34 +95,22 @@ public enum Watches { self = .AppleWatch_42mm case "Watch2,6": - if #available(watchOS 3.0, *) { - self = .AppleWatchSeries1_38mm - } + self = .AppleWatchSeries1_38mm case "Watch2,7": - if #available(watchOS 3.0, *) { - self = .AppleWatchSeries1_42mm - } + self = .AppleWatchSeries1_42mm case "Watch2,3": - if #available(watchOS 3.0, *) { - self = .AppleWatchSeries2_38mm - } + self = .AppleWatchSeries2_38mm case "Watch2,4": - if #available(watchOS 3.0, *) { - self = .AppleWatchSeries2_42mm - } + self = .AppleWatchSeries2_42mm case "Watch3,1", "Watch3,3": - if #available(watchOS 4.0, *) { - self = .AppleWatchSeries3_38mm - } + self = .AppleWatchSeries3_38mm case "Watch3,2", "Watch3,4": - if #available(watchOS 4.0, *) { - self = .AppleWatchSeries3_42mm - } + self = .AppleWatchSeries3_42mm case "Watch4,1", "Watch4,3": if #available(watchOS 5.0, *) { diff --git a/Orchard.podspec b/Orchard.podspec index ecc8fb9..e69b56c 100644 --- a/Orchard.podspec +++ b/Orchard.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = "Orchard" - spec.version = "1.14.0" + spec.version = "1.15.0" spec.summary = "Device identification for iOS, watchOS, and tvOS." spec.description = <<-DESC @@ -16,9 +16,9 @@ make decisions based on that. spec.author = { "Jeff Kelley" => "SlaunchaMan@gmail.com" } - spec.ios.deployment_target = "9.0" - spec.watchos.deployment_target = "2.0" - spec.tvos.deployment_target = "9.0" + spec.ios.deployment_target = "12.0" + spec.watchos.deployment_target = "4.0" + spec.tvos.deployment_target = "12.0" spec.source = { :git => "https://github.com/Detroit-Labs/Orchard.git", :tag => "#{spec.version}" } diff --git a/Orchard.xcodeproj/project.pbxproj b/Orchard.xcodeproj/project.pbxproj index 565cc93..3e5245b 100644 --- a/Orchard.xcodeproj/project.pbxproj +++ b/Orchard.xcodeproj/project.pbxproj @@ -319,9 +319,10 @@ 1F9B8A4920FD80600039D518 /* Project object */ = { isa = PBXProject; attributes = { + BuildIndependentTargetsInParallel = YES; CLASSPREFIX = Orchard; LastSwiftUpdateCheck = 1000; - LastUpgradeCheck = 1330; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = "Detroit Labs"; TargetAttributes = { 1F6D236B2244810B001E0B28 = { @@ -466,6 +467,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -484,6 +486,8 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.detroitlabs.Orchard; @@ -518,6 +522,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; ENABLE_NS_ASSERTIONS = NO; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_TREAT_WARNINGS_AS_ERRORS = YES; @@ -531,6 +536,8 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.detroitlabs.Orchard; @@ -565,6 +572,7 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_NO_COMMON_BLOCKS = YES; @@ -574,14 +582,14 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MARKETING_VERSION = 1.14.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MARKETING_VERSION = 1.15.0; ONLY_ACTIVE_ARCH = YES; RUN_CLANG_STATIC_ANALYZER = YES; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos watchsimulator watchos appletvsimulator appletvos"; - TVOS_DEPLOYMENT_TARGET = 9.0; + TVOS_DEPLOYMENT_TARGET = 12.0; VERSIONING_SYSTEM = "apple-generic"; - WATCHOS_DEPLOYMENT_TARGET = 2.0; + WATCHOS_DEPLOYMENT_TARGET = 4.0; }; name = Debug; }; @@ -607,6 +615,7 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_NO_COMMON_BLOCKS = YES; @@ -616,14 +625,14 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MARKETING_VERSION = 1.14.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MARKETING_VERSION = 1.15.0; RUN_CLANG_STATIC_ANALYZER = YES; SUPPORTED_PLATFORMS = "iphonesimulator iphoneos watchsimulator watchos appletvsimulator appletvos"; SWIFT_COMPILATION_MODE = wholemodule; - TVOS_DEPLOYMENT_TARGET = 9.0; + TVOS_DEPLOYMENT_TARGET = 12.0; VERSIONING_SYSTEM = "apple-generic"; - WATCHOS_DEPLOYMENT_TARGET = 2.0; + WATCHOS_DEPLOYMENT_TARGET = 4.0; }; name = Release; }; @@ -667,6 +676,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; @@ -689,6 +699,8 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.detroitlabs.Orchard; @@ -743,6 +755,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -760,6 +773,8 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14"; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.detroitlabs.Orchard; diff --git a/Orchard.xcodeproj/xcshareddata/xcschemes/Orchard-ObjC.xcscheme b/Orchard.xcodeproj/xcshareddata/xcschemes/Orchard-ObjC.xcscheme index b3a31ec..3ec543f 100644 --- a/Orchard.xcodeproj/xcshareddata/xcschemes/Orchard-ObjC.xcscheme +++ b/Orchard.xcodeproj/xcshareddata/xcschemes/Orchard-ObjC.xcscheme @@ -1,6 +1,6 @@