# Changelog ## Version 4.3.0 Releasedate: 2021-02-12 ```ruby pod 'DeviceKit', '~> 4.3' ``` This version adds support for the Simulator running on Apple Silicon and fixes documentation: - Support for running in Simulator on Apple Silicon. ([#273](https://github.com/devicekit/DeviceKit/pull/273)) - Fix tech specs link and images for iPhone 12 models and iPad Air (4th generation). ([#272](https://github.com/devicekit/DeviceKit/pull/272)) ## Version 4.2.1 Releasedate: 2020-10-22 ```ruby pod 'DeviceKit', '~> 4.2' ``` This version fixes a couple of bugs introduced in the v4.2.0 release: - `Device.allDevicesWithALidarSensor` didn't include iPhone 12 Pro and iPhone 12 Pro Max. ([#268](https://github.com/devicekit/DeviceKit/pull/268) [#266](https://github.com/devicekit/DeviceKit/issues/266)) - `Device.iPadAir4.screenRatio` returned an invalid screen ratio. ([#268](https://github.com/devicekit/DeviceKit/pull/268) [#267](https://github.com/devicekit/DeviceKit/issues/267)) ## Version 4.2.0 Releasedate: 2020-10-21 ```ruby pod 'DeviceKit', '~> 4.2' ``` This release will add support for the October 2020 devices. ([#262](https://github.com/devicekit/DeviceKit/pull/262)) - iPad Air (4th generation) - iPhone 12 - iPhone 12 mini - iPhone 12 Pro - iPhone 12 Pro Max ```swift Device.iPadAir4 Device.iPhone12 Device.iPhone12Mini Device.iPhone12Pro Device.iPhone12ProMax ``` ## Version 4.1.0 Releasedate: 2020-09-21 ```ruby pod 'DeviceKit', '~> 4.1' ``` This release will add support for the September 2020 devices, which will be released on the 18th of September: ([#256](https://github.com/devicekit/DeviceKit/pull/256)) - iPad (8th generation) - Apple Watch Series 6 - Apple Watch SE ```swift Device.iPad8 Device.appleWatchSeries6_40mm Device.appleWatchSeries6_44mm Device.appleWatchSE_40mm Device.appleWatchSE_44mm ``` Support for iPad Air (4th generation) will be added in a later version since it will be a long time before we know its device identifiers. ## Version 4.0.0 Releasedate: 2020-09-04 ```ruby pod 'DeviceKit', '~> 4.0' ``` This is a v4.0.0 release because of the possibly breaking change of no longer supporting iOS 9. This decision was made because of Xcode 12 no longer supporting iOS 8. - Dropped support for iOS 8. Lowest supported version is now iOS 9. ([#249](https://github.com/devicekit/DeviceKit/pull/249)) - Updated project settings for Xcode 12. ([#248](https://github.com/devicekit/DeviceKit/pull/248)) ## Version 3.2.0 Releasedate: 2020-04-29 ```ruby pod 'DeviceKit', '~> 3.2' ``` ### iPhone SE (2nd generation) - Added support for the iPhone SE (2nd generation). ([#238](https://github.com/devicekit/DeviceKit/pull/238)) ```swift Device.iPhoneSE2 ``` ## Version 3.1.0 Releasedate: 2020-03-29 ```ruby pod 'DeviceKit', '~> 3.1' ``` ### 2020 iPad Pro - Added support for the new 2020 iPad Pro. ([#235](https://github.com/devicekit/DeviceKit/pull/235)) ```swift Device.iPadPro11Inch2 // iPad Pro (11-inch) (2nd generation) Device.iPadPro12inch4 // iPad Pro (12.9-inch) (4th generation) ``` ### New features - Added new functions for detecting LiDAR support. - `Device.allDevicesWithALidarSensor` and `Device.current.hasLidarSensor` ## Version 3.0.0 Releasedate: 2020-01-19 ```ruby pod 'DeviceKit', '~> 3.0' ``` ### Breaking changes - The enum for the Apple TV HD has been renamed from `.appleTV4` to `.appleTVHD`. ([#211](https://github.com/devicekit/DeviceKit/pull/211)) - `.allSimulatorXSeriesDevices` has been deprecated and replaced by `.allSimulatorDevicesWithSensorHousing`. ([#212](https://github.com/devicekit/DeviceKit/pull/212)) - `.allXSeriesDevices` has been deprecated and replaced by `.allDevicesWithSensorHousing`. ([#212](https://github.com/devicekit/DeviceKit/pull/212)) #### Camera - `CameraTypes` has been renamed to `CameraType`. ([#212](https://github.com/devicekit/DeviceKit/pull/212)) - `CameraType.normal` has been deprecated and replaced by `CameraType.wide`. ([#212](https://github.com/devicekit/DeviceKit/pull/212)) - `.allDevicesWithNormalCamera` has been deprecated and replaced by `.allDevicesWithWideCamera`. ([#212](https://github.com/devicekit/DeviceKit/pull/212)) - `.hasNormalCamera` has been deprecated and replaced by `.hasWideCamera`. ([#212](https://github.com/devicekit/DeviceKit/pull/212)) ### New features - You can now check which devices support wireless charging through the following variables: `Device.allDevicesWithWirelessChargingSupport` and `Device.current.supportsWirelessCharging` ([#209](https://github.com/devicekit/DeviceKit/pull/209)) - New `.safeDescription` variable that will provide you with a safe version of the `.description` variable. ([#212](https://github.com/devicekit/DeviceKit/pull/212)) - Example: "iPhone Xʀ" vs "iPhone XR" ### Bugfixes - `.allDevicesWith3dTouchSupport` contained `.iPhoneSE` which was incorrect. ([#226](https://github.com/devicekit/DeviceKit/pull/226)) - Some variables would return incorrect values when running on the simulator. ([#227](https://github.com/devicekit/DeviceKit/pull/227)) ## Version 2.3.0 Releasedate: 2019-10-02 ```ruby pod 'DeviceKit', '~> 2.3' ``` ### New devices - Added support for the new september 2019 devices: - iPad (7th generation) ## Version 2.2.0 Releasedate: 2019-09-24 ```ruby pod 'DeviceKit', '~> 2.2' ``` ### New devices - Added support for the new september 2019 devices: - iPhone 11 - iPhone 11 Pro - iPhone 11 Pro Max - Apple Watch Series 5 ### New features - `Device.current.cameras` now has the `.ultraWide` camera type added for devices with that camera. ## Version 2.1.0 Releasedate: 2019-09-01 ```ruby pod 'DeviceKit', '~> 2.1' ``` ### New features - Add support for the new iPod touch (7th generation) ([#189](https://github.com/devicekit/DeviceKit/pull/189)) - Added `Device.allApplePencilCapableDevices` and `Device.current.applePencilSupport` variables for checking Apple Pencil support. ([#179](https://github.com/devicekit/DeviceKit/pull/179)) - `.applePencilSupport` returns `ApplePencilSupport.firstGeneration` or `ApplePencilSupport.secondGeneration` for checking which Apple Pencil is supported. - Added 3D Touch (iOS) and Force Touch (watchOS) support variables: ([#183](https://github.com/devicekit/DeviceKit/pull/183)) - iOS - `Device.allDevicesWith3dTouchSupport` - `Device.current.has3dTouchSupport` - watchOS - `Device.allWatchesWithForceTouchSupport` - `Device.current.hasForceTouchSupport` - Added variable to check for the camera's a device has. ([#188](https://github.com/devicekit/DeviceKit/pull/188)) - Example: `Device.iPhoneXS.cameras` should return `CameraTypes.normal` and `CameraTypes.telephoto`. ### Fixes - Rename iPod touch 5 and 6 to iPod touch (5th generation) and iPod touch (6th generation) respectively. ([#189](https://github.com/devicekit/DeviceKit/pull/189)) - Rename Apple TV (4th generation) to Apple TV HD to comply with Apple's rename of the device. ([#196](https://github.com/devicekit/DeviceKit/pull/196)) - Improve support for Swift Package Manager. ([#193](https://github.com/devicekit/DeviceKit/pull/193)) - Fixed the `Device.current.isZoomed` variable. ([#59 comment](https://github.com/devicekit/DeviceKit/issues/59#issuecomment-519457674) and [#198](https://github.com/devicekit/DeviceKit/pull/198)) ## Version 2.0.0 Releasedate: 2019-04-10 ```ruby pod 'DeviceKit', '~> 2.0' ``` ### Breaking changes - The original `Device()` constructor has been made private in favour of using `Device.current` to match `UIDevice.current`. - The enum values for the iPhone Xs, iPhone Xs Max and iPhone Xʀ have been renamed to be `.iPhoneXS`, `.iPhoneXSMax` and `.iPhoneXR` to match proper formatting. - `.description` for the iPhone Xs, iPhone Xs Max and iPhone Xʀ have been changed to contain small caps formatting for the s and the ʀ part. - `.description` for the iPad 5 and iPad 6 have been changed to the proper names; iPad (5th generation) and iPad (6th generation). - `.name`, `.systemName`, `.systemVersion`, `.model`, `.localizedModel`, `.batteryState` and `.batteryLevel` will now all return nil when you try to get its value when the device you are getting it from isn't the current one. (eg. `Device.iPad6.name` while running on iPad 5) ### New features - Updated to Swift 5! - New `.allDevicesWithRoundedDisplayCorners` and `.hasRoundedDisplayCorners` values to check if a device has rounded display corners. (eg. iPhone Xs and iPad Pro (3rd generation)) - new `.allDevicesWithSensorHousing` and `.hasSensorHousing` values to check if a device has a screen cutout for the sensor housing. (eg. iPhone Xs) ### Bugfixes - `.isPad` and `.isPhone` are now giving correct outputs again. ## Version 1.13.0 (Last Swift 4.2 release) Releasedate: 2019-03-29 ```ruby pod 'DeviceKit', '~> 1.13' ``` ### New iPads Added new iPad Mini (5th generation) and iPad Air (3rd generation) ```swift Device.iPadMini5 // iPad Mini (5th generation) Device.iPadAir3 // iPad Air (3rd generation) ```