├── .github └── workflows │ └── swift.yml ├── .gitignore ├── .spi.yml ├── .swift-version ├── .swiftformat ├── BundleFinder.swift ├── CHANGELOG.md ├── LICENSE ├── Package.swift ├── README.md ├── Samples ├── SampleApp.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ ├── SampleApp.xcscheme │ │ └── SampleWatchApp WatchKit App.xcscheme ├── SampleApp │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon020.png │ │ │ ├── Icon020@2x.png │ │ │ ├── Icon020@3x.png │ │ │ ├── Icon029.png │ │ │ ├── Icon029@2x.png │ │ │ ├── Icon029@3x.png │ │ │ ├── Icon040.png │ │ │ ├── Icon040@2x.png │ │ │ ├── Icon040@3x.png │ │ │ ├── Icon060@2x.png │ │ │ ├── Icon060@3x.png │ │ │ ├── Icon076.png │ │ │ ├── Icon076@2x.png │ │ │ ├── Icon083@2x.png │ │ │ └── Icon512@2x.png │ │ └── Contents.json │ ├── Base.lproj │ │ ├── InfoPlist.strings │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.swift │ ├── de.lproj │ │ └── InfoPlist.strings │ ├── es.lproj │ │ └── InfoPlist.strings │ ├── fr.lproj │ │ └── InfoPlist.strings │ ├── it.lproj │ │ └── InfoPlist.strings │ ├── pt.lproj │ │ └── InfoPlist.strings │ ├── ru.lproj │ │ └── InfoPlist.strings │ └── zh-Hans.lproj │ │ └── InfoPlist.strings ├── SampleWatchApp WatchKit App │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon024@2x.png │ │ │ ├── Icon027.5@2x.png │ │ │ ├── Icon029@2x.png │ │ │ ├── Icon029@3x.png │ │ │ ├── Icon040@2x.png │ │ │ ├── Icon044@2x.png │ │ │ ├── Icon050@2x.png │ │ │ ├── Icon086@2x.png │ │ │ ├── Icon098@2x.png │ │ │ ├── Icon108@2x.png │ │ │ └── Icon512@2x.png │ │ └── Contents.json │ ├── Base.lproj │ │ └── Interface.storyboard │ └── Info.plist └── SampleWatchApp WatchKit Extension │ ├── Assets.xcassets │ └── Contents.json │ ├── ContentView.swift │ ├── ExtensionDelegate.swift │ ├── HostingController.swift │ ├── Info.plist │ └── Preview Content │ └── Preview Assets.xcassets │ └── Contents.json └── Sources └── LocalizedDeviceModel ├── Documentation.docc ├── Extensions.md └── LocalizedDeviceModel.md ├── Extensions ├── UIDevice+LocalizedModel.swift └── WKInterfaceDevice+LocalizedModel.swift ├── LocalizedModel.swift └── Resources ├── de.lproj └── DeviceModel.strings ├── en.lproj └── DeviceModel.strings ├── es.lproj └── DeviceModel.strings ├── fr.lproj └── DeviceModel.strings ├── it.lproj └── DeviceModel.strings ├── pt.lproj └── DeviceModel.strings ├── ru.lproj └── DeviceModel.strings └── zh-Hans.lproj └── DeviceModel.strings /.github/workflows/swift.yml: -------------------------------------------------------------------------------- 1 | name: Swift 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | pull_request: 7 | branches: [ master ] 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: macos-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v4 16 | - name: Build 17 | run: swift build -v 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | 3 | ## Various settings 4 | *.pbxuser 5 | !default.pbxuser 6 | xcuserdata/ 7 | *.xcuserdatad/ 8 | .swiftpm 9 | 10 | ## Other 11 | *.xcuserstate 12 | 13 | .DS_Store 14 | build 15 | .build 16 | -------------------------------------------------------------------------------- /.spi.yml: -------------------------------------------------------------------------------- 1 | version: 1 2 | builder: 3 | configs: 4 | - documentation_targets: [LocalizedDeviceModel] 5 | platform: ios 6 | -------------------------------------------------------------------------------- /.swift-version: -------------------------------------------------------------------------------- 1 | 5.3 2 | -------------------------------------------------------------------------------- /.swiftformat: -------------------------------------------------------------------------------- 1 | --disable wrapMultilineStatementBraces,trailingCommas 2 | --ifdef no-indent 3 | -------------------------------------------------------------------------------- /BundleFinder.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BundleFinder.swift 3 | // LocalizedDeviceModel 4 | // 5 | // Created by Benoit Deldicque on 30/05/2021. 6 | // 7 | 8 | import Foundation 9 | import class Foundation.Bundle 10 | 11 | // This file will help building package using a scheme for Swift Package Index. 12 | 13 | private class BundleFinder {} 14 | 15 | extension Foundation.Bundle { 16 | /// Returns the resource bundle associated with the current Swift module. 17 | static var module: Bundle = { 18 | let bundleName = "LocalizedDeviceModel_LocalizedDeviceModel" 19 | 20 | let candidates = [ 21 | // Bundle should be present here when the package is linked into an App. 22 | Bundle.main.resourceURL, 23 | 24 | // Bundle should be present here when the package is linked into a framework. 25 | Bundle(for: BundleFinder.self).resourceURL, 26 | 27 | // For command-line tools. 28 | Bundle.main.bundleURL, 29 | ] 30 | 31 | for candidate in candidates { 32 | let bundlePath = candidate?.appendingPathComponent(bundleName + ".bundle") 33 | if let bundle = bundlePath.flatMap(Bundle.init(url:)) { 34 | return bundle 35 | } 36 | } 37 | fatalError("Unable to find bundle named LocalizedDeviceModel_LocalizedDeviceModel") 38 | }() 39 | } 40 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [3.8.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/3.8.0) 2 | Released on 2025-03-06. 3 | 4 | #### Added 5 | - New iPad models. 6 | 7 | ## [3.7.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/3.7.0) 8 | Released on 2025-02-20. 9 | 10 | #### Added 11 | - New iPhone model. 12 | 13 | ## [3.6.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/3.6.0) 14 | Released on 2024-10-24. 15 | 16 | #### Added 17 | - New iPad models. 18 | 19 | ## [3.5.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/3.5.0) 20 | Released on 2024-09-14. 21 | 22 | #### Added 23 | - New iPhone 16 models. 24 | - New Apple Watch models. 25 | 26 | ## [3.4.1](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/3.4.1) 27 | Released on 2024-08-08. 28 | 29 | #### Fixed 30 | - Fix unexpected device type identifier. 31 | 32 | ## [3.4.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/3.4.0) 33 | Released on 2024-05-11. 34 | 35 | #### Added 36 | - New iPad models. 37 | 38 | #### Fixed 39 | - Fix typo errors. 40 | 41 | ## [3.3.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/3.3.0) 42 | Released on 2023-09-13. 43 | 44 | #### Added 45 | - New iPhone 15 models. 46 | - New Apple Watch models. 47 | 48 | ## [3.2.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/3.2.0) 49 | Released on 2022-10-20. 50 | 51 | #### Added 52 | - New Apple TV. 53 | - New iPad models. 54 | 55 | #### Fixed 56 | - Fix iPhone 14 Pro Max device identifier. 57 | 58 | ## [3.1.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/3.1.0) 59 | Released on 2022-09-10. 60 | 61 | #### Added 62 | - New iPhone 14 models. 63 | - New Apple Watch models. 64 | 65 | ## [3.0.1](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/3.0.1) 66 | Released on 2022-05-09. 67 | 68 | #### Added 69 | - Make UIDevice extension public. 70 | 71 | ## [3.0.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/3.0.0) 72 | Released on 2022-05-07. 73 | 74 | #### Added 75 | - Add Swift package documentation. 76 | 77 | ## [2.3.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/2.3.0) 78 | Released on 2022-03-09. 79 | 80 | #### Added 81 | - New iPad Air models. 82 | - New iPhone SE model. 83 | 84 | ## [2.2.1](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/2.2.1) 85 | Released on 2021-09-21. 86 | 87 | #### Fixed 88 | - Fixed exclude path warnings. 89 | 90 | ## [2.2.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/2.2.0) 91 | Released on 2021-09-15. 92 | 93 | #### Added 94 | - New iPad models. 95 | - New iPhone 13 models. 96 | - New Apple Watch models. 97 | 98 | ## [2.1.2](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/2.1.2) 99 | Released on 2021-05-30. 100 | 101 | #### Improvements 102 | - Project structure is now ready for Swift Package Index builds. 103 | 104 | ## [2.1.1](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/2.1.1) 105 | Released on 2021-05-30. 106 | 107 | #### Added 108 | - watchOS WKInterfaceDevice extension. 109 | 110 | #### Improvements 111 | - Sample project can run standalone watchOS app. 112 | 113 | ## [2.1.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/2.1.0) 114 | Released on 2021-04-20. 115 | 116 | #### Added 117 | - New iPad Pro models. 118 | - New Apple TV 4K model. 119 | 120 | #### Fixed 121 | - Some typo errors on zh-Hans localization. 122 | 123 | ## [2.0.1](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/2.0.1) 124 | Released on 2021-03-05. 125 | 126 | #### Improvements 127 | - Cleaned code. 128 | 129 | ## [2.0.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/2.0.0) 130 | Released on 2020-10-15. 131 | 132 | #### Added 133 | - New iPhone 12 models. 134 | - Swift Package Manager support. 135 | 136 | Note: Carthage is not supported anymore. 137 | 138 | ## [1.10.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.10.0) 139 | Released on 2020-09-16. 140 | 141 | #### Added 142 | - New iPad models. 143 | - New Apple Watch models. 144 | 145 | ## [1.9.1](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.9.1) 146 | Released on 2020-04-17. 147 | 148 | #### Added 149 | - New iPhone SE model. 150 | 151 | ## [1.9.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.9.0) 152 | Released on 2020-03-24. 153 | 154 | #### Added 155 | - New iPad Pro models. 156 | 157 | ## [1.8.1](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.8.1) 158 | Released on 2019-10-07. 159 | 160 | #### Added 161 | - New iPad (7th generation) models. 162 | 163 | ## [1.8.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.8.0) 164 | Released on 2019-09-11. 165 | 166 | #### Added 167 | - New iPhone 11 models. 168 | - New Apple Watch Series 5 models. 169 | 170 | ## [1.7.1](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.7.1) 171 | Released on 2019-06-26. 172 | 173 | #### Added 174 | - New iPod device. 175 | 176 | ## [1.7.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.7.0) 177 | Released on 2019-03-26. 178 | 179 | #### Added 180 | - New iPad devices. 181 | 182 | #### Updated 183 | - Apple TV. 184 | 185 | ## [1.6.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.6.0) 186 | Released on 2019-02-12. 187 | 188 | #### Added 189 | - Support for tvOS 190 | 191 | #### Updated 192 | - BDLocalizedDevicesModels Swift version is Swift 4.0. 193 | 194 | ## [1.5.1](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.5.1) 195 | Released on 2018-11-19. 196 | 197 | #### Fixed 198 | - Unrecognised selector bug. 199 | 200 | ## [1.5.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.5.0) 201 | Released on 2018-10-30. 202 | 203 | #### Added 204 | - New iPad devices. 205 | 206 | 207 | ## [1.4.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.4.0) 208 | Released on 2018-09-13. 209 | 210 | #### Added 211 | - New iPhone and Apple Watch devices. 212 | 213 | ## [1.3.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.3.0) 214 | Released on 2018-09-03. 215 | 216 | #### Added 217 | - Sample code app is now available. 218 | 219 | - Simulator displays its real device name. 220 | 221 | #### Updated 222 | - BDLocalizedDevicesModels deployment target is iOS 9.0. 223 | 224 | ## [1.2.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.2.0) 225 | Released on 2018-08-01. 226 | 227 | #### Added 228 | - New Russian and Chinese (Simplified) languages. 229 | 230 | ## [1.1.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.1.0) 231 | Released on 2018-06-29. 232 | 233 | #### Added 234 | - New Portuguese language. 235 | 236 | ## [1.0.0](https://github.com/bixcorp/BDLocalizedDevicesModels/releases/tag/1.0.0) 237 | Released on 2018-06-28. 238 | 239 | #### Added 240 | - Initial release of BDLocalizedDevicesModels as a framework. 241 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Benoit Deldicque 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.5 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "LocalizedDeviceModel", 8 | defaultLocalization: "en", 9 | platforms: [.iOS(.v9), .watchOS(.v5), .tvOS(.v9)], 10 | products: [ 11 | // Products define the executables and libraries a package produces, and make them visible to other packages. 12 | .library( 13 | name: "LocalizedDeviceModel", 14 | targets: ["LocalizedDeviceModel"] 15 | ), 16 | ], 17 | dependencies: [], 18 | targets: [ 19 | // Targets are the basic building blocks of a package. A target can define a module or a test suite. 20 | // Targets can depend on other targets in this package, and on products in packages this package depends on. 21 | .target( 22 | name: "LocalizedDeviceModel", 23 | dependencies: [], 24 | path: "Sources", 25 | exclude: ["../Samples", 26 | "../BundleFinder.swift"] 27 | ) 28 | ] 29 | ) 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LocalizedDeviceModel 2 | Apple product names localized. 3 | 4 | [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fbixcorp%2FBDLocalizedDevicesModels%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/bixcorp/BDLocalizedDevicesModels) [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fbixcorp%2FBDLocalizedDevicesModels%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/bixcorp/BDLocalizedDevicesModels) 5 | 6 | 7 | ## Usage 8 | Note: To use a localization included in the package, the app using the package must support this localization. 9 | ### Localized product name 10 | Swift 11 | ```swift 12 | UIDevice.current.localizedProductName 13 | ``` 14 | 15 | Objective-C 16 | ```objc 17 | [UIDevice currentDevice].localizedProductName; 18 | ``` 19 | 20 | ### English product name 21 | Swift 22 | ```swift 23 | UIDevice.current.productName 24 | ``` 25 | 26 | Objective-C 27 | ```objc 28 | [UIDevice currentDevice].productName; 29 | ``` 30 | -------------------------------------------------------------------------------- /Samples/SampleApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 52; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 14005CB425237503006A911E /* LocalizedDeviceModel in Frameworks */ = {isa = PBXBuildFile; productRef = 14005CB325237503006A911E /* LocalizedDeviceModel */; }; 11 | 14005CB725237524006A911E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14005CB625237524006A911E /* AppDelegate.swift */; }; 12 | 1479F3A126636B29003EC36B /* SampleWatchApp WatchKit App.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 1479F3A026636B29003EC36B /* SampleWatchApp WatchKit App.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 13 | 1479F3A726636B29003EC36B /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1479F3A526636B29003EC36B /* Interface.storyboard */; }; 14 | 1479F3A926636B2B003EC36B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1479F3A826636B2B003EC36B /* Assets.xcassets */; }; 15 | 1479F3B026636B2B003EC36B /* SampleWatchApp WatchKit Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 1479F3AF26636B2B003EC36B /* SampleWatchApp WatchKit Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 16 | 1479F3B526636B2B003EC36B /* HostingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1479F3B426636B2B003EC36B /* HostingController.swift */; }; 17 | 1479F3B726636B2B003EC36B /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1479F3B626636B2B003EC36B /* ContentView.swift */; }; 18 | 1479F3B926636B2B003EC36B /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1479F3B826636B2B003EC36B /* ExtensionDelegate.swift */; }; 19 | 1479F3BD26636B2D003EC36B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1479F3BC26636B2D003EC36B /* Assets.xcassets */; }; 20 | 1479F3C026636B2D003EC36B /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1479F3BF26636B2D003EC36B /* Preview Assets.xcassets */; }; 21 | 1479F3CE26636C60003EC36B /* LocalizedDeviceModel in Frameworks */ = {isa = PBXBuildFile; productRef = 1479F3CD26636C60003EC36B /* LocalizedDeviceModel */; }; 22 | 14F7EE952523717A005D7C21 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 14F7EE942523717A005D7C21 /* Assets.xcassets */; }; 23 | 14F7EE9825237194005D7C21 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14F7EE9725237194005D7C21 /* ViewController.swift */; }; 24 | 14F7EECB252371DC005D7C21 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14F7EEC5252371DC005D7C21 /* LaunchScreen.storyboard */; }; 25 | 14F7EECC252371DC005D7C21 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14F7EEC7252371DC005D7C21 /* Main.storyboard */; }; 26 | 14F7EECD252371DC005D7C21 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 14F7EEC9252371DC005D7C21 /* InfoPlist.strings */; }; 27 | /* End PBXBuildFile section */ 28 | 29 | /* Begin PBXContainerItemProxy section */ 30 | 1479F3A226636B29003EC36B /* PBXContainerItemProxy */ = { 31 | isa = PBXContainerItemProxy; 32 | containerPortal = 14F7EE722523712B005D7C21 /* Project object */; 33 | proxyType = 1; 34 | remoteGlobalIDString = 1479F39F26636B29003EC36B; 35 | remoteInfo = "SampleWatchApp WatchKit App"; 36 | }; 37 | 1479F3B126636B2B003EC36B /* PBXContainerItemProxy */ = { 38 | isa = PBXContainerItemProxy; 39 | containerPortal = 14F7EE722523712B005D7C21 /* Project object */; 40 | proxyType = 1; 41 | remoteGlobalIDString = 1479F3AE26636B2B003EC36B; 42 | remoteInfo = "SampleWatchApp WatchKit Extension"; 43 | }; 44 | /* End PBXContainerItemProxy section */ 45 | 46 | /* Begin PBXCopyFilesBuildPhase section */ 47 | 1479F3C526636B2D003EC36B /* Embed App Extensions */ = { 48 | isa = PBXCopyFilesBuildPhase; 49 | buildActionMask = 2147483647; 50 | dstPath = ""; 51 | dstSubfolderSpec = 13; 52 | files = ( 53 | 1479F3B026636B2B003EC36B /* SampleWatchApp WatchKit Extension.appex in Embed App Extensions */, 54 | ); 55 | name = "Embed App Extensions"; 56 | runOnlyForDeploymentPostprocessing = 0; 57 | }; 58 | 1479F3C926636B2D003EC36B /* Embed Watch Content */ = { 59 | isa = PBXCopyFilesBuildPhase; 60 | buildActionMask = 2147483647; 61 | dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; 62 | dstSubfolderSpec = 16; 63 | files = ( 64 | 1479F3A126636B29003EC36B /* SampleWatchApp WatchKit App.app in Embed Watch Content */, 65 | ); 66 | name = "Embed Watch Content"; 67 | runOnlyForDeploymentPostprocessing = 0; 68 | }; 69 | /* End PBXCopyFilesBuildPhase section */ 70 | 71 | /* Begin PBXFileReference section */ 72 | 14005CB625237524006A911E /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 73 | 140FC6542825B93800A5F06B /* BDLocalizedDevicesModels */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = BDLocalizedDevicesModels; path = ..; sourceTree = ""; }; 74 | 1479F39D26636B29003EC36B /* SampleWatchApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SampleWatchApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 75 | 1479F3A026636B29003EC36B /* SampleWatchApp WatchKit App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "SampleWatchApp WatchKit App.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 76 | 1479F3A626636B29003EC36B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; 77 | 1479F3A826636B2B003EC36B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 78 | 1479F3AA26636B2B003EC36B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 79 | 1479F3AF26636B2B003EC36B /* SampleWatchApp WatchKit Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "SampleWatchApp WatchKit Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; 80 | 1479F3B426636B2B003EC36B /* HostingController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HostingController.swift; sourceTree = ""; }; 81 | 1479F3B626636B2B003EC36B /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 82 | 1479F3B826636B2B003EC36B /* ExtensionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionDelegate.swift; sourceTree = ""; }; 83 | 1479F3BC26636B2D003EC36B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 84 | 1479F3BF26636B2D003EC36B /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 85 | 1479F3C126636B2D003EC36B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 86 | 14F7EE7A2523712B005D7C21 /* SampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 87 | 14F7EE942523717A005D7C21 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 88 | 14F7EE9725237194005D7C21 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 89 | 14F7EE9A2523719F005D7C21 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 90 | 14F7EEC6252371DC005D7C21 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 91 | 14F7EEC8252371DC005D7C21 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 92 | 14F7EECA252371DC005D7C21 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/InfoPlist.strings; sourceTree = ""; }; 93 | 14F7EECF252371F0005D7C21 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; }; 94 | 14F7EED0252371F0005D7C21 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; 95 | 14F7EED1252371F0005D7C21 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; 96 | 14F7EED2252371F0005D7C21 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; 97 | 14F7EED3252371F0005D7C21 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; }; 98 | 14F7EED4252371F0005D7C21 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; 99 | 14F7EED5252371F0005D7C21 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; 100 | /* End PBXFileReference section */ 101 | 102 | /* Begin PBXFrameworksBuildPhase section */ 103 | 1479F3AC26636B2B003EC36B /* Frameworks */ = { 104 | isa = PBXFrameworksBuildPhase; 105 | buildActionMask = 2147483647; 106 | files = ( 107 | 1479F3CE26636C60003EC36B /* LocalizedDeviceModel in Frameworks */, 108 | ); 109 | runOnlyForDeploymentPostprocessing = 0; 110 | }; 111 | 14F7EE772523712B005D7C21 /* Frameworks */ = { 112 | isa = PBXFrameworksBuildPhase; 113 | buildActionMask = 2147483647; 114 | files = ( 115 | 14005CB425237503006A911E /* LocalizedDeviceModel in Frameworks */, 116 | ); 117 | runOnlyForDeploymentPostprocessing = 0; 118 | }; 119 | /* End PBXFrameworksBuildPhase section */ 120 | 121 | /* Begin PBXGroup section */ 122 | 140FC6532825B93800A5F06B /* Packages */ = { 123 | isa = PBXGroup; 124 | children = ( 125 | 140FC6542825B93800A5F06B /* BDLocalizedDevicesModels */, 126 | ); 127 | name = Packages; 128 | sourceTree = ""; 129 | }; 130 | 1479F3A426636B29003EC36B /* SampleWatchApp WatchKit App */ = { 131 | isa = PBXGroup; 132 | children = ( 133 | 1479F3A526636B29003EC36B /* Interface.storyboard */, 134 | 1479F3A826636B2B003EC36B /* Assets.xcassets */, 135 | 1479F3AA26636B2B003EC36B /* Info.plist */, 136 | ); 137 | path = "SampleWatchApp WatchKit App"; 138 | sourceTree = ""; 139 | }; 140 | 1479F3B326636B2B003EC36B /* SampleWatchApp WatchKit Extension */ = { 141 | isa = PBXGroup; 142 | children = ( 143 | 1479F3B426636B2B003EC36B /* HostingController.swift */, 144 | 1479F3B626636B2B003EC36B /* ContentView.swift */, 145 | 1479F3B826636B2B003EC36B /* ExtensionDelegate.swift */, 146 | 1479F3BC26636B2D003EC36B /* Assets.xcassets */, 147 | 1479F3C126636B2D003EC36B /* Info.plist */, 148 | 1479F3BE26636B2D003EC36B /* Preview Content */, 149 | ); 150 | path = "SampleWatchApp WatchKit Extension"; 151 | sourceTree = ""; 152 | }; 153 | 1479F3BE26636B2D003EC36B /* Preview Content */ = { 154 | isa = PBXGroup; 155 | children = ( 156 | 1479F3BF26636B2D003EC36B /* Preview Assets.xcassets */, 157 | ); 158 | path = "Preview Content"; 159 | sourceTree = ""; 160 | }; 161 | 14F7EE712523712B005D7C21 = { 162 | isa = PBXGroup; 163 | children = ( 164 | 14F7EE7C2523712B005D7C21 /* SampleApp */, 165 | 1479F3A426636B29003EC36B /* SampleWatchApp WatchKit App */, 166 | 1479F3B326636B2B003EC36B /* SampleWatchApp WatchKit Extension */, 167 | 140FC6532825B93800A5F06B /* Packages */, 168 | 14F7EE7B2523712B005D7C21 /* Products */, 169 | 14F7EEDA25237432005D7C21 /* Frameworks */, 170 | ); 171 | sourceTree = ""; 172 | }; 173 | 14F7EE7B2523712B005D7C21 /* Products */ = { 174 | isa = PBXGroup; 175 | children = ( 176 | 14F7EE7A2523712B005D7C21 /* SampleApp.app */, 177 | 1479F39D26636B29003EC36B /* SampleWatchApp.app */, 178 | 1479F3A026636B29003EC36B /* SampleWatchApp WatchKit App.app */, 179 | 1479F3AF26636B2B003EC36B /* SampleWatchApp WatchKit Extension.appex */, 180 | ); 181 | name = Products; 182 | sourceTree = ""; 183 | }; 184 | 14F7EE7C2523712B005D7C21 /* SampleApp */ = { 185 | isa = PBXGroup; 186 | children = ( 187 | 14005CB625237524006A911E /* AppDelegate.swift */, 188 | 14F7EEC9252371DC005D7C21 /* InfoPlist.strings */, 189 | 14F7EEC5252371DC005D7C21 /* LaunchScreen.storyboard */, 190 | 14F7EEC7252371DC005D7C21 /* Main.storyboard */, 191 | 14F7EE9A2523719F005D7C21 /* Info.plist */, 192 | 14F7EE9725237194005D7C21 /* ViewController.swift */, 193 | 14F7EE942523717A005D7C21 /* Assets.xcassets */, 194 | ); 195 | path = SampleApp; 196 | sourceTree = ""; 197 | }; 198 | 14F7EEDA25237432005D7C21 /* Frameworks */ = { 199 | isa = PBXGroup; 200 | children = ( 201 | ); 202 | name = Frameworks; 203 | sourceTree = ""; 204 | }; 205 | /* End PBXGroup section */ 206 | 207 | /* Begin PBXNativeTarget section */ 208 | 1479F39C26636B29003EC36B /* SampleWatchApp */ = { 209 | isa = PBXNativeTarget; 210 | buildConfigurationList = 1479F3CA26636B2D003EC36B /* Build configuration list for PBXNativeTarget "SampleWatchApp" */; 211 | buildPhases = ( 212 | 1479F39B26636B29003EC36B /* Resources */, 213 | 1479F3C926636B2D003EC36B /* Embed Watch Content */, 214 | ); 215 | buildRules = ( 216 | ); 217 | dependencies = ( 218 | 1479F3A326636B29003EC36B /* PBXTargetDependency */, 219 | ); 220 | name = SampleWatchApp; 221 | productName = SampleWatchApp; 222 | productReference = 1479F39D26636B29003EC36B /* SampleWatchApp.app */; 223 | productType = "com.apple.product-type.application.watchapp2-container"; 224 | }; 225 | 1479F39F26636B29003EC36B /* SampleWatchApp WatchKit App */ = { 226 | isa = PBXNativeTarget; 227 | buildConfigurationList = 1479F3C626636B2D003EC36B /* Build configuration list for PBXNativeTarget "SampleWatchApp WatchKit App" */; 228 | buildPhases = ( 229 | 1479F39E26636B29003EC36B /* Resources */, 230 | 1479F3C526636B2D003EC36B /* Embed App Extensions */, 231 | ); 232 | buildRules = ( 233 | ); 234 | dependencies = ( 235 | 1479F3B226636B2B003EC36B /* PBXTargetDependency */, 236 | ); 237 | name = "SampleWatchApp WatchKit App"; 238 | productName = "SampleWatchApp WatchKit App"; 239 | productReference = 1479F3A026636B29003EC36B /* SampleWatchApp WatchKit App.app */; 240 | productType = "com.apple.product-type.application.watchapp2"; 241 | }; 242 | 1479F3AE26636B2B003EC36B /* SampleWatchApp WatchKit Extension */ = { 243 | isa = PBXNativeTarget; 244 | buildConfigurationList = 1479F3C226636B2D003EC36B /* Build configuration list for PBXNativeTarget "SampleWatchApp WatchKit Extension" */; 245 | buildPhases = ( 246 | 1479F3AB26636B2B003EC36B /* Sources */, 247 | 1479F3AC26636B2B003EC36B /* Frameworks */, 248 | 1479F3AD26636B2B003EC36B /* Resources */, 249 | ); 250 | buildRules = ( 251 | ); 252 | dependencies = ( 253 | ); 254 | name = "SampleWatchApp WatchKit Extension"; 255 | packageProductDependencies = ( 256 | 1479F3CD26636C60003EC36B /* LocalizedDeviceModel */, 257 | ); 258 | productName = "SampleWatchApp WatchKit Extension"; 259 | productReference = 1479F3AF26636B2B003EC36B /* SampleWatchApp WatchKit Extension.appex */; 260 | productType = "com.apple.product-type.watchkit2-extension"; 261 | }; 262 | 14F7EE792523712B005D7C21 /* SampleApp */ = { 263 | isa = PBXNativeTarget; 264 | buildConfigurationList = 14F7EE8E2523712B005D7C21 /* Build configuration list for PBXNativeTarget "SampleApp" */; 265 | buildPhases = ( 266 | 14F7EE762523712B005D7C21 /* Sources */, 267 | 14F7EE772523712B005D7C21 /* Frameworks */, 268 | 14F7EE782523712B005D7C21 /* Resources */, 269 | ); 270 | buildRules = ( 271 | ); 272 | dependencies = ( 273 | ); 274 | name = SampleApp; 275 | packageProductDependencies = ( 276 | 14005CB325237503006A911E /* LocalizedDeviceModel */, 277 | ); 278 | productName = SampleApp; 279 | productReference = 14F7EE7A2523712B005D7C21 /* SampleApp.app */; 280 | productType = "com.apple.product-type.application"; 281 | }; 282 | /* End PBXNativeTarget section */ 283 | 284 | /* Begin PBXProject section */ 285 | 14F7EE722523712B005D7C21 /* Project object */ = { 286 | isa = PBXProject; 287 | attributes = { 288 | LastSwiftUpdateCheck = 1250; 289 | LastUpgradeCheck = 1330; 290 | TargetAttributes = { 291 | 1479F39C26636B29003EC36B = { 292 | CreatedOnToolsVersion = 12.5; 293 | }; 294 | 1479F39F26636B29003EC36B = { 295 | CreatedOnToolsVersion = 12.5; 296 | }; 297 | 1479F3AE26636B2B003EC36B = { 298 | CreatedOnToolsVersion = 12.5; 299 | }; 300 | 14F7EE792523712B005D7C21 = { 301 | CreatedOnToolsVersion = 12.0; 302 | LastSwiftMigration = 1200; 303 | }; 304 | }; 305 | }; 306 | buildConfigurationList = 14F7EE752523712B005D7C21 /* Build configuration list for PBXProject "SampleApp" */; 307 | compatibilityVersion = "Xcode 9.3"; 308 | developmentRegion = en; 309 | hasScannedForEncodings = 0; 310 | knownRegions = ( 311 | en, 312 | Base, 313 | fr, 314 | es, 315 | it, 316 | ru, 317 | "zh-Hans", 318 | de, 319 | pt, 320 | ); 321 | mainGroup = 14F7EE712523712B005D7C21; 322 | productRefGroup = 14F7EE7B2523712B005D7C21 /* Products */; 323 | projectDirPath = ""; 324 | projectRoot = ""; 325 | targets = ( 326 | 14F7EE792523712B005D7C21 /* SampleApp */, 327 | 1479F39C26636B29003EC36B /* SampleWatchApp */, 328 | 1479F39F26636B29003EC36B /* SampleWatchApp WatchKit App */, 329 | 1479F3AE26636B2B003EC36B /* SampleWatchApp WatchKit Extension */, 330 | ); 331 | }; 332 | /* End PBXProject section */ 333 | 334 | /* Begin PBXResourcesBuildPhase section */ 335 | 1479F39B26636B29003EC36B /* Resources */ = { 336 | isa = PBXResourcesBuildPhase; 337 | buildActionMask = 2147483647; 338 | files = ( 339 | ); 340 | runOnlyForDeploymentPostprocessing = 0; 341 | }; 342 | 1479F39E26636B29003EC36B /* Resources */ = { 343 | isa = PBXResourcesBuildPhase; 344 | buildActionMask = 2147483647; 345 | files = ( 346 | 1479F3A926636B2B003EC36B /* Assets.xcassets in Resources */, 347 | 1479F3A726636B29003EC36B /* Interface.storyboard in Resources */, 348 | ); 349 | runOnlyForDeploymentPostprocessing = 0; 350 | }; 351 | 1479F3AD26636B2B003EC36B /* Resources */ = { 352 | isa = PBXResourcesBuildPhase; 353 | buildActionMask = 2147483647; 354 | files = ( 355 | 1479F3C026636B2D003EC36B /* Preview Assets.xcassets in Resources */, 356 | 1479F3BD26636B2D003EC36B /* Assets.xcassets in Resources */, 357 | ); 358 | runOnlyForDeploymentPostprocessing = 0; 359 | }; 360 | 14F7EE782523712B005D7C21 /* Resources */ = { 361 | isa = PBXResourcesBuildPhase; 362 | buildActionMask = 2147483647; 363 | files = ( 364 | 14F7EECB252371DC005D7C21 /* LaunchScreen.storyboard in Resources */, 365 | 14F7EE952523717A005D7C21 /* Assets.xcassets in Resources */, 366 | 14F7EECC252371DC005D7C21 /* Main.storyboard in Resources */, 367 | 14F7EECD252371DC005D7C21 /* InfoPlist.strings in Resources */, 368 | ); 369 | runOnlyForDeploymentPostprocessing = 0; 370 | }; 371 | /* End PBXResourcesBuildPhase section */ 372 | 373 | /* Begin PBXSourcesBuildPhase section */ 374 | 1479F3AB26636B2B003EC36B /* Sources */ = { 375 | isa = PBXSourcesBuildPhase; 376 | buildActionMask = 2147483647; 377 | files = ( 378 | 1479F3B726636B2B003EC36B /* ContentView.swift in Sources */, 379 | 1479F3B526636B2B003EC36B /* HostingController.swift in Sources */, 380 | 1479F3B926636B2B003EC36B /* ExtensionDelegate.swift in Sources */, 381 | ); 382 | runOnlyForDeploymentPostprocessing = 0; 383 | }; 384 | 14F7EE762523712B005D7C21 /* Sources */ = { 385 | isa = PBXSourcesBuildPhase; 386 | buildActionMask = 2147483647; 387 | files = ( 388 | 14005CB725237524006A911E /* AppDelegate.swift in Sources */, 389 | 14F7EE9825237194005D7C21 /* ViewController.swift in Sources */, 390 | ); 391 | runOnlyForDeploymentPostprocessing = 0; 392 | }; 393 | /* End PBXSourcesBuildPhase section */ 394 | 395 | /* Begin PBXTargetDependency section */ 396 | 1479F3A326636B29003EC36B /* PBXTargetDependency */ = { 397 | isa = PBXTargetDependency; 398 | target = 1479F39F26636B29003EC36B /* SampleWatchApp WatchKit App */; 399 | targetProxy = 1479F3A226636B29003EC36B /* PBXContainerItemProxy */; 400 | }; 401 | 1479F3B226636B2B003EC36B /* PBXTargetDependency */ = { 402 | isa = PBXTargetDependency; 403 | target = 1479F3AE26636B2B003EC36B /* SampleWatchApp WatchKit Extension */; 404 | targetProxy = 1479F3B126636B2B003EC36B /* PBXContainerItemProxy */; 405 | }; 406 | /* End PBXTargetDependency section */ 407 | 408 | /* Begin PBXVariantGroup section */ 409 | 1479F3A526636B29003EC36B /* Interface.storyboard */ = { 410 | isa = PBXVariantGroup; 411 | children = ( 412 | 1479F3A626636B29003EC36B /* Base */, 413 | ); 414 | name = Interface.storyboard; 415 | sourceTree = ""; 416 | }; 417 | 14F7EEC5252371DC005D7C21 /* LaunchScreen.storyboard */ = { 418 | isa = PBXVariantGroup; 419 | children = ( 420 | 14F7EEC6252371DC005D7C21 /* Base */, 421 | ); 422 | name = LaunchScreen.storyboard; 423 | sourceTree = ""; 424 | }; 425 | 14F7EEC7252371DC005D7C21 /* Main.storyboard */ = { 426 | isa = PBXVariantGroup; 427 | children = ( 428 | 14F7EEC8252371DC005D7C21 /* Base */, 429 | ); 430 | name = Main.storyboard; 431 | sourceTree = ""; 432 | }; 433 | 14F7EEC9252371DC005D7C21 /* InfoPlist.strings */ = { 434 | isa = PBXVariantGroup; 435 | children = ( 436 | 14F7EECA252371DC005D7C21 /* Base */, 437 | 14F7EECF252371F0005D7C21 /* de */, 438 | 14F7EED0252371F0005D7C21 /* zh-Hans */, 439 | 14F7EED1252371F0005D7C21 /* it */, 440 | 14F7EED2252371F0005D7C21 /* pt */, 441 | 14F7EED3252371F0005D7C21 /* ru */, 442 | 14F7EED4252371F0005D7C21 /* fr */, 443 | 14F7EED5252371F0005D7C21 /* es */, 444 | ); 445 | name = InfoPlist.strings; 446 | sourceTree = ""; 447 | }; 448 | /* End PBXVariantGroup section */ 449 | 450 | /* Begin XCBuildConfiguration section */ 451 | 1479F3C326636B2D003EC36B /* Debug */ = { 452 | isa = XCBuildConfiguration; 453 | buildSettings = { 454 | ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; 455 | CODE_SIGN_STYLE = Automatic; 456 | DEVELOPMENT_ASSET_PATHS = "\"SampleWatchApp WatchKit Extension/Preview Content\""; 457 | ENABLE_PREVIEWS = YES; 458 | INFOPLIST_FILE = "SampleWatchApp WatchKit Extension/Info.plist"; 459 | LD_RUNPATH_SEARCH_PATHS = ( 460 | "$(inherited)", 461 | "@executable_path/Frameworks", 462 | "@executable_path/../../Frameworks", 463 | ); 464 | PRODUCT_BUNDLE_IDENTIFIER = com.bddq.SampleWatchApp.watchkitapp.watchkitextension; 465 | PRODUCT_NAME = "${TARGET_NAME}"; 466 | SDKROOT = watchos; 467 | SKIP_INSTALL = YES; 468 | SWIFT_VERSION = 5.0; 469 | TARGETED_DEVICE_FAMILY = 4; 470 | }; 471 | name = Debug; 472 | }; 473 | 1479F3C426636B2D003EC36B /* Release */ = { 474 | isa = XCBuildConfiguration; 475 | buildSettings = { 476 | ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; 477 | CODE_SIGN_STYLE = Automatic; 478 | DEVELOPMENT_ASSET_PATHS = "\"SampleWatchApp WatchKit Extension/Preview Content\""; 479 | ENABLE_PREVIEWS = YES; 480 | INFOPLIST_FILE = "SampleWatchApp WatchKit Extension/Info.plist"; 481 | LD_RUNPATH_SEARCH_PATHS = ( 482 | "$(inherited)", 483 | "@executable_path/Frameworks", 484 | "@executable_path/../../Frameworks", 485 | ); 486 | PRODUCT_BUNDLE_IDENTIFIER = com.bddq.SampleWatchApp.watchkitapp.watchkitextension; 487 | PRODUCT_NAME = "${TARGET_NAME}"; 488 | SDKROOT = watchos; 489 | SKIP_INSTALL = YES; 490 | SWIFT_VERSION = 5.0; 491 | TARGETED_DEVICE_FAMILY = 4; 492 | }; 493 | name = Release; 494 | }; 495 | 1479F3C726636B2D003EC36B /* Debug */ = { 496 | isa = XCBuildConfiguration; 497 | buildSettings = { 498 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 499 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 500 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 501 | CODE_SIGN_STYLE = Automatic; 502 | IBSC_MODULE = SampleWatchApp_WatchKit_Extension; 503 | INFOPLIST_FILE = "SampleWatchApp WatchKit App/Info.plist"; 504 | PRODUCT_BUNDLE_IDENTIFIER = com.bddq.SampleWatchApp.watchkitapp; 505 | PRODUCT_NAME = "$(TARGET_NAME)"; 506 | SDKROOT = watchos; 507 | SKIP_INSTALL = YES; 508 | SWIFT_VERSION = 5.0; 509 | TARGETED_DEVICE_FAMILY = 4; 510 | }; 511 | name = Debug; 512 | }; 513 | 1479F3C826636B2D003EC36B /* Release */ = { 514 | isa = XCBuildConfiguration; 515 | buildSettings = { 516 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 517 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 518 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 519 | CODE_SIGN_STYLE = Automatic; 520 | IBSC_MODULE = SampleWatchApp_WatchKit_Extension; 521 | INFOPLIST_FILE = "SampleWatchApp WatchKit App/Info.plist"; 522 | PRODUCT_BUNDLE_IDENTIFIER = com.bddq.SampleWatchApp.watchkitapp; 523 | PRODUCT_NAME = "$(TARGET_NAME)"; 524 | SDKROOT = watchos; 525 | SKIP_INSTALL = YES; 526 | SWIFT_VERSION = 5.0; 527 | TARGETED_DEVICE_FAMILY = 4; 528 | }; 529 | name = Release; 530 | }; 531 | 1479F3CB26636B2D003EC36B /* Debug */ = { 532 | isa = XCBuildConfiguration; 533 | buildSettings = { 534 | CODE_SIGN_STYLE = Automatic; 535 | CURRENT_PROJECT_VERSION = 1; 536 | MARKETING_VERSION = 1.0; 537 | PRODUCT_BUNDLE_IDENTIFIER = com.bddq.SampleWatchApp; 538 | PRODUCT_NAME = "$(TARGET_NAME)"; 539 | SWIFT_VERSION = 5.0; 540 | }; 541 | name = Debug; 542 | }; 543 | 1479F3CC26636B2D003EC36B /* Release */ = { 544 | isa = XCBuildConfiguration; 545 | buildSettings = { 546 | CODE_SIGN_STYLE = Automatic; 547 | CURRENT_PROJECT_VERSION = 1; 548 | MARKETING_VERSION = 1.0; 549 | PRODUCT_BUNDLE_IDENTIFIER = com.bddq.SampleWatchApp; 550 | PRODUCT_NAME = "$(TARGET_NAME)"; 551 | SWIFT_VERSION = 5.0; 552 | }; 553 | name = Release; 554 | }; 555 | 14F7EE8C2523712B005D7C21 /* Debug */ = { 556 | isa = XCBuildConfiguration; 557 | buildSettings = { 558 | ALWAYS_SEARCH_USER_PATHS = NO; 559 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 560 | CLANG_ANALYZER_NONNULL = YES; 561 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 562 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 563 | CLANG_CXX_LIBRARY = "libc++"; 564 | CLANG_ENABLE_MODULES = YES; 565 | CLANG_ENABLE_OBJC_ARC = YES; 566 | CLANG_ENABLE_OBJC_WEAK = YES; 567 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 568 | CLANG_WARN_BOOL_CONVERSION = YES; 569 | CLANG_WARN_COMMA = YES; 570 | CLANG_WARN_CONSTANT_CONVERSION = YES; 571 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 572 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 573 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 574 | CLANG_WARN_EMPTY_BODY = YES; 575 | CLANG_WARN_ENUM_CONVERSION = YES; 576 | CLANG_WARN_INFINITE_RECURSION = YES; 577 | CLANG_WARN_INT_CONVERSION = YES; 578 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 579 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 580 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 581 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 582 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 583 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 584 | CLANG_WARN_STRICT_PROTOTYPES = YES; 585 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 586 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 587 | CLANG_WARN_UNREACHABLE_CODE = YES; 588 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 589 | COPY_PHASE_STRIP = NO; 590 | DEBUG_INFORMATION_FORMAT = dwarf; 591 | ENABLE_STRICT_OBJC_MSGSEND = YES; 592 | ENABLE_TESTABILITY = YES; 593 | GCC_C_LANGUAGE_STANDARD = gnu11; 594 | GCC_DYNAMIC_NO_PIC = NO; 595 | GCC_NO_COMMON_BLOCKS = YES; 596 | GCC_OPTIMIZATION_LEVEL = 0; 597 | GCC_PREPROCESSOR_DEFINITIONS = ( 598 | "DEBUG=1", 599 | "$(inherited)", 600 | ); 601 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 602 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 603 | GCC_WARN_UNDECLARED_SELECTOR = YES; 604 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 605 | GCC_WARN_UNUSED_FUNCTION = YES; 606 | GCC_WARN_UNUSED_VARIABLE = YES; 607 | IPHONEOS_DEPLOYMENT_TARGET = 12.0; 608 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 609 | MTL_FAST_MATH = YES; 610 | ONLY_ACTIVE_ARCH = YES; 611 | SDKROOT = iphoneos; 612 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 613 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 614 | TVOS_DEPLOYMENT_TARGET = 12.0; 615 | WATCHOS_DEPLOYMENT_TARGET = 6.0; 616 | }; 617 | name = Debug; 618 | }; 619 | 14F7EE8D2523712B005D7C21 /* Release */ = { 620 | isa = XCBuildConfiguration; 621 | buildSettings = { 622 | ALWAYS_SEARCH_USER_PATHS = NO; 623 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 624 | CLANG_ANALYZER_NONNULL = YES; 625 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 626 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 627 | CLANG_CXX_LIBRARY = "libc++"; 628 | CLANG_ENABLE_MODULES = YES; 629 | CLANG_ENABLE_OBJC_ARC = YES; 630 | CLANG_ENABLE_OBJC_WEAK = YES; 631 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 632 | CLANG_WARN_BOOL_CONVERSION = YES; 633 | CLANG_WARN_COMMA = YES; 634 | CLANG_WARN_CONSTANT_CONVERSION = YES; 635 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 636 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 637 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 638 | CLANG_WARN_EMPTY_BODY = YES; 639 | CLANG_WARN_ENUM_CONVERSION = YES; 640 | CLANG_WARN_INFINITE_RECURSION = YES; 641 | CLANG_WARN_INT_CONVERSION = YES; 642 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 643 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 644 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 645 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 646 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 647 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 648 | CLANG_WARN_STRICT_PROTOTYPES = YES; 649 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 650 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 651 | CLANG_WARN_UNREACHABLE_CODE = YES; 652 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 653 | COPY_PHASE_STRIP = NO; 654 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 655 | ENABLE_NS_ASSERTIONS = NO; 656 | ENABLE_STRICT_OBJC_MSGSEND = YES; 657 | GCC_C_LANGUAGE_STANDARD = gnu11; 658 | GCC_NO_COMMON_BLOCKS = YES; 659 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 660 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 661 | GCC_WARN_UNDECLARED_SELECTOR = YES; 662 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 663 | GCC_WARN_UNUSED_FUNCTION = YES; 664 | GCC_WARN_UNUSED_VARIABLE = YES; 665 | IPHONEOS_DEPLOYMENT_TARGET = 12.0; 666 | MTL_ENABLE_DEBUG_INFO = NO; 667 | MTL_FAST_MATH = YES; 668 | SDKROOT = iphoneos; 669 | SWIFT_COMPILATION_MODE = wholemodule; 670 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 671 | TVOS_DEPLOYMENT_TARGET = 12.0; 672 | VALIDATE_PRODUCT = YES; 673 | WATCHOS_DEPLOYMENT_TARGET = 6.0; 674 | }; 675 | name = Release; 676 | }; 677 | 14F7EE8F2523712B005D7C21 /* Debug */ = { 678 | isa = XCBuildConfiguration; 679 | buildSettings = { 680 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 681 | CLANG_ENABLE_MODULES = YES; 682 | CODE_SIGN_STYLE = Manual; 683 | DEVELOPMENT_TEAM = ""; 684 | ENABLE_PREVIEWS = YES; 685 | INFOPLIST_FILE = SampleApp/Info.plist; 686 | LD_RUNPATH_SEARCH_PATHS = ( 687 | "$(inherited)", 688 | "@executable_path/Frameworks", 689 | ); 690 | PRODUCT_BUNDLE_IDENTIFIER = com.bddq.SampleApp; 691 | PRODUCT_NAME = "$(TARGET_NAME)"; 692 | PROVISIONING_PROFILE_SPECIFIER = ""; 693 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 694 | SWIFT_VERSION = 5.0; 695 | TARGETED_DEVICE_FAMILY = "1,2"; 696 | }; 697 | name = Debug; 698 | }; 699 | 14F7EE902523712B005D7C21 /* Release */ = { 700 | isa = XCBuildConfiguration; 701 | buildSettings = { 702 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 703 | CLANG_ENABLE_MODULES = YES; 704 | CODE_SIGN_STYLE = Manual; 705 | DEVELOPMENT_TEAM = ""; 706 | ENABLE_PREVIEWS = YES; 707 | INFOPLIST_FILE = SampleApp/Info.plist; 708 | LD_RUNPATH_SEARCH_PATHS = ( 709 | "$(inherited)", 710 | "@executable_path/Frameworks", 711 | ); 712 | PRODUCT_BUNDLE_IDENTIFIER = com.bddq.SampleApp; 713 | PRODUCT_NAME = "$(TARGET_NAME)"; 714 | PROVISIONING_PROFILE_SPECIFIER = ""; 715 | SWIFT_VERSION = 5.0; 716 | TARGETED_DEVICE_FAMILY = "1,2"; 717 | }; 718 | name = Release; 719 | }; 720 | /* End XCBuildConfiguration section */ 721 | 722 | /* Begin XCConfigurationList section */ 723 | 1479F3C226636B2D003EC36B /* Build configuration list for PBXNativeTarget "SampleWatchApp WatchKit Extension" */ = { 724 | isa = XCConfigurationList; 725 | buildConfigurations = ( 726 | 1479F3C326636B2D003EC36B /* Debug */, 727 | 1479F3C426636B2D003EC36B /* Release */, 728 | ); 729 | defaultConfigurationIsVisible = 0; 730 | defaultConfigurationName = Release; 731 | }; 732 | 1479F3C626636B2D003EC36B /* Build configuration list for PBXNativeTarget "SampleWatchApp WatchKit App" */ = { 733 | isa = XCConfigurationList; 734 | buildConfigurations = ( 735 | 1479F3C726636B2D003EC36B /* Debug */, 736 | 1479F3C826636B2D003EC36B /* Release */, 737 | ); 738 | defaultConfigurationIsVisible = 0; 739 | defaultConfigurationName = Release; 740 | }; 741 | 1479F3CA26636B2D003EC36B /* Build configuration list for PBXNativeTarget "SampleWatchApp" */ = { 742 | isa = XCConfigurationList; 743 | buildConfigurations = ( 744 | 1479F3CB26636B2D003EC36B /* Debug */, 745 | 1479F3CC26636B2D003EC36B /* Release */, 746 | ); 747 | defaultConfigurationIsVisible = 0; 748 | defaultConfigurationName = Release; 749 | }; 750 | 14F7EE752523712B005D7C21 /* Build configuration list for PBXProject "SampleApp" */ = { 751 | isa = XCConfigurationList; 752 | buildConfigurations = ( 753 | 14F7EE8C2523712B005D7C21 /* Debug */, 754 | 14F7EE8D2523712B005D7C21 /* Release */, 755 | ); 756 | defaultConfigurationIsVisible = 0; 757 | defaultConfigurationName = Release; 758 | }; 759 | 14F7EE8E2523712B005D7C21 /* Build configuration list for PBXNativeTarget "SampleApp" */ = { 760 | isa = XCConfigurationList; 761 | buildConfigurations = ( 762 | 14F7EE8F2523712B005D7C21 /* Debug */, 763 | 14F7EE902523712B005D7C21 /* Release */, 764 | ); 765 | defaultConfigurationIsVisible = 0; 766 | defaultConfigurationName = Release; 767 | }; 768 | /* End XCConfigurationList section */ 769 | 770 | /* Begin XCSwiftPackageProductDependency section */ 771 | 14005CB325237503006A911E /* LocalizedDeviceModel */ = { 772 | isa = XCSwiftPackageProductDependency; 773 | productName = LocalizedDeviceModel; 774 | }; 775 | 1479F3CD26636C60003EC36B /* LocalizedDeviceModel */ = { 776 | isa = XCSwiftPackageProductDependency; 777 | productName = LocalizedDeviceModel; 778 | }; 779 | /* End XCSwiftPackageProductDependency section */ 780 | }; 781 | rootObject = 14F7EE722523712B005D7C21 /* Project object */; 782 | } 783 | -------------------------------------------------------------------------------- /Samples/SampleApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Samples/SampleApp.xcodeproj/xcshareddata/xcschemes/SampleApp.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 44 | 46 | 52 | 53 | 54 | 55 | 61 | 63 | 69 | 70 | 71 | 72 | 74 | 75 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /Samples/SampleApp.xcodeproj/xcshareddata/xcschemes/SampleWatchApp WatchKit App.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 46 | 47 | 57 | 61 | 67 | 68 | 69 | 70 | 76 | 80 | 86 | 87 | 88 | 89 | 95 | 96 | 97 | 98 | 100 | 101 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /Samples/SampleApp/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // SampleApp 4 | // 5 | // Created by Benoit Deldicque on 03/09/2018. 6 | // Copyright © 2018 Benoit Deldicque. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | var window: UIWindow? 14 | 15 | func application(_: UIApplication, didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 16 | // Override point for customization after application launch. 17 | true 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon020@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon020@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon029@2x.png", 19 | "scale" : "2x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon029@3x.png", 25 | "scale" : "3x" 26 | }, 27 | { 28 | "size" : "40x40", 29 | "idiom" : "iphone", 30 | "filename" : "Icon040@2x.png", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon040@3x.png", 37 | "scale" : "3x" 38 | }, 39 | { 40 | "size" : "60x60", 41 | "idiom" : "iphone", 42 | "filename" : "Icon060@2x.png", 43 | "scale" : "2x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "Icon060@3x.png", 49 | "scale" : "3x" 50 | }, 51 | { 52 | "size" : "20x20", 53 | "idiom" : "ipad", 54 | "filename" : "Icon020.png", 55 | "scale" : "1x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "Icon020@2x.png", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "size" : "29x29", 65 | "idiom" : "ipad", 66 | "filename" : "Icon029.png", 67 | "scale" : "1x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "Icon029@2x.png", 73 | "scale" : "2x" 74 | }, 75 | { 76 | "size" : "40x40", 77 | "idiom" : "ipad", 78 | "filename" : "Icon040.png", 79 | "scale" : "1x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "Icon040@2x.png", 85 | "scale" : "2x" 86 | }, 87 | { 88 | "size" : "76x76", 89 | "idiom" : "ipad", 90 | "filename" : "Icon076.png", 91 | "scale" : "1x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "Icon076@2x.png", 97 | "scale" : "2x" 98 | }, 99 | { 100 | "size" : "83.5x83.5", 101 | "idiom" : "ipad", 102 | "filename" : "Icon083@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "1024x1024", 107 | "idiom" : "ios-marketing", 108 | "filename" : "Icon512@2x.png", 109 | "scale" : "1x" 110 | } 111 | ], 112 | "info" : { 113 | "version" : 1, 114 | "author" : "xcode" 115 | }, 116 | "properties" : { 117 | "pre-rendered" : true 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon020.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon020@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon020@2x.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon020@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon020@3x.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon029.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon029.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon029@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon029@2x.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon029@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon029@3x.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon040.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon040.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon040@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon040@2x.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon040@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon040@3x.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon060@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon060@2x.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon060@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon060@3x.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon076.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon076.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon076@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon076@2x.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon083@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon083@2x.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon512@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleApp/Assets.xcassets/AppIcon.appiconset/Icon512@2x.png -------------------------------------------------------------------------------- /Samples/SampleApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Samples/SampleApp/Base.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 29/09/2020. 6 | Copyright © 2020 Benoit Deldicque. All rights reserved. 7 | */ 8 | -------------------------------------------------------------------------------- /Samples/SampleApp/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Samples/SampleApp/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 28 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /Samples/SampleApp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | My Device 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /Samples/SampleApp/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // SampleApp 4 | // 5 | // Created by Benoit Deldicque on 03/09/2018. 6 | // Copyright © 2018 Benoit Deldicque. All rights reserved. 7 | // 8 | 9 | import LocalizedDeviceModel 10 | import UIKit 11 | 12 | class ViewController: UIViewController { 13 | @IBOutlet var label: UILabel! 14 | @IBOutlet var label2: UILabel! 15 | 16 | override func viewDidLoad() { 17 | super.viewDidLoad() 18 | // Do any additional setup after loading the view, typically from a nib. 19 | label.text = UIDevice.current.localizedProductName 20 | label2.text = UIDevice.current.productName 21 | } 22 | 23 | override func didReceiveMemoryWarning() { 24 | super.didReceiveMemoryWarning() 25 | // Dispose of any resources that can be recreated. 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Samples/SampleApp/de.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 29/09/2020. 6 | Copyright © 2020 Benoit Deldicque. All rights reserved. 7 | */ 8 | -------------------------------------------------------------------------------- /Samples/SampleApp/es.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 29/09/2020. 6 | Copyright © 2020 Benoit Deldicque. All rights reserved. 7 | */ 8 | -------------------------------------------------------------------------------- /Samples/SampleApp/fr.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 29/09/2020. 6 | Copyright © 2020 Benoit Deldicque. All rights reserved. 7 | */ 8 | -------------------------------------------------------------------------------- /Samples/SampleApp/it.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 29/09/2020. 6 | Copyright © 2020 Benoit Deldicque. All rights reserved. 7 | */ 8 | -------------------------------------------------------------------------------- /Samples/SampleApp/pt.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 29/09/2020. 6 | Copyright © 2020 Benoit Deldicque. All rights reserved. 7 | */ 8 | -------------------------------------------------------------------------------- /Samples/SampleApp/ru.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 29/09/2020. 6 | Copyright © 2020 Benoit Deldicque. All rights reserved. 7 | */ 8 | -------------------------------------------------------------------------------- /Samples/SampleApp/zh-Hans.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 29/09/2020. 6 | Copyright © 2020 Benoit Deldicque. All rights reserved. 7 | */ 8 | -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Icon024@2x.png", 5 | "idiom" : "watch", 6 | "role" : "notificationCenter", 7 | "scale" : "2x", 8 | "size" : "24x24", 9 | "subtype" : "38mm" 10 | }, 11 | { 12 | "filename" : "Icon027.5@2x.png", 13 | "idiom" : "watch", 14 | "role" : "notificationCenter", 15 | "scale" : "2x", 16 | "size" : "27.5x27.5", 17 | "subtype" : "42mm" 18 | }, 19 | { 20 | "filename" : "Icon029@2x.png", 21 | "idiom" : "watch", 22 | "role" : "companionSettings", 23 | "scale" : "2x", 24 | "size" : "29x29" 25 | }, 26 | { 27 | "filename" : "Icon029@3x.png", 28 | "idiom" : "watch", 29 | "role" : "companionSettings", 30 | "scale" : "3x", 31 | "size" : "29x29" 32 | }, 33 | { 34 | "filename" : "Icon040@2x.png", 35 | "idiom" : "watch", 36 | "role" : "appLauncher", 37 | "scale" : "2x", 38 | "size" : "40x40", 39 | "subtype" : "38mm" 40 | }, 41 | { 42 | "filename" : "Icon044@2x.png", 43 | "idiom" : "watch", 44 | "role" : "appLauncher", 45 | "scale" : "2x", 46 | "size" : "44x44", 47 | "subtype" : "40mm" 48 | }, 49 | { 50 | "filename" : "Icon050@2x.png", 51 | "idiom" : "watch", 52 | "role" : "appLauncher", 53 | "scale" : "2x", 54 | "size" : "50x50", 55 | "subtype" : "44mm" 56 | }, 57 | { 58 | "filename" : "Icon086@2x.png", 59 | "idiom" : "watch", 60 | "role" : "quickLook", 61 | "scale" : "2x", 62 | "size" : "86x86", 63 | "subtype" : "38mm" 64 | }, 65 | { 66 | "filename" : "Icon098@2x.png", 67 | "idiom" : "watch", 68 | "role" : "quickLook", 69 | "scale" : "2x", 70 | "size" : "98x98", 71 | "subtype" : "42mm" 72 | }, 73 | { 74 | "filename" : "Icon108@2x.png", 75 | "idiom" : "watch", 76 | "role" : "quickLook", 77 | "scale" : "2x", 78 | "size" : "108x108", 79 | "subtype" : "44mm" 80 | }, 81 | { 82 | "filename" : "Icon512@2x.png", 83 | "idiom" : "watch-marketing", 84 | "scale" : "1x", 85 | "size" : "1024x1024" 86 | } 87 | ], 88 | "info" : { 89 | "author" : "xcode", 90 | "version" : 1 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon024@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon024@2x.png -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon027.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon027.5@2x.png -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon029@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon029@2x.png -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon029@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon029@3x.png -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon040@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon040@2x.png -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon044@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon044@2x.png -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon050@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon050@2x.png -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon086@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon086@2x.png -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon098@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon098@2x.png -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon108@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon108@2x.png -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon512@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bixcorp/BDLocalizedDevicesModels/13fb16b6b97e1370c92510e860569a8b410fd7da/Samples/SampleWatchApp WatchKit App/Assets.xcassets/AppIcon.appiconset/Icon512@2x.png -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Base.lproj/Interface.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit App/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | SampleWatchApp WatchKit App 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | UISupportedInterfaceOrientations 24 | 25 | UIInterfaceOrientationPortrait 26 | UIInterfaceOrientationPortraitUpsideDown 27 | 28 | WKWatchKitApp 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit Extension/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit Extension/ContentView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContentView.swift 3 | // SampleWatchApp WatchKit Extension 4 | // 5 | // Created by Benoit Deldicque on 30/05/2021. 6 | // 7 | 8 | import LocalizedDeviceModel 9 | import SwiftUI 10 | 11 | struct ContentView: View { 12 | var body: some View { 13 | Text(WKInterfaceDevice.current().localizedProductName) 14 | .font(.body) 15 | .multilineTextAlignment(.center) 16 | .lineLimit(2) 17 | .padding() 18 | Text(WKInterfaceDevice.current().productName) 19 | .font(.footnote) 20 | .foregroundColor(Color.gray) 21 | .multilineTextAlignment(.center) 22 | .lineLimit(2) 23 | .padding() 24 | } 25 | } 26 | 27 | struct ContentView_Previews: PreviewProvider { 28 | static var previews: some View { 29 | ContentView() 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit Extension/ExtensionDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ExtensionDelegate.swift 3 | // SampleWatchApp WatchKit Extension 4 | // 5 | // Created by Benoit Deldicque on 30/05/2021. 6 | // 7 | 8 | import WatchKit 9 | 10 | class ExtensionDelegate: NSObject, WKExtensionDelegate { 11 | func applicationDidFinishLaunching() { 12 | // Perform any final initialization of your application. 13 | } 14 | 15 | func applicationDidBecomeActive() { 16 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 17 | } 18 | 19 | func applicationWillResignActive() { 20 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 21 | // Use this method to pause ongoing tasks, disable timers, etc. 22 | } 23 | 24 | func handle(_ backgroundTasks: Set) { 25 | // Sent when the system needs to launch the application in the background to process tasks. Tasks arrive in a set, so loop through and process each one. 26 | for task in backgroundTasks { 27 | // Use a switch statement to check the task type 28 | switch task { 29 | case let backgroundTask as WKApplicationRefreshBackgroundTask: 30 | // Be sure to complete the background task once you’re done. 31 | backgroundTask.setTaskCompletedWithSnapshot(false) 32 | case let snapshotTask as WKSnapshotRefreshBackgroundTask: 33 | // Snapshot tasks have a unique completion call, make sure to set your expiration date 34 | snapshotTask.setTaskCompleted(restoredDefaultState: true, estimatedSnapshotExpiration: Date.distantFuture, userInfo: nil) 35 | case let connectivityTask as WKWatchConnectivityRefreshBackgroundTask: 36 | // Be sure to complete the connectivity task once you’re done. 37 | connectivityTask.setTaskCompletedWithSnapshot(false) 38 | case let urlSessionTask as WKURLSessionRefreshBackgroundTask: 39 | // Be sure to complete the URL session task once you’re done. 40 | urlSessionTask.setTaskCompletedWithSnapshot(false) 41 | case let relevantShortcutTask as WKRelevantShortcutRefreshBackgroundTask: 42 | // Be sure to complete the relevant-shortcut task once you're done. 43 | relevantShortcutTask.setTaskCompletedWithSnapshot(false) 44 | case let intentDidRunTask as WKIntentDidRunRefreshBackgroundTask: 45 | // Be sure to complete the intent-did-run task once you're done. 46 | intentDidRunTask.setTaskCompletedWithSnapshot(false) 47 | default: 48 | // make sure to complete unhandled task types 49 | task.setTaskCompletedWithSnapshot(false) 50 | } 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit Extension/HostingController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HostingController.swift 3 | // SampleWatchApp WatchKit Extension 4 | // 5 | // Created by Benoit Deldicque on 30/05/2021. 6 | // 7 | 8 | import Foundation 9 | import SwiftUI 10 | import WatchKit 11 | 12 | class HostingController: WKHostingController { 13 | override var body: ContentView { 14 | ContentView() 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit Extension/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | SampleWatchApp WatchKit Extension 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | NSExtension 24 | 25 | NSExtensionAttributes 26 | 27 | WKAppBundleIdentifier 28 | com.bddq.SampleWatchApp.watchkitapp 29 | 30 | NSExtensionPointIdentifier 31 | com.apple.watchkit 32 | 33 | WKExtensionDelegateClassName 34 | $(PRODUCT_MODULE_NAME).ExtensionDelegate 35 | WKWatchOnly 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Samples/SampleWatchApp WatchKit Extension/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/Documentation.docc/Extensions.md: -------------------------------------------------------------------------------- 1 | # App Framework extensions 2 | 3 | Use with native app frameworks such as UIKit. 4 | 5 | ## UIKit extension 6 | Localized product name 7 | ```swift 8 | UIDevice.current.localizedProductName 9 | ``` 10 | 11 | English product name 12 | ```swift 13 | UIDevice.current.productName 14 | ``` 15 | 16 | ## WatchKit extension 17 | Localized product name 18 | ```swift 19 | WKInterfaceDevice.current().localizedProductName 20 | ``` 21 | 22 | English product name 23 | ```swift 24 | WKInterfaceDevice.current().productName 25 | ``` 26 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/Documentation.docc/LocalizedDeviceModel.md: -------------------------------------------------------------------------------- 1 | # ``LocalizedDeviceModel`` 2 | 3 | Apple product names localized. 4 | 5 | ## Usage 6 | > Important: To use a localization included in the package, the app using the package must support this localization. 7 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/Extensions/UIDevice+LocalizedModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIDevice+LocalizedModel.swift 3 | // BDLocalizedDevicesModels 4 | // 5 | // Created by Benoit Deldicque on 06/05/2022. 6 | // Copyright © 2022 Benoit Deldicque. All rights reserved. 7 | // 8 | 9 | #if os(tvOS) || os(iOS) 10 | import UIKit 11 | 12 | public extension UIDevice { 13 | /// The product name of the device. 14 | @objc var productName: String { 15 | LocalizedDeviceModel.productName 16 | } 17 | 18 | /// The product name of the device as a localized string. 19 | @objc var localizedProductName: String { 20 | LocalizedDeviceModel.localizedProductName 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/Extensions/WKInterfaceDevice+LocalizedModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WKInterfaceDevice+LocalizedModel.swift 3 | // BDLocalizedDevicesModels 4 | // 5 | // Created by Benoit Deldicque on 06/05/2022. 6 | // Copyright © 2022 Benoit Deldicque. All rights reserved. 7 | // 8 | 9 | #if os(watchOS) 10 | import WatchKit 11 | 12 | public extension WKInterfaceDevice { 13 | /// The product name of the device. 14 | @objc var productName: String { 15 | LocalizedDeviceModel.productName 16 | } 17 | 18 | /// The product name of the device as a localized string. 19 | @objc var localizedProductName: String { 20 | LocalizedDeviceModel.localizedProductName 21 | } 22 | } 23 | #endif 24 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/LocalizedModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LocalizedModel.swift 3 | // BDLocalizedDevicesModels 4 | // 5 | // Created by Benoit Deldicque on 26/06/2018. 6 | // Copyright © 2018 Benoit Deldicque. All rights reserved. 7 | // 8 | 9 | #if !os(macOS) 10 | import Foundation 11 | 12 | var deviceTypeIdentifier: String { 13 | // Check if device is a simulator to get the right machine identifier. 14 | if let machine = ProcessInfo().environment["SIMULATOR_MODEL_IDENTIFIER"] { 15 | return machine 16 | } else { 17 | var size = 0 18 | sysctlbyname("hw.machine", nil, &size, nil, 0) 19 | var machine = [CChar](repeating: 0, count: size) 20 | sysctlbyname("hw.machine", &machine, &size, nil, 0) 21 | 22 | return String(cString: machine) 23 | } 24 | } 25 | 26 | // MARK: - 27 | 28 | /// The product name of the device. 29 | /// 30 | /// If no English localization is found, the product identifier will be returned. 31 | public var productName: String { 32 | // Retrieve english bundle. 33 | guard let englishPath = Bundle.module.path(forResource: "en", ofType: "lproj") else { 34 | return deviceTypeIdentifier // Fallback on device identifier. 35 | } 36 | 37 | guard let englishBundle = Bundle(path: englishPath) else { 38 | return deviceTypeIdentifier // Fallback on device identifier. 39 | } 40 | 41 | return NSLocalizedString(deviceTypeIdentifier, tableName: "DeviceModel", 42 | bundle: englishBundle, value: deviceTypeIdentifier, comment: "") 43 | } 44 | 45 | /// The product name of the device as a localized string. 46 | /// 47 | /// If no localization is found, the product identifier will be returned. 48 | public var localizedProductName: String { 49 | NSLocalizedString(deviceTypeIdentifier, tableName: "DeviceModel", 50 | bundle: Bundle.module, value: deviceTypeIdentifier, comment: "") 51 | } 52 | #endif 53 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/Resources/de.lproj/DeviceModel.strings: -------------------------------------------------------------------------------- 1 | /* 2 | DeviceModel.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 06/10/2017. 6 | Copyright © 2017 Benoit Deldicque. All rights reserved. 7 | */ 8 | 9 | // MARK: iPhone models 10 | "iPhone1,1" = "iPhone 2G"; 11 | "iPhone1,2" = "iPhone 3G"; 12 | "iPhone2,1" = "iPhone 3GS"; 13 | "iPhone3,1" = "iPhone 4"; 14 | "iPhone3,2" = "iPhone 4"; 15 | "iPhone3,3" = "iPhone 4"; 16 | "iPhone4,1" = "iPhone 4S"; 17 | "iPhone5,1" = "iPhone 5"; 18 | "iPhone5,2" = "iPhone 5"; 19 | "iPhone5,3" = "iPhone 5c"; 20 | "iPhone5,4" = "iPhone 5c"; 21 | "iPhone6,1" = "iPhone 5s"; 22 | "iPhone6,2" = "iPhone 5s"; 23 | "iPhone7,1" = "iPhone 6 Plus"; 24 | "iPhone7,2" = "iPhone 6"; 25 | "iPhone8,2" = "iPhone 6s Plus"; 26 | "iPhone8,1" = "iPhone 6s"; 27 | "iPhone8,4" = "iPhone SE"; 28 | "iPhone9,1" = "iPhone 7"; 29 | "iPhone9,2" = "iPhone 7 Plus"; 30 | "iPhone9,3" = "iPhone 7"; 31 | "iPhone9,4" = "iPhone 7 Plus"; 32 | "iPhone10,1" = "iPhone 8"; 33 | "iPhone10,2" = "iPhone 8 Plus"; 34 | "iPhone10,3" = "iPhone X"; 35 | "iPhone10,4" = "iPhone 8"; 36 | "iPhone10,5" = "iPhone 8 Plus"; 37 | "iPhone10,6" = "iPhone X"; 38 | "iPhone11,2" = "iPhone XS"; 39 | "iPhone11,4" = "iPhone XS Max"; 40 | "iPhone11,6" = "iPhone XS Max"; 41 | "iPhone11,8" = "iPhone XR"; 42 | "iPhone12,1" = "iPhone 11"; 43 | "iPhone12,3" = "iPhone 11 Pro"; 44 | "iPhone12,5" = "iPhone 11 Pro Max"; 45 | "iPhone12,8" = "iPhone SE (2. Generation)"; 46 | "iPhone13,1" = "iPhone 12 mini"; 47 | "iPhone13,2" = "iPhone 12"; 48 | "iPhone13,3" = "iPhone 12 Pro"; 49 | "iPhone13,4" = "iPhone 12 Pro Max"; 50 | "iPhone14,2" = "iPhone 13 Pro"; 51 | "iPhone14,3" = "iPhone 13 Pro Max"; 52 | "iPhone14,4" = "iPhone 13 mini"; 53 | "iPhone14,5" = "iPhone 13"; 54 | "iPhone14,6" = "iPhone SE (3. Generation)"; 55 | "iPhone14,7" = "iPhone 14"; 56 | "iPhone14,8" = "iPhone 14 Plus"; 57 | "iPhone15,2" = "iPhone 14 Pro"; 58 | "iPhone15,3" = "iPhone 14 Pro Max"; 59 | "iPhone15,4" = "iPhone 15"; 60 | "iPhone15,5" = "iPhone 15 Plus"; 61 | "iPhone16,1" = "iPhone 15 Pro"; 62 | "iPhone16,2" = "iPhone 15 Pro Max"; 63 | "iPhone17,1" = "iPhone 16 Pro"; 64 | "iPhone17,2" = "iPhone 16 Pro Max"; 65 | "iPhone17,3" = "iPhone 16"; 66 | "iPhone17,4" = "iPhone 16 Plus"; 67 | "iPhone17,5" = "iPhone 16e"; 68 | 69 | 70 | // MARK: iPod touch models 71 | "iPod1,1" = "iPod touch"; 72 | "iPod2,1" = "iPod touch (2. Generation)"; 73 | "iPod3,1" = "iPod touch (3. Generation)"; 74 | "iPod4,1" = "iPod touch (4. Generation)"; 75 | "iPod5,1" = "iPod touch (5. Generation)"; 76 | "iPod7,1" = "iPod touch (6. Generation)"; 77 | "iPod9,1" = "iPod touch (7. Generation)"; 78 | 79 | 80 | // MARK: iPad models 81 | "iPad1,1" = "iPad"; 82 | "iPad1,2" = "iPad"; 83 | "iPad2,1" = "iPad 2"; 84 | "iPad2,2" = "iPad 2"; 85 | "iPad2,3" = "iPad 2"; 86 | "iPad2,4" = "iPad 2"; 87 | "iPad2,5" = "iPad mini"; 88 | "iPad2,6" = "iPad mini"; 89 | "iPad2,7" = "iPad mini"; 90 | "iPad3,1" = "iPad (3. Generation)"; 91 | "iPad3,2" = "iPad (3. Generation)"; 92 | "iPad3,3" = "iPad (3. Generation)"; 93 | "iPad3,4" = "iPad (4. Generation)"; 94 | "iPad3,5" = "iPad (4. Generation)"; 95 | "iPad3,6" = "iPad (4. Generation)"; 96 | "iPad4,1" = "iPad Air"; 97 | "iPad4,2" = "iPad Air"; 98 | "iPad4,3" = "iPad Air"; 99 | "iPad4,4" = "iPad mini 2"; 100 | "iPad4,5" = "iPad mini 2"; 101 | "iPad4,6" = "iPad mini 2"; 102 | "iPad4,7" = "iPad mini 3"; 103 | "iPad4,8" = "iPad mini 3"; 104 | "iPad4,9" = "iPad mini 3"; 105 | "iPad5,1" = "iPad mini 4"; 106 | "iPad5,2" = "iPad mini 4"; 107 | "iPad5,3" = "iPad Air 2"; 108 | "iPad5,4" = "iPad Air 2"; 109 | "iPad6,3" = "iPad Pro (9,7\")"; 110 | "iPad6,4" = "iPad Pro (9,7\")"; 111 | "iPad6,7" = "iPad Pro (12,9\")"; 112 | "iPad6,8" = "iPad Pro (12,9\")"; 113 | "iPad6,11" = "iPad (5. Generation)"; 114 | "iPad6,12" = "iPad (5. Generation)"; 115 | "iPad7,1" = "iPad Pro (12,9\", 2. Generation)"; 116 | "iPad7,2" = "iPad Pro (12,9\", 2. Generation)"; 117 | "iPad7,3" = "iPad Pro (10,5\")"; 118 | "iPad7,4" = "iPad Pro (10,5\")"; 119 | "iPad7,5" = "iPad (6. Generation)"; 120 | "iPad7,6" = "iPad (6. Generation)"; 121 | "iPad7,11" = "iPad (7. Generation)"; 122 | "iPad7,12" = "iPad (7. Generation)"; 123 | "iPad8,1" = "iPad Pro (11\")"; 124 | "iPad8,2" = "iPad Pro (11\")"; 125 | "iPad8,3" = "iPad Pro (11\")"; 126 | "iPad8,4" = "iPad Pro (11\")"; 127 | "iPad8,5" = "iPad Pro (12,9\", 3. Generation)"; 128 | "iPad8,6" = "iPad Pro (12,9\", 3. Generation)"; 129 | "iPad8,7" = "iPad Pro (12,9\", 3. Generation)"; 130 | "iPad8,8" = "iPad Pro (12,9\", 3. Generation)"; 131 | "iPad8,9" = "iPad Pro (11\", 2. Generation)"; 132 | "iPad8,10" = "iPad Pro (11\", 2. Generation)"; 133 | "iPad8,11" = "iPad Pro (12,9\", 4. Generation)"; 134 | "iPad8,12" = "iPad Pro (12,9\", 4. Generation)"; 135 | "iPad11,1" = "iPad mini (5. Generation)"; 136 | "iPad11,2" = "iPad mini (5. Generation)"; 137 | "iPad11,3" = "iPad Air (3. Generation)"; 138 | "iPad11,4" = "iPad Air (3. Generation)"; 139 | "iPad11,6" = "iPad (8. Generation)"; 140 | "iPad11,7" = "iPad (8. Generation)"; 141 | "iPad12,1" = "iPad (9. Generation)"; 142 | "iPad12,2" = "iPad (9. Generation)"; 143 | "iPad13,1" = "iPad Air (4. Generation)"; 144 | "iPad13,2" = "iPad Air (4. Generation)"; 145 | "iPad13,4" = "iPad Pro (11\", 3. Generation)"; 146 | "iPad13,5" = "iPad Pro (11\", 3. Generation)"; 147 | "iPad13,6" = "iPad Pro (11\", 3. Generation)"; 148 | "iPad13,7" = "iPad Pro (11\", 3. Generation)"; 149 | "iPad13,8" = "iPad Pro (12,9\", 5. Generation)"; 150 | "iPad13,9" = "iPad Pro (12,9\", 5. Generation)"; 151 | "iPad13,10" = "iPad Pro (12,9\", 5. Generation)"; 152 | "iPad13,11" = "iPad Pro (12,9\", 5. Generation)"; 153 | "iPad13,16" = "iPad Air (5. Generation)"; 154 | "iPad13,17" = "iPad Air (5. Generation)"; 155 | "iPad13,18" = "iPad (10. Generation)"; 156 | "iPad13,19" = "iPad (10. Generation)"; 157 | "iPad14,1" = "iPad mini (6. Generation)"; 158 | "iPad14,2" = "iPad mini (6. Generation)"; 159 | "iPad14,3" = "iPad Pro 11\" (4. Generation)"; 160 | "iPad14,4" = "iPad Pro 11\" (4. Generation)"; 161 | "iPad14,5" = "iPad Pro 12,9\" (6. Generation)"; 162 | "iPad14,6" = "iPad Pro 12,9\" (6. Generation)"; 163 | "iPad14,8" = "iPad Air 11\" (M2)"; 164 | "iPad14,9" = "iPad Air 11\" (M2)"; 165 | "iPad14,10" = "iPad Air 13\" (M2)"; 166 | "iPad14,11" = "iPad Air 13\" (M2)"; 167 | "iPad15,3" = "iPad Air 11\" (M3)"; 168 | "iPad15,4" = "iPad Air 11\" (M3)"; 169 | "iPad15,5" = "iPad Air 13\" (M3)"; 170 | "iPad15,6" = "iPad Air 13\" (M3)"; 171 | "iPad15,7" = "iPad (A16)"; 172 | "iPad15,8" = "iPad (A16)"; 173 | "iPad16,1" = "iPad mini (A17 Pro)"; 174 | "iPad16,2" = "iPad mini (A17 Pro)"; 175 | "iPad16,3" = "iPad Pro 11\" (M4)"; 176 | "iPad16,4" = "iPad Pro 11\" (M4)"; 177 | "iPad16,5" = "iPad Pro 13\" (M4)"; 178 | "iPad16,6" = "iPad Pro 13\" (M4)"; 179 | 180 | 181 | // MARK: Apple TV models 182 | "AppleTV1,1" = "Apple TV (1. Generation)"; 183 | "AppleTV2,1" = "Apple TV (2. Generation)"; 184 | "AppleTV3,1" = "Apple TV (3. Generation)"; 185 | "AppleTV3,2" = "Apple TV (3. Generation)"; 186 | "AppleTV5,3" = "Apple TV HD"; 187 | "AppleTV6,2" = "Apple TV 4K"; 188 | "AppleTV11,1" = "Apple TV 4K (2. Generation)"; 189 | "AppleTV14,1" = "Apple TV 4K (3. Generation)"; 190 | 191 | 192 | // MARK: Apple Watch models 193 | "Watch1,1" = "Apple Watch (1. Generation)"; 194 | "Watch1,2" = "Apple Watch (2. Generation)"; 195 | "Watch2,3" = "Apple Watch Series 2"; 196 | "Watch2,4" = "Apple Watch Series 2"; 197 | "Watch2,6" = "Apple Watch Series 1"; 198 | "Watch2,7" = "Apple Watch Series 1"; 199 | "Watch3,1" = "Apple Watch Series 3"; 200 | "Watch3,2" = "Apple Watch Series 3"; 201 | "Watch3,3" = "Apple Watch Series 3"; 202 | "Watch3,4" = "Apple Watch Series 3"; 203 | "Watch4,1" = "Apple Watch Series 4"; 204 | "Watch4,2" = "Apple Watch Series 4"; 205 | "Watch4,3" = "Apple Watch Series 4"; 206 | "Watch4,4" = "Apple Watch Series 4"; 207 | "Watch5,1" = "Apple Watch Series 5"; 208 | "Watch5,2" = "Apple Watch Series 5"; 209 | "Watch5,3" = "Apple Watch Series 5"; 210 | "Watch5,4" = "Apple Watch Series 5"; 211 | "Watch5,9" = "Apple Watch SE (1. Generation)"; 212 | "Watch5,10" = "Apple Watch SE (1. Generation)"; 213 | "Watch5,11" = "Apple Watch SE (1. Generation)"; 214 | "Watch5,12" = "Apple Watch SE (1. Generation)"; 215 | "Watch6,1" = "Apple Watch Series 6"; 216 | "Watch6,2" = "Apple Watch Series 6"; 217 | "Watch6,3" = "Apple Watch Series 6"; 218 | "Watch6,4" = "Apple Watch Series 6"; 219 | "Watch6,6" = "Apple Watch Series 7"; 220 | "Watch6,7" = "Apple Watch Series 7"; 221 | "Watch6,8" = "Apple Watch Series 7"; 222 | "Watch6,9" = "Apple Watch Series 7"; 223 | "Watch6,10" = "Apple Watch SE"; 224 | "Watch6,11" = "Apple Watch SE"; 225 | "Watch6,12" = "Apple Watch SE"; 226 | "Watch6,13" = "Apple Watch SE"; 227 | "Watch6,14" = "Apple Watch Series 8"; 228 | "Watch6,15" = "Apple Watch Series 8"; 229 | "Watch6,16" = "Apple Watch Series 8"; 230 | "Watch6,17" = "Apple Watch Series 8"; 231 | "Watch6,18" = "Apple Watch Ultra"; 232 | "Watch7,1" = "Apple Watch Series 9"; 233 | "Watch7,2" = "Apple Watch Series 9"; 234 | "Watch7,3" = "Apple Watch Series 9"; 235 | "Watch7,4" = "Apple Watch Series 9"; 236 | "Watch7,5" = "Apple Watch Ultra 2"; 237 | "Watch7,8" = "Apple Watch Series 10"; 238 | "Watch7,9" = "Apple Watch Series 10"; 239 | "Watch7,10" = "Apple Watch Series 10"; 240 | "Watch7,11" = "Apple Watch Series 10"; 241 | 242 | 243 | // MARK: Developer models 244 | "i386" = "Simulatore"; 245 | "x86_64" = "Simulatore"; 246 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/Resources/en.lproj/DeviceModel.strings: -------------------------------------------------------------------------------- 1 | /* 2 | DeviceModel.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 02/10/2017. 6 | Copyright © 2017 Benoit Deldicque. All rights reserved. 7 | */ 8 | 9 | // MARK: iPhone models 10 | "iPhone1,1" = "iPhone 2G"; 11 | "iPhone1,2" = "iPhone 3G"; 12 | "iPhone2,1" = "iPhone 3GS"; 13 | "iPhone3,1" = "iPhone 4"; 14 | "iPhone3,2" = "iPhone 4"; 15 | "iPhone3,3" = "iPhone 4"; 16 | "iPhone4,1" = "iPhone 4S"; 17 | "iPhone5,1" = "iPhone 5"; 18 | "iPhone5,2" = "iPhone 5"; 19 | "iPhone5,3" = "iPhone 5c"; 20 | "iPhone5,4" = "iPhone 5c"; 21 | "iPhone6,1" = "iPhone 5s"; 22 | "iPhone6,2" = "iPhone 5s"; 23 | "iPhone7,1" = "iPhone 6 Plus"; 24 | "iPhone7,2" = "iPhone 6"; 25 | "iPhone8,2" = "iPhone 6s Plus"; 26 | "iPhone8,1" = "iPhone 6s"; 27 | "iPhone8,4" = "iPhone SE"; 28 | "iPhone9,1" = "iPhone 7"; 29 | "iPhone9,2" = "iPhone 7 Plus"; 30 | "iPhone9,3" = "iPhone 7"; 31 | "iPhone9,4" = "iPhone 7 Plus"; 32 | "iPhone10,1" = "iPhone 8"; 33 | "iPhone10,2" = "iPhone 8 Plus"; 34 | "iPhone10,3" = "iPhone X"; 35 | "iPhone10,4" = "iPhone 8"; 36 | "iPhone10,5" = "iPhone 8 Plus"; 37 | "iPhone10,6" = "iPhone X"; 38 | "iPhone11,2" = "iPhone XS"; 39 | "iPhone11,4" = "iPhone XS Max"; 40 | "iPhone11,6" = "iPhone XS Max"; 41 | "iPhone11,8" = "iPhone XR"; 42 | "iPhone12,1" = "iPhone 11"; 43 | "iPhone12,3" = "iPhone 11 Pro"; 44 | "iPhone12,5" = "iPhone 11 Pro Max"; 45 | "iPhone12,8" = "iPhone SE (2nd generation)"; 46 | "iPhone13,1" = "iPhone 12 mini"; 47 | "iPhone13,2" = "iPhone 12"; 48 | "iPhone13,3" = "iPhone 12 Pro"; 49 | "iPhone13,4" = "iPhone 12 Pro Max"; 50 | "iPhone14,2" = "iPhone 13 Pro"; 51 | "iPhone14,3" = "iPhone 13 Pro Max"; 52 | "iPhone14,4" = "iPhone 13 mini"; 53 | "iPhone14,5" = "iPhone 13"; 54 | "iPhone14,6" = "iPhone SE (3rd generation)"; 55 | "iPhone14,7" = "iPhone 14"; 56 | "iPhone14,8" = "iPhone 14 Plus"; 57 | "iPhone15,2" = "iPhone 14 Pro"; 58 | "iPhone15,3" = "iPhone 14 Pro Max"; 59 | "iPhone15,4" = "iPhone 15"; 60 | "iPhone15,5" = "iPhone 15 Plus"; 61 | "iPhone16,1" = "iPhone 15 Pro"; 62 | "iPhone16,2" = "iPhone 15 Pro Max"; 63 | "iPhone17,1" = "iPhone 16 Pro"; 64 | "iPhone17,2" = "iPhone 16 Pro Max"; 65 | "iPhone17,3" = "iPhone 16"; 66 | "iPhone17,4" = "iPhone 16 Plus"; 67 | "iPhone17,5" = "iPhone 16e"; 68 | 69 | 70 | // MARK: iPod touch models 71 | "iPod1,1" = "iPod touch"; 72 | "iPod2,1" = "iPod touch (2nd generation)"; 73 | "iPod3,1" = "iPod touch (3rd generation)"; 74 | "iPod4,1" = "iPod touch (4th generation)"; 75 | "iPod5,1" = "iPod touch (5th generation)"; 76 | "iPod7,1" = "iPod touch (6th generation)"; 77 | "iPod9,1" = "iPod touch (7th generation)"; 78 | 79 | 80 | // MARK: iPad models 81 | "iPad1,1" = "iPad"; 82 | "iPad1,2" = "iPad"; 83 | "iPad2,1" = "iPad 2"; 84 | "iPad2,2" = "iPad 2"; 85 | "iPad2,3" = "iPad 2"; 86 | "iPad2,4" = "iPad 2"; 87 | "iPad2,5" = "iPad mini"; 88 | "iPad2,6" = "iPad mini"; 89 | "iPad2,7" = "iPad mini"; 90 | "iPad3,1" = "iPad (3rd generation)"; 91 | "iPad3,2" = "iPad (3rd generation)"; 92 | "iPad3,3" = "iPad (3rd generation)"; 93 | "iPad3,4" = "iPad (4th generation)"; 94 | "iPad3,5" = "iPad (4th generation)"; 95 | "iPad3,6" = "iPad (4th generation)"; 96 | "iPad4,1" = "iPad Air"; 97 | "iPad4,2" = "iPad Air"; 98 | "iPad4,3" = "iPad Air"; 99 | "iPad4,4" = "iPad mini 2"; 100 | "iPad4,5" = "iPad mini 2"; 101 | "iPad4,6" = "iPad mini 2"; 102 | "iPad4,7" = "iPad mini 3"; 103 | "iPad4,8" = "iPad mini 3"; 104 | "iPad4,9" = "iPad mini 3"; 105 | "iPad5,1" = "iPad mini 4"; 106 | "iPad5,2" = "iPad mini 4"; 107 | "iPad5,3" = "iPad Air 2"; 108 | "iPad5,4" = "iPad Air 2"; 109 | "iPad6,3" = "iPad Pro (9.7-inch)"; 110 | "iPad6,4" = "iPad Pro (9.7-inch)"; 111 | "iPad6,7" = "iPad Pro (12.9-inch)"; 112 | "iPad6,8" = "iPad Pro (12.9-inch)"; 113 | "iPad6,11" = "iPad (5th generation)"; 114 | "iPad6,12" = "iPad (5th generation)"; 115 | "iPad7,1" = "iPad Pro 12.9-inch (2nd generation)"; 116 | "iPad7,2" = "iPad Pro 12.9-inch (2nd generation)"; 117 | "iPad7,3" = "iPad Pro (10.5-inch)"; 118 | "iPad7,4" = "iPad Pro (10.5-inch)"; 119 | "iPad7,5" = "iPad (6th generation)"; 120 | "iPad7,6" = "iPad (6th generation)"; 121 | "iPad7,11" = "iPad (7th generation)"; 122 | "iPad7,12" = "iPad (7th generation)"; 123 | "iPad8,1" = "iPad Pro (11-inch)"; 124 | "iPad8,2" = "iPad Pro (11-inch)"; 125 | "iPad8,3" = "iPad Pro (11-inch)"; 126 | "iPad8,4" = "iPad Pro (11-inch)"; 127 | "iPad8,5" = "iPad Pro 12.9-inch (3rd generation)"; 128 | "iPad8,6" = "iPad Pro 12.9-inch (3rd generation)"; 129 | "iPad8,7" = "iPad Pro 12.9-inch (3rd generation)"; 130 | "iPad8,8" = "iPad Pro 12.9-inch (3rd generation)"; 131 | "iPad8,9" = "iPad Pro 11-inch (2nd generation)"; 132 | "iPad8,10" = "iPad Pro 11-inch (2nd generation)"; 133 | "iPad8,11" = "iPad Pro 12.9-inch (4th generation)"; 134 | "iPad8,12" = "iPad Pro 12.9-inch (4th generation)"; 135 | "iPad11,1" = "iPad mini (5th generation)"; 136 | "iPad11,2" = "iPad mini (5th generation)"; 137 | "iPad11,3" = "iPad Air (3rd generation)"; 138 | "iPad11,4" = "iPad Air (3rd generation)"; 139 | "iPad11,6" = "iPad (8th generation)"; 140 | "iPad11,7" = "iPad (8th generation)"; 141 | "iPad12,1" = "iPad (9th generation)"; 142 | "iPad12,2" = "iPad (9th generation)"; 143 | "iPad13,1" = "iPad Air (4th generation)"; 144 | "iPad13,2" = "iPad Air (4th generation)"; 145 | "iPad13,4" = "iPad Pro 11-inch (3rd generation)"; 146 | "iPad13,5" = "iPad Pro 11-inch (3rd generation)"; 147 | "iPad13,6" = "iPad Pro 11-inch (3rd generation)"; 148 | "iPad13,7" = "iPad Pro 11-inch (3rd generation)"; 149 | "iPad13,8" = "iPad Pro 12.9-inch (5th generation)"; 150 | "iPad13,9" = "iPad Pro 12.9-inch (5th generation)"; 151 | "iPad13,10" = "iPad Pro 12.9-inch (5th generation)"; 152 | "iPad13,11" = "iPad Pro 12.9-inch (5th generation)"; 153 | "iPad13,16" = "iPad Air (5th generation)"; 154 | "iPad13,17" = "iPad Air (5th generation)"; 155 | "iPad13,18" = "iPad (10th generation)"; 156 | "iPad13,19" = "iPad (10th generation)"; 157 | "iPad14,1" = "iPad mini (6th generation)"; 158 | "iPad14,2" = "iPad mini (6th generation)"; 159 | "iPad14,3" = "iPad Pro 11-inch (4th generation)"; 160 | "iPad14,4" = "iPad Pro 11-inch (4th generation)"; 161 | "iPad14,5" = "iPad Pro 12.9-inch (6th generation)"; 162 | "iPad14,6" = "iPad Pro 12.9-inch (6th generation)"; 163 | "iPad14,8" = "iPad Air 11-inch (M2)"; 164 | "iPad14,9" = "iPad Air 11-inch (M2)"; 165 | "iPad14,10" = "iPad Air 13-inch (M2)"; 166 | "iPad14,11" = "iPad Air 13-inch (M2)"; 167 | "iPad15,3" = "iPad Air 11-inch (M3)"; 168 | "iPad15,4" = "iPad Air 11-inch (M3)"; 169 | "iPad15,5" = "iPad Air 13-inch (M3)"; 170 | "iPad15,6" = "iPad Air 13-inch (M3)"; 171 | "iPad15,7" = "iPad (A16)"; 172 | "iPad15,8" = "iPad (A16)"; 173 | "iPad16,1" = "iPad mini (A17 Pro)"; 174 | "iPad16,2" = "iPad mini (A17 Pro)"; 175 | "iPad16,3" = "iPad Pro 11-inch (M4)"; 176 | "iPad16,4" = "iPad Pro 11-inch (M4)"; 177 | "iPad16,5" = "iPad Pro 13-inch (M4)"; 178 | "iPad16,6" = "iPad Pro 13-inch (M4)"; 179 | 180 | 181 | // MARK: Apple TV models 182 | "AppleTV1,1" = "Apple TV (1st generation)"; 183 | "AppleTV2,1" = "Apple TV (2nd generation)"; 184 | "AppleTV3,1" = "Apple TV (3rd generation)"; 185 | "AppleTV3,2" = "Apple TV (3rd generation)"; 186 | "AppleTV5,3" = "Apple TV HD"; 187 | "AppleTV6,2" = "Apple TV 4K"; 188 | "AppleTV11,1" = "Apple TV 4K (2nd generation)"; 189 | "AppleTV14,1" = "Apple TV 4K (3rd generation)"; 190 | 191 | 192 | // MARK: Apple Watch models 193 | "Watch1,1" = "Apple Watch (1st generation)"; 194 | "Watch1,2" = "Apple Watch (2nd generation)"; 195 | "Watch2,3" = "Apple Watch Series 2"; 196 | "Watch2,4" = "Apple Watch Series 2"; 197 | "Watch2,6" = "Apple Watch Series 1"; 198 | "Watch2,7" = "Apple Watch Series 1"; 199 | "Watch3,1" = "Apple Watch Series 3"; 200 | "Watch3,2" = "Apple Watch Series 3"; 201 | "Watch3,3" = "Apple Watch Series 3"; 202 | "Watch3,4" = "Apple Watch Series 3"; 203 | "Watch4,1" = "Apple Watch Series 4"; 204 | "Watch4,2" = "Apple Watch Series 4"; 205 | "Watch4,3" = "Apple Watch Series 4"; 206 | "Watch4,4" = "Apple Watch Series 4"; 207 | "Watch5,1" = "Apple Watch Series 5"; 208 | "Watch5,2" = "Apple Watch Series 5"; 209 | "Watch5,3" = "Apple Watch Series 5"; 210 | "Watch5,4" = "Apple Watch Series 5"; 211 | "Watch5,9" = "Apple Watch SE (1st generation)"; 212 | "Watch5,10" = "Apple Watch SE (1st generation)"; 213 | "Watch5,11" = "Apple Watch SE (1st generation)"; 214 | "Watch5,12" = "Apple Watch SE (1st generation)"; 215 | "Watch6,1" = "Apple Watch Series 6"; 216 | "Watch6,2" = "Apple Watch Series 6"; 217 | "Watch6,3" = "Apple Watch Series 6"; 218 | "Watch6,4" = "Apple Watch Series 6"; 219 | "Watch6,6" = "Apple Watch Series 7"; 220 | "Watch6,7" = "Apple Watch Series 7"; 221 | "Watch6,8" = "Apple Watch Series 7"; 222 | "Watch6,9" = "Apple Watch Series 7"; 223 | "Watch6,10" = "Apple Watch SE"; 224 | "Watch6,11" = "Apple Watch SE"; 225 | "Watch6,12" = "Apple Watch SE"; 226 | "Watch6,13" = "Apple Watch SE"; 227 | "Watch6,14" = "Apple Watch Series 8"; 228 | "Watch6,15" = "Apple Watch Series 8"; 229 | "Watch6,16" = "Apple Watch Series 8"; 230 | "Watch6,17" = "Apple Watch Series 8"; 231 | "Watch6,18" = "Apple Watch Ultra"; 232 | "Watch7,1" = "Apple Watch Series 9"; 233 | "Watch7,2" = "Apple Watch Series 9"; 234 | "Watch7,3" = "Apple Watch Series 9"; 235 | "Watch7,4" = "Apple Watch Series 9"; 236 | "Watch7,5" = "Apple Watch Ultra 2"; 237 | "Watch7,8" = "Apple Watch Series 10"; 238 | "Watch7,9" = "Apple Watch Series 10"; 239 | "Watch7,10" = "Apple Watch Series 10"; 240 | "Watch7,11" = "Apple Watch Series 10"; 241 | 242 | 243 | // MARK: Developer models 244 | "i386" = "Simulator"; 245 | "x86_64" = "Simulator"; 246 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/Resources/es.lproj/DeviceModel.strings: -------------------------------------------------------------------------------- 1 | /* 2 | DeviceModel.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 02/10/2017. 6 | Copyright © 2017 Benoit Deldicque. All rights reserved. 7 | */ 8 | 9 | // MARK: iPhone models 10 | "iPhone1,1" = "iPhone 2G"; 11 | "iPhone1,2" = "iPhone 3G"; 12 | "iPhone2,1" = "iPhone 3GS"; 13 | "iPhone3,1" = "iPhone 4"; 14 | "iPhone3,2" = "iPhone 4"; 15 | "iPhone3,3" = "iPhone 4"; 16 | "iPhone4,1" = "iPhone 4S"; 17 | "iPhone5,1" = "iPhone 5"; 18 | "iPhone5,2" = "iPhone 5"; 19 | "iPhone5,3" = "iPhone 5c"; 20 | "iPhone5,4" = "iPhone 5c"; 21 | "iPhone6,1" = "iPhone 5s"; 22 | "iPhone6,2" = "iPhone 5s"; 23 | "iPhone7,1" = "iPhone 6 Plus"; 24 | "iPhone7,2" = "iPhone 6"; 25 | "iPhone8,2" = "iPhone 6s Plus"; 26 | "iPhone8,1" = "iPhone 6s"; 27 | "iPhone8,4" = "iPhone SE"; 28 | "iPhone9,1" = "iPhone 7"; 29 | "iPhone9,2" = "iPhone 7 Plus"; 30 | "iPhone9,3" = "iPhone 7"; 31 | "iPhone9,4" = "iPhone 7 Plus"; 32 | "iPhone10,1" = "iPhone 8"; 33 | "iPhone10,2" = "iPhone 8 Plus"; 34 | "iPhone10,3" = "iPhone X"; 35 | "iPhone10,4" = "iPhone 8"; 36 | "iPhone10,5" = "iPhone 8 Plus"; 37 | "iPhone10,6" = "iPhone X"; 38 | "iPhone11,2" = "iPhone XS"; 39 | "iPhone11,4" = "iPhone XS Max"; 40 | "iPhone11,6" = "iPhone XS Max"; 41 | "iPhone11,8" = "iPhone XR"; 42 | "iPhone12,1" = "iPhone 11"; 43 | "iPhone12,3" = "iPhone 11 Pro"; 44 | "iPhone12,5" = "iPhone 11 Pro Max"; 45 | "iPhone12,8" = "iPhone SE (2ª generación)"; 46 | "iPhone13,1" = "iPhone 12 mini"; 47 | "iPhone13,2" = "iPhone 12"; 48 | "iPhone13,3" = "iPhone 12 Pro"; 49 | "iPhone13,4" = "iPhone 12 Pro Max"; 50 | "iPhone14,2" = "iPhone 13 Pro"; 51 | "iPhone14,3" = "iPhone 13 Pro Max"; 52 | "iPhone14,4" = "iPhone 13 mini"; 53 | "iPhone14,5" = "iPhone 13"; 54 | "iPhone14,6" = "iPhone SE (3ª generación)"; 55 | "iPhone14,7" = "iPhone 14"; 56 | "iPhone14,8" = "iPhone 14 Plus"; 57 | "iPhone15,2" = "iPhone 14 Pro"; 58 | "iPhone15,3" = "iPhone 14 Pro Max"; 59 | "iPhone15,4" = "iPhone 15"; 60 | "iPhone15,5" = "iPhone 15 Plus"; 61 | "iPhone16,1" = "iPhone 15 Pro"; 62 | "iPhone16,2" = "iPhone 15 Pro Max"; 63 | "iPhone17,1" = "iPhone 16 Pro"; 64 | "iPhone17,2" = "iPhone 16 Pro Max"; 65 | "iPhone17,3" = "iPhone 16"; 66 | "iPhone17,4" = "iPhone 16 Plus"; 67 | "iPhone17,5" = "iPhone 16e"; 68 | 69 | 70 | // MARK: iPod touch models 71 | "iPod1,1" = "iPod touch"; 72 | "iPod2,1" = "iPod touch (2ª generación)"; 73 | "iPod3,1" = "iPod touch (3ª generación)"; 74 | "iPod4,1" = "iPod touch (4ª generación)"; 75 | "iPod5,1" = "iPod touch (5ª generación)"; 76 | "iPod7,1" = "iPod touch (6ª generación)"; 77 | "iPod9,1" = "iPod touch (7ª generación)"; 78 | 79 | 80 | // MARK: iPad models 81 | "iPad1,1" = "iPad"; 82 | "iPad1,2" = "iPad"; 83 | "iPad2,1" = "iPad 2"; 84 | "iPad2,2" = "iPad 2"; 85 | "iPad2,3" = "iPad 2"; 86 | "iPad2,4" = "iPad 2"; 87 | "iPad2,5" = "iPad mini"; 88 | "iPad2,6" = "iPad mini"; 89 | "iPad2,7" = "iPad mini"; 90 | "iPad3,1" = "iPad (3ª generación)"; 91 | "iPad3,2" = "iPad (3ª generación)"; 92 | "iPad3,3" = "iPad (3ª generación)"; 93 | "iPad3,4" = "iPad (4ª generación)"; 94 | "iPad3,5" = "iPad (4ª generación)"; 95 | "iPad3,6" = "iPad (4ª generación)"; 96 | "iPad4,1" = "iPad Air"; 97 | "iPad4,2" = "iPad Air"; 98 | "iPad4,3" = "iPad Air"; 99 | "iPad4,4" = "iPad mini 2"; 100 | "iPad4,5" = "iPad mini 2"; 101 | "iPad4,6" = "iPad mini 2"; 102 | "iPad4,7" = "iPad mini 3"; 103 | "iPad4,8" = "iPad mini 3"; 104 | "iPad4,9" = "iPad mini 3"; 105 | "iPad5,1" = "iPad mini 4"; 106 | "iPad5,2" = "iPad mini 4"; 107 | "iPad5,3" = "iPad Air 2"; 108 | "iPad5,4" = "iPad Air 2"; 109 | "iPad6,3" = "iPad Pro (9,7 pulgadas)"; 110 | "iPad6,4" = "iPad Pro (9,7 pulgadas)"; 111 | "iPad6,7" = "iPad Pro (12,9 pulgadas)"; 112 | "iPad6,8" = "iPad Pro (12,9 pulgadas)"; 113 | "iPad6,11" = "iPad (5ª generación)"; 114 | "iPad6,12" = "iPad (5ª generación)"; 115 | "iPad7,1" = "iPad Pro 12,9 pulgadas (2ª generación)"; 116 | "iPad7,2" = "iPad Pro 12,9 pulgadas (2ª generación)"; 117 | "iPad7,3" = "iPad Pro (10,5 pulgadas)"; 118 | "iPad7,4" = "iPad Pro (10,5 pulgadas)"; 119 | "iPad7,5" = "iPad (6ª generación)"; 120 | "iPad7,6" = "iPad (6ª generación)"; 121 | "iPad7,11" = "iPad (7ª generación)"; 122 | "iPad7,12" = "iPad (7ª generación)"; 123 | "iPad8,1" = "iPad Pro (11 pulgadas)"; 124 | "iPad8,2" = "iPad Pro (11 pulgadas)"; 125 | "iPad8,3" = "iPad Pro (11 pulgadas)"; 126 | "iPad8,4" = "iPad Pro (11 pulgadas)"; 127 | "iPad8,5" = "iPad Pro 12,9 pulgadas (3ª generación)"; 128 | "iPad8,6" = "iPad Pro 12,9 pulgadas (3ª generación)"; 129 | "iPad8,7" = "iPad Pro 12,9 pulgadas (3ª generación)"; 130 | "iPad8,8" = "iPad Pro 12,9 pulgadas (3ª generación)"; 131 | "iPad8,9" = "iPad Pro 11 pulgadas (2ª generación)"; 132 | "iPad8,10" = "iPad Pro 11 pulgadas (2ª generación)"; 133 | "iPad8,11" = "iPad Pro 12,9 pulgadas (4ª generación)"; 134 | "iPad8,12" = "iPad Pro 12,9 pulgadas (4ª generación)"; 135 | "iPad11,1" = "iPad mini (5ª generación)"; 136 | "iPad11,2" = "iPad mini (5ª generación)"; 137 | "iPad11,3" = "iPad Air (3ª generación)"; 138 | "iPad11,4" = "iPad Air (3ª generación)"; 139 | "iPad11,6" = "iPad (8ª generación)"; 140 | "iPad11,7" = "iPad (8ª generación)"; 141 | "iPad12,1" = "iPad (9ª generación)"; 142 | "iPad12,2" = "iPad (9ª generación)"; 143 | "iPad13,1" = "iPad Air (4ª generación)"; 144 | "iPad13,2" = "iPad Air (4ª generación)"; 145 | "iPad13,4" = "iPad Pro 11 pulgadas (3ª generación)"; 146 | "iPad13,5" = "iPad Pro 11 pulgadas (3ª generación)"; 147 | "iPad13,6" = "iPad Pro 11 pulgadas (3ª generación)"; 148 | "iPad13,7" = "iPad Pro 11 pulgadas (3ª generación)"; 149 | "iPad13,8" = "iPad Pro 12,9 pulgadas (5ª generación)"; 150 | "iPad13,9" = "iPad Pro 12,9 pulgadas (5ª generación)"; 151 | "iPad13,10" = "iPad Pro 12,9 pulgadas (5ª generación)"; 152 | "iPad13,11" = "iPad Pro 12,9 pulgadas (5ª generación)"; 153 | "iPad13,16" = "iPad Air (5ª generación)"; 154 | "iPad13,17" = "iPad Air (5ª generación)"; 155 | "iPad13,18" = "iPad (10ª generación)"; 156 | "iPad13,19" = "iPad (10ª generación)"; 157 | "iPad14,1" = "iPad mini (6ª generación)"; 158 | "iPad14,2" = "iPad mini (6ª generación)"; 159 | "iPad14,3" = "iPad Pro 11 pulgadas (4ª generación)"; 160 | "iPad14,4" = "iPad Pro 11 pulgadas (4ª generación)"; 161 | "iPad14,5" = "iPad Pro 12,9 pulgadas (6ª generación)"; 162 | "iPad14,6" = "iPad Pro 12,9 pulgadas (6ª generación)"; 163 | "iPad14,8" = "iPad Air 11 pulgadas (M2)"; 164 | "iPad14,9" = "iPad Air 11 pulgadas (M2)"; 165 | "iPad14,10" = "iPad Air 13 pulgadas (M2)"; 166 | "iPad14,11" = "iPad Air 13 pulgadas (M2)"; 167 | "iPad15,3" = "iPad Air 11 pulgadas (M3)"; 168 | "iPad15,4" = "iPad Air 11 pulgadas (M3)"; 169 | "iPad15,5" = "iPad Air 13 pulgadas (M3)"; 170 | "iPad15,6" = "iPad Air 13 pulgadas (M3)"; 171 | "iPad15,7" = "iPad (A16)"; 172 | "iPad15,8" = "iPad (A16)"; 173 | "iPad16,1" = "iPad mini (A17 Pro)"; 174 | "iPad16,2" = "iPad mini (A17 Pro)"; 175 | "iPad16,3" = "iPad Pro 11 pulgadas (M4)"; 176 | "iPad16,4" = "iPad Pro 11 pulgadas (M4)"; 177 | "iPad16,5" = "iPad Pro 13 pulgadas (M4)"; 178 | "iPad16,6" = "iPad Pro 13 pulgadas (M4)"; 179 | 180 | 181 | // MARK: Apple TV models 182 | "AppleTV1,1" = "Apple TV (1ª generación)"; 183 | "AppleTV2,1" = "Apple TV (2ª generación)"; 184 | "AppleTV3,1" = "Apple TV (3ª generación)"; 185 | "AppleTV3,2" = "Apple TV (3ª generación)"; 186 | "AppleTV5,3" = "Apple TV HD"; 187 | "AppleTV6,2" = "Apple TV 4K"; 188 | "AppleTV11,1" = "Apple TV 4K (2ª generación)"; 189 | "AppleTV14,1" = "Apple TV 4K (3ª generación)"; 190 | 191 | 192 | // MARK: Apple Watch models 193 | "Watch1,1" = "Apple Watch (1ª generación)"; 194 | "Watch1,2" = "Apple Watch (2ª generación)"; 195 | "Watch2,3" = "Apple Watch Series 2"; 196 | "Watch2,4" = "Apple Watch Series 2"; 197 | "Watch2,6" = "Apple Watch Series 1"; 198 | "Watch2,7" = "Apple Watch Series 1"; 199 | "Watch3,1" = "Apple Watch Series 3"; 200 | "Watch3,2" = "Apple Watch Series 3"; 201 | "Watch3,3" = "Apple Watch Series 3"; 202 | "Watch3,4" = "Apple Watch Series 3"; 203 | "Watch4,1" = "Apple Watch Series 4"; 204 | "Watch4,2" = "Apple Watch Series 4"; 205 | "Watch4,3" = "Apple Watch Series 4"; 206 | "Watch4,4" = "Apple Watch Series 4"; 207 | "Watch5,1" = "Apple Watch Series 5"; 208 | "Watch5,2" = "Apple Watch Series 5"; 209 | "Watch5,3" = "Apple Watch Series 5"; 210 | "Watch5,4" = "Apple Watch Series 5"; 211 | "Watch5,9" = "Apple Watch SE (1ª generación)"; 212 | "Watch5,10" = "Apple Watch SE (1ª generación)"; 213 | "Watch5,11" = "Apple Watch SE (1ª generación)"; 214 | "Watch5,12" = "Apple Watch SE (1ª generación)"; 215 | "Watch6,1" = "Apple Watch Series 6"; 216 | "Watch6,2" = "Apple Watch Series 6"; 217 | "Watch6,3" = "Apple Watch Series 6"; 218 | "Watch6,4" = "Apple Watch Series 6"; 219 | "Watch6,6" = "Apple Watch Series 7"; 220 | "Watch6,7" = "Apple Watch Series 7"; 221 | "Watch6,8" = "Apple Watch Series 7"; 222 | "Watch6,9" = "Apple Watch Series 7"; 223 | "Watch6,10" = "Apple Watch SE"; 224 | "Watch6,11" = "Apple Watch SE"; 225 | "Watch6,12" = "Apple Watch SE"; 226 | "Watch6,13" = "Apple Watch SE"; 227 | "Watch6,14" = "Apple Watch Series 8"; 228 | "Watch6,15" = "Apple Watch Series 8"; 229 | "Watch6,16" = "Apple Watch Series 8"; 230 | "Watch6,17" = "Apple Watch Series 8"; 231 | "Watch6,18" = "Apple Watch Ultra"; 232 | "Watch7,1" = "Apple Watch Series 9"; 233 | "Watch7,2" = "Apple Watch Series 9"; 234 | "Watch7,3" = "Apple Watch Series 9"; 235 | "Watch7,4" = "Apple Watch Series 9"; 236 | "Watch7,5" = "Apple Watch Ultra 2"; 237 | "Watch7,8" = "Apple Watch Series 10"; 238 | "Watch7,9" = "Apple Watch Series 10"; 239 | "Watch7,10" = "Apple Watch Series 10"; 240 | "Watch7,11" = "Apple Watch Series 10"; 241 | 242 | 243 | // MARK: Developer models 244 | "i386" = "Simulador"; 245 | "x86_64" = "Simulador"; 246 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/Resources/fr.lproj/DeviceModel.strings: -------------------------------------------------------------------------------- 1 | /* 2 | DeviceModel.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 02/10/2017. 6 | Copyright © 2017 Benoit Deldicque. All rights reserved. 7 | */ 8 | 9 | // MARK: iPhone models 10 | "iPhone1,1" = "iPhone 2G"; 11 | "iPhone1,2" = "iPhone 3G"; 12 | "iPhone2,1" = "iPhone 3GS"; 13 | "iPhone3,1" = "iPhone 4"; 14 | "iPhone3,2" = "iPhone 4"; 15 | "iPhone3,3" = "iPhone 4"; 16 | "iPhone4,1" = "iPhone 4S"; 17 | "iPhone5,1" = "iPhone 5"; 18 | "iPhone5,2" = "iPhone 5"; 19 | "iPhone5,3" = "iPhone 5c"; 20 | "iPhone5,4" = "iPhone 5c"; 21 | "iPhone6,1" = "iPhone 5s"; 22 | "iPhone6,2" = "iPhone 5s"; 23 | "iPhone7,1" = "iPhone 6 Plus"; 24 | "iPhone7,2" = "iPhone 6"; 25 | "iPhone8,2" = "iPhone 6s Plus"; 26 | "iPhone8,1" = "iPhone 6s"; 27 | "iPhone8,4" = "iPhone SE"; 28 | "iPhone9,1" = "iPhone 7"; 29 | "iPhone9,2" = "iPhone 7 Plus"; 30 | "iPhone9,3" = "iPhone 7"; 31 | "iPhone9,4" = "iPhone 7 Plus"; 32 | "iPhone10,1" = "iPhone 8"; 33 | "iPhone10,2" = "iPhone 8 Plus"; 34 | "iPhone10,3" = "iPhone X"; 35 | "iPhone10,4" = "iPhone 8"; 36 | "iPhone10,5" = "iPhone 8 Plus"; 37 | "iPhone10,6" = "iPhone X"; 38 | "iPhone11,2" = "iPhone XS"; 39 | "iPhone11,4" = "iPhone XS Max"; 40 | "iPhone11,6" = "iPhone XS Max"; 41 | "iPhone11,8" = "iPhone XR"; 42 | "iPhone12,1" = "iPhone 11"; 43 | "iPhone12,3" = "iPhone 11 Pro"; 44 | "iPhone12,5" = "iPhone 11 Pro Max"; 45 | "iPhone12,8" = "iPhone SE (2e génération)"; 46 | "iPhone13,1" = "iPhone 12 mini"; 47 | "iPhone13,2" = "iPhone 12"; 48 | "iPhone13,3" = "iPhone 12 Pro"; 49 | "iPhone13,4" = "iPhone 12 Pro Max"; 50 | "iPhone14,2" = "iPhone 13 Pro"; 51 | "iPhone14,3" = "iPhone 13 Pro Max"; 52 | "iPhone14,4" = "iPhone 13 mini"; 53 | "iPhone14,5" = "iPhone 13"; 54 | "iPhone14,6" = "iPhone SE (3e génération)"; 55 | "iPhone14,7" = "iPhone 14"; 56 | "iPhone14,8" = "iPhone 14 Plus"; 57 | "iPhone15,2" = "iPhone 14 Pro"; 58 | "iPhone15,3" = "iPhone 14 Pro Max"; 59 | "iPhone15,4" = "iPhone 15"; 60 | "iPhone15,5" = "iPhone 15 Plus"; 61 | "iPhone16,1" = "iPhone 15 Pro"; 62 | "iPhone16,2" = "iPhone 15 Pro Max"; 63 | "iPhone17,1" = "iPhone 16 Pro"; 64 | "iPhone17,2" = "iPhone 16 Pro Max"; 65 | "iPhone17,3" = "iPhone 16"; 66 | "iPhone17,4" = "iPhone 16 Plus"; 67 | "iPhone17,5" = "iPhone 16e"; 68 | 69 | 70 | // MARK: iPod touch models 71 | "iPod1,1" = "iPod touch"; 72 | "iPod2,1" = "iPod touch (2e génération)"; 73 | "iPod3,1" = "iPod touch (3e génération)"; 74 | "iPod4,1" = "iPod touch (4e génération)"; 75 | "iPod5,1" = "iPod touch (5e génération)"; 76 | "iPod7,1" = "iPod touch (6e génération)"; 77 | "iPod9,1" = "iPod touch (7e génération)"; 78 | 79 | 80 | // MARK: iPad models 81 | "iPad1,1" = "iPad"; 82 | "iPad1,2" = "iPad"; 83 | "iPad2,1" = "iPad 2"; 84 | "iPad2,2" = "iPad 2"; 85 | "iPad2,3" = "iPad 2"; 86 | "iPad2,4" = "iPad 2"; 87 | "iPad2,5" = "iPad mini"; 88 | "iPad2,6" = "iPad mini"; 89 | "iPad2,7" = "iPad mini"; 90 | "iPad3,1" = "iPad (3e génération)"; 91 | "iPad3,2" = "iPad (3e génération)"; 92 | "iPad3,3" = "iPad (3e génération)"; 93 | "iPad3,4" = "iPad (4e génération)"; 94 | "iPad3,5" = "iPad (4e génération)"; 95 | "iPad3,6" = "iPad (4e génération)"; 96 | "iPad4,1" = "iPad Air"; 97 | "iPad4,2" = "iPad Air"; 98 | "iPad4,3" = "iPad Air"; 99 | "iPad4,4" = "iPad mini 2"; 100 | "iPad4,5" = "iPad mini 2"; 101 | "iPad4,6" = "iPad mini 2"; 102 | "iPad4,7" = "iPad mini 3"; 103 | "iPad4,8" = "iPad mini 3"; 104 | "iPad4,9" = "iPad mini 3"; 105 | "iPad5,1" = "iPad mini 4"; 106 | "iPad5,2" = "iPad mini 4"; 107 | "iPad5,3" = "iPad Air 2"; 108 | "iPad5,4" = "iPad Air 2"; 109 | "iPad6,3" = "iPad Pro (9,7 pouces)"; 110 | "iPad6,4" = "iPad Pro (9,7 pouces)"; 111 | "iPad6,7" = "iPad Pro (12,9 pouces)"; 112 | "iPad6,8" = "iPad Pro (12,9 pouces)"; 113 | "iPad6,11" = "iPad (5e génération)"; 114 | "iPad6,12" = "iPad (5e génération)"; 115 | "iPad7,1" = "iPad Pro 12,9 pouces (2e génération)"; 116 | "iPad7,2" = "iPad Pro 12,9 pouces (2e génération)"; 117 | "iPad7,3" = "iPad Pro (10,5 pouces)"; 118 | "iPad7,4" = "iPad Pro (10,5 pouces)"; 119 | "iPad7,5" = "iPad (6e génération)"; 120 | "iPad7,6" = "iPad (6e génération)"; 121 | "iPad7,11" = "iPad (7e génération)"; 122 | "iPad7,12" = "iPad (7e génération)"; 123 | "iPad8,1" = "iPad Pro (11 pouces)"; 124 | "iPad8,2" = "iPad Pro (11 pouces)"; 125 | "iPad8,3" = "iPad Pro (11 pouces)"; 126 | "iPad8,4" = "iPad Pro (11 pouces)"; 127 | "iPad8,5" = "iPad Pro 12,9 pouces (3e génération)"; 128 | "iPad8,6" = "iPad Pro 12,9 pouces (3e génération)"; 129 | "iPad8,7" = "iPad Pro 12,9 pouces (3e génération)"; 130 | "iPad8,8" = "iPad Pro 12,9 pouces (3e génération)"; 131 | "iPad8,9" = "iPad Pro 11 pouces (2e génération)"; 132 | "iPad8,10" = "iPad Pro 11 pouces (2e génération)"; 133 | "iPad8,11" = "iPad Pro 12,9 pouces (4e génération)"; 134 | "iPad8,12" = "iPad Pro 12,9 pouces (4e génération)"; 135 | "iPad11,1" = "iPad mini (5e génération)"; 136 | "iPad11,2" = "iPad mini (5e génération)"; 137 | "iPad11,3" = "iPad Air (3e génération)"; 138 | "iPad11,4" = "iPad Air (3e génération)"; 139 | "iPad11,6" = "iPad (8e génération)"; 140 | "iPad11,7" = "iPad (8e génération)"; 141 | "iPad12,1" = "iPad (9e génération)"; 142 | "iPad12,2" = "iPad (9e génération)"; 143 | "iPad13,1" = "iPad Air (4e génération)"; 144 | "iPad13,2" = "iPad Air (4e génération)"; 145 | "iPad13,4" = "iPad Pro 11 pouces (3e génération)"; 146 | "iPad13,5" = "iPad Pro 11 pouces (3e génération)"; 147 | "iPad13,6" = "iPad Pro 11 pouces (3e génération)"; 148 | "iPad13,7" = "iPad Pro 11 pouces (3e génération)"; 149 | "iPad13,8" = "iPad Pro 12,9 pouces (5e génération)"; 150 | "iPad13,9" = "iPad Pro 12,9 pouces (5e génération)"; 151 | "iPad13,10" = "iPad Pro 12,9 pouces (5e génération)"; 152 | "iPad13,11" = "iPad Pro 12,9 pouces (5e génération)"; 153 | "iPad13,16" = "iPad Air (5e génération)"; 154 | "iPad13,17" = "iPad Air (5e génération)"; 155 | "iPad13,18" = "iPad (10e génération)"; 156 | "iPad13,19" = "iPad (10e génération)"; 157 | "iPad14,1" = "iPad mini (6e génération)"; 158 | "iPad14,2" = "iPad mini (6e génération)"; 159 | "iPad14,3" = "iPad Pro 11 pouces (4e génération)"; 160 | "iPad14,4" = "iPad Pro 11 pouces (4e génération)"; 161 | "iPad14,5" = "iPad Pro 12,9 pouces (6e génération)"; 162 | "iPad14,6" = "iPad Pro 12,9 pouces (6e génération)"; 163 | "iPad14,8" = "iPad Air 11 pouces (M2)"; 164 | "iPad14,9" = "iPad Air 11 pouces (M2)"; 165 | "iPad14,10" = "iPad Air 13 pouces (M2)"; 166 | "iPad14,11" = "iPad Air 13 pouces (M2)"; 167 | "iPad15,3" = "iPad Air 11 pouces (M3)"; 168 | "iPad15,4" = "iPad Air 11 pouces (M3)"; 169 | "iPad15,5" = "iPad Air 13 pouces (M3)"; 170 | "iPad15,6" = "iPad Air 13 pouces (M3)"; 171 | "iPad15,7" = "iPad (A16)"; 172 | "iPad15,8" = "iPad (A16)"; 173 | "iPad16,1" = "iPad mini (A17 Pro)"; 174 | "iPad16,2" = "iPad mini (A17 Pro)"; 175 | "iPad16,3" = "iPad Pro 11 pouces (M4)"; 176 | "iPad16,4" = "iPad Pro 11 pouces (M4)"; 177 | "iPad16,5" = "iPad Pro 13 pouces (M4)"; 178 | "iPad16,6" = "iPad Pro 13 pouces (M4)"; 179 | 180 | // MARK: Apple TV models 181 | "AppleTV1,1" = "Apple TV (1e génération)"; 182 | "AppleTV2,1" = "Apple TV (2e génération)"; 183 | "AppleTV3,1" = "Apple TV (3e génération)"; 184 | "AppleTV3,2" = "Apple TV (3e génération)"; 185 | "AppleTV5,3" = "Apple TV HD"; 186 | "AppleTV6,2" = "Apple TV 4K"; 187 | "AppleTV11,1" = "Apple TV 4K (2e génération)"; 188 | "AppleTV14,1" = "Apple TV 4K (3e génération)"; 189 | 190 | 191 | // MARK: Apple Watch models 192 | "Watch1,1" = "Apple Watch (1e génération)"; 193 | "Watch1,2" = "Apple Watch (2e génération)"; 194 | "Watch2,3" = "Apple Watch Series 2"; 195 | "Watch2,4" = "Apple Watch Series 2"; 196 | "Watch2,6" = "Apple Watch Series 1"; 197 | "Watch2,7" = "Apple Watch Series 1"; 198 | "Watch3,1" = "Apple Watch Series 3"; 199 | "Watch3,2" = "Apple Watch Series 3"; 200 | "Watch3,3" = "Apple Watch Series 3"; 201 | "Watch3,4" = "Apple Watch Series 3"; 202 | "Watch4,1" = "Apple Watch Series 4"; 203 | "Watch4,2" = "Apple Watch Series 4"; 204 | "Watch4,3" = "Apple Watch Series 4"; 205 | "Watch4,4" = "Apple Watch Series 4"; 206 | "Watch5,1" = "Apple Watch Series 5"; 207 | "Watch5,2" = "Apple Watch Series 5"; 208 | "Watch5,3" = "Apple Watch Series 5"; 209 | "Watch5,4" = "Apple Watch Series 5"; 210 | "Watch5,9" = "Apple Watch SE (1e génération)"; 211 | "Watch5,10" = "Apple Watch SE (1e génération)"; 212 | "Watch5,11" = "Apple Watch SE (1e génération)"; 213 | "Watch5,12" = "Apple Watch SE (1e génération)"; 214 | "Watch6,1" = "Apple Watch Series 6"; 215 | "Watch6,2" = "Apple Watch Series 6"; 216 | "Watch6,3" = "Apple Watch Series 6"; 217 | "Watch6,4" = "Apple Watch Series 6"; 218 | "Watch6,6" = "Apple Watch Series 7"; 219 | "Watch6,7" = "Apple Watch Series 7"; 220 | "Watch6,8" = "Apple Watch Series 7"; 221 | "Watch6,9" = "Apple Watch Series 7"; 222 | "Watch6,10" = "Apple Watch SE"; 223 | "Watch6,11" = "Apple Watch SE"; 224 | "Watch6,12" = "Apple Watch SE"; 225 | "Watch6,13" = "Apple Watch SE"; 226 | "Watch6,14" = "Apple Watch Series 8"; 227 | "Watch6,15" = "Apple Watch Series 8"; 228 | "Watch6,16" = "Apple Watch Series 8"; 229 | "Watch6,17" = "Apple Watch Series 8"; 230 | "Watch6,18" = "Apple Watch Ultra"; 231 | "Watch7,1" = "Apple Watch Series 9"; 232 | "Watch7,2" = "Apple Watch Series 9"; 233 | "Watch7,3" = "Apple Watch Series 9"; 234 | "Watch7,4" = "Apple Watch Series 9"; 235 | "Watch7,5" = "Apple Watch Ultra 2"; 236 | "Watch7,8" = "Apple Watch Series 10"; 237 | "Watch7,9" = "Apple Watch Series 10"; 238 | "Watch7,10" = "Apple Watch Series 10"; 239 | "Watch7,11" = "Apple Watch Series 10"; 240 | 241 | 242 | // MARK: Developer models 243 | "i386" = "Simulateur"; 244 | "x86_64" = "Simulateur"; 245 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/Resources/it.lproj/DeviceModel.strings: -------------------------------------------------------------------------------- 1 | /* 2 | DeviceModel.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 06/10/2017. 6 | Copyright © 2017 Benoit Deldicque. All rights reserved. 7 | */ 8 | 9 | // MARK: iPhone models 10 | "iPhone1,1" = "iPhone 2G"; 11 | "iPhone1,2" = "iPhone 3G"; 12 | "iPhone2,1" = "iPhone 3GS"; 13 | "iPhone3,1" = "iPhone 4"; 14 | "iPhone3,2" = "iPhone 4"; 15 | "iPhone3,3" = "iPhone 4"; 16 | "iPhone4,1" = "iPhone 4S"; 17 | "iPhone5,1" = "iPhone 5"; 18 | "iPhone5,2" = "iPhone 5"; 19 | "iPhone5,3" = "iPhone 5c"; 20 | "iPhone5,4" = "iPhone 5c"; 21 | "iPhone6,1" = "iPhone 5s"; 22 | "iPhone6,2" = "iPhone 5s"; 23 | "iPhone7,1" = "iPhone 6 Plus"; 24 | "iPhone7,2" = "iPhone 6"; 25 | "iPhone8,2" = "iPhone 6s Plus"; 26 | "iPhone8,1" = "iPhone 6s"; 27 | "iPhone8,4" = "iPhone SE"; 28 | "iPhone9,1" = "iPhone 7"; 29 | "iPhone9,2" = "iPhone 7 Plus"; 30 | "iPhone9,3" = "iPhone 7"; 31 | "iPhone9,4" = "iPhone 7 Plus"; 32 | "iPhone10,1" = "iPhone 8"; 33 | "iPhone10,2" = "iPhone 8 Plus"; 34 | "iPhone10,3" = "iPhone X"; 35 | "iPhone10,4" = "iPhone 8"; 36 | "iPhone10,5" = "iPhone 8 Plus"; 37 | "iPhone10,6" = "iPhone X"; 38 | "iPhone11,2" = "iPhone XS"; 39 | "iPhone11,4" = "iPhone XS Max"; 40 | "iPhone11,6" = "iPhone XS Max"; 41 | "iPhone11,8" = "iPhone XR"; 42 | "iPhone12,1" = "iPhone 11"; 43 | "iPhone12,3" = "iPhone 11 Pro"; 44 | "iPhone12,5" = "iPhone 11 Pro Max"; 45 | "iPhone12,8" = "iPhone SE (2a generazione)"; 46 | "iPhone13,1" = "iPhone 12 mini"; 47 | "iPhone13,2" = "iPhone 12"; 48 | "iPhone13,3" = "iPhone 12 Pro"; 49 | "iPhone13,4" = "iPhone 12 Pro Max"; 50 | "iPhone14,2" = "iPhone 13 Pro"; 51 | "iPhone14,3" = "iPhone 13 Pro Max"; 52 | "iPhone14,4" = "iPhone 13 mini"; 53 | "iPhone14,5" = "iPhone 13"; 54 | "iPhone14,6" = "iPhone SE (3a generazione)"; 55 | "iPhone14,7" = "iPhone 14"; 56 | "iPhone14,8" = "iPhone 14 Plus"; 57 | "iPhone15,2" = "iPhone 14 Pro"; 58 | "iPhone15,3" = "iPhone 14 Pro Max"; 59 | "iPhone15,4" = "iPhone 15"; 60 | "iPhone15,5" = "iPhone 15 Plus"; 61 | "iPhone16,1" = "iPhone 15 Pro"; 62 | "iPhone16,2" = "iPhone 15 Pro Max"; 63 | "iPhone17,1" = "iPhone 16 Pro"; 64 | "iPhone17,2" = "iPhone 16 Pro Max"; 65 | "iPhone17,3" = "iPhone 16"; 66 | "iPhone17,4" = "iPhone 16 Plus"; 67 | "iPhone17,5" = "iPhone 16e"; 68 | 69 | 70 | // MARK: iPod touch models 71 | "iPod1,1" = "iPod touch"; 72 | "iPod2,1" = "iPod touch (2a generazione)"; 73 | "iPod3,1" = "iPod touch (3a generazione)"; 74 | "iPod4,1" = "iPod touch (4a generazione)"; 75 | "iPod5,1" = "iPod touch (5a generazione)"; 76 | "iPod7,1" = "iPod touch (6a generazione)"; 77 | "iPod9,1" = "iPod touch (7a generazione)"; 78 | 79 | 80 | // MARK: iPad models 81 | "iPad1,1" = "iPad"; 82 | "iPad1,2" = "iPad"; 83 | "iPad2,1" = "iPad 2"; 84 | "iPad2,2" = "iPad 2"; 85 | "iPad2,3" = "iPad 2"; 86 | "iPad2,4" = "iPad 2"; 87 | "iPad2,5" = "iPad mini"; 88 | "iPad2,6" = "iPad mini"; 89 | "iPad2,7" = "iPad mini"; 90 | "iPad3,1" = "iPad (3a generazione)"; 91 | "iPad3,2" = "iPad (3a generazione)"; 92 | "iPad3,3" = "iPad (3a generazione)"; 93 | "iPad3,4" = "iPad (4a generazione)"; 94 | "iPad3,5" = "iPad (4a generazione)"; 95 | "iPad3,6" = "iPad (4a generazione)"; 96 | "iPad4,1" = "iPad Air"; 97 | "iPad4,2" = "iPad Air"; 98 | "iPad4,3" = "iPad Air"; 99 | "iPad4,4" = "iPad mini 2"; 100 | "iPad4,5" = "iPad mini 2"; 101 | "iPad4,6" = "iPad mini 2"; 102 | "iPad4,7" = "iPad mini 3"; 103 | "iPad4,8" = "iPad mini 3"; 104 | "iPad4,9" = "iPad mini 3"; 105 | "iPad5,1" = "iPad mini 4"; 106 | "iPad5,2" = "iPad mini 4"; 107 | "iPad5,3" = "iPad Air 2"; 108 | "iPad5,4" = "iPad Air 2"; 109 | "iPad6,3" = "iPad Pro (9,7 pollici)"; 110 | "iPad6,4" = "iPad Pro (9,7 pollici)"; 111 | "iPad6,7" = "iPad Pro (12,9 pollici)"; 112 | "iPad6,8" = "iPad Pro (12,9 pollici)"; 113 | "iPad6,11" = "iPad (5a generazione)"; 114 | "iPad6,12" = "iPad (5a generazione)"; 115 | "iPad7,1" = "iPad Pro da 12,9 pollici (2a generazione)"; 116 | "iPad7,2" = "iPad Pro da 12,9 pollici (2a generazione)"; 117 | "iPad7,3" = "iPad Pro (10,5 pollici)"; 118 | "iPad7,4" = "iPad Pro (10,5 pollici)"; 119 | "iPad7,5" = "iPad (6a generazione)"; 120 | "iPad7,6" = "iPad (6a generazione)"; 121 | "iPad7,11" = "iPad (7a generazione)"; 122 | "iPad7,12" = "iPad (7a generazione)"; 123 | "iPad8,1" = "iPad Pro (11 pollici)"; 124 | "iPad8,2" = "iPad Pro (11 pollici)"; 125 | "iPad8,3" = "iPad Pro (11 pollici)"; 126 | "iPad8,4" = "iPad Pro (11 pollici)"; 127 | "iPad8,5" = "iPad Pro da 12,9 pollici (3a generazione)"; 128 | "iPad8,6" = "iPad Pro da 12,9 pollici (3a generazione)"; 129 | "iPad8,7" = "iPad Pro da 12,9 pollici (3a generazione)"; 130 | "iPad8,8" = "iPad Pro da 12,9 pollici (3a generazione)"; 131 | "iPad8,9" = "iPad Pro da 11 pollici (2a generazione)"; 132 | "iPad8,10" = "iPad Pro da 11 pollici (2a generazione)"; 133 | "iPad8,11" = "iPad Pro da 12,9 pollici (4a generazione)"; 134 | "iPad8,12" = "iPad Pro da 12,9 pollici (4a generazione)"; 135 | "iPad11,1" = "iPad mini (5a generazione)"; 136 | "iPad11,2" = "iPad mini (5a generazione)"; 137 | "iPad11,3" = "iPad Air (3a generazione)"; 138 | "iPad11,4" = "iPad Air (3a generazione)"; 139 | "iPad11,6" = "iPad (8a generazione)"; 140 | "iPad11,7" = "iPad (8a generazione)"; 141 | "iPad12,1" = "iPad (9a generazione)"; 142 | "iPad12,2" = "iPad (9a generazione)"; 143 | "iPad13,1" = "iPad Air (4a generazione)"; 144 | "iPad13,2" = "iPad Air (4a generazione)"; 145 | "iPad13,4" = "iPad Pro da 11 pollici (3a generazione)"; 146 | "iPad13,5" = "iPad Pro da 11 pollici (3a generazione)"; 147 | "iPad13,6" = "iPad Pro da 11 pollici (3a generazione)"; 148 | "iPad13,7" = "iPad Pro da 11 pollici (3a generazione)"; 149 | "iPad13,8" = "iPad Pro da 12,9 pollici (5a generazione)"; 150 | "iPad13,9" = "iPad Pro da 12,9 pollici (5a generazione)"; 151 | "iPad13,10" = "iPad Pro da 12,9 pollici (5a generazione)"; 152 | "iPad13,11" = "iPad Pro da 12,9 pollici (5a generazione)"; 153 | "iPad13,16" = "iPad Air (5a generazione)"; 154 | "iPad13,17" = "iPad Air (5a generazione)"; 155 | "iPad13,18" = "iPad (10a generazione)"; 156 | "iPad13,19" = "iPad (10a generazione)"; 157 | "iPad14,1" = "iPad mini (6a generazione)"; 158 | "iPad14,2" = "iPad mini (6a generazione)"; 159 | "iPad14,3" = "iPad Pro 11 pollici (4a generazione)"; 160 | "iPad14,4" = "iPad Pro 11 pollici (4a generazione)"; 161 | "iPad14,5" = "iPad Pro 12,9 pollici (6a generazione)"; 162 | "iPad14,6" = "iPad Pro 12,9 pollici (6a generazione)"; 163 | "iPad14,8" = "iPad Air 11 pollici (M2)"; 164 | "iPad14,9" = "iPad Air 11 pollici (M2)"; 165 | "iPad14,10" = "iPad Air 13 pollici (M2)"; 166 | "iPad14,11" = "iPad Air 13 pollici (M2)"; 167 | "iPad15,3" = "iPad Air 11 pollici (M3)"; 168 | "iPad15,4" = "iPad Air 11 pollici (M3)"; 169 | "iPad15,5" = "iPad Air 13 pollici (M3)"; 170 | "iPad15,6" = "iPad Air 13 pollici (M3)"; 171 | "iPad15,7" = "iPad (A16)"; 172 | "iPad15,8" = "iPad (A16)"; 173 | "iPad16,1" = "iPad mini (A17 Pro)"; 174 | "iPad16,2" = "iPad mini (A17 Pro)"; 175 | "iPad16,3" = "iPad Pro 11 pollici (M4)"; 176 | "iPad16,4" = "iPad Pro 11 pollici (M4)"; 177 | "iPad16,5" = "iPad Pro 13 pollici (M4)"; 178 | "iPad16,6" = "iPad Pro 13 pollici (M4)"; 179 | 180 | 181 | // MARK: Apple TV models 182 | "AppleTV1,1" = "Apple TV (1a generazione)"; 183 | "AppleTV2,1" = "Apple TV (2a generazione)"; 184 | "AppleTV3,1" = "Apple TV (3a generazione)"; 185 | "AppleTV3,2" = "Apple TV (3a generazione)"; 186 | "AppleTV5,3" = "Apple TV HD"; 187 | "AppleTV6,2" = "Apple TV 4K"; 188 | "AppleTV11,1" = "Apple TV 4K (2a generazione)"; 189 | "AppleTV14,1" = "Apple TV 4K (3a generazione)"; 190 | 191 | 192 | // MARK: Apple Watch models 193 | "Watch1,1" = "Apple Watch (1a generazione)"; 194 | "Watch1,2" = "Apple Watch (2a generazione)"; 195 | "Watch2,3" = "Apple Watch Series 2"; 196 | "Watch2,4" = "Apple Watch Series 2"; 197 | "Watch2,6" = "Apple Watch Series 1"; 198 | "Watch2,7" = "Apple Watch Series 1"; 199 | "Watch3,1" = "Apple Watch Series 3"; 200 | "Watch3,2" = "Apple Watch Series 3"; 201 | "Watch3,3" = "Apple Watch Series 3"; 202 | "Watch3,4" = "Apple Watch Series 3"; 203 | "Watch4,1" = "Apple Watch Series 4"; 204 | "Watch4,2" = "Apple Watch Series 4"; 205 | "Watch4,3" = "Apple Watch Series 4"; 206 | "Watch4,4" = "Apple Watch Series 4"; 207 | "Watch5,1" = "Apple Watch Series 5"; 208 | "Watch5,2" = "Apple Watch Series 5"; 209 | "Watch5,3" = "Apple Watch Series 5"; 210 | "Watch5,4" = "Apple Watch Series 5"; 211 | "Watch5,9" = "Apple Watch SE (1a generazione)"; 212 | "Watch5,10" = "Apple Watch SE (1a generazione)"; 213 | "Watch5,11" = "Apple Watch SE (1a generazione)"; 214 | "Watch5,12" = "Apple Watch SE (1a generazione)"; 215 | "Watch6,1" = "Apple Watch Series 6"; 216 | "Watch6,2" = "Apple Watch Series 6"; 217 | "Watch6,3" = "Apple Watch Series 6"; 218 | "Watch6,4" = "Apple Watch Series 6"; 219 | "Watch6,6" = "Apple Watch Series 7"; 220 | "Watch6,7" = "Apple Watch Series 7"; 221 | "Watch6,8" = "Apple Watch Series 7"; 222 | "Watch6,9" = "Apple Watch Series 7"; 223 | "Watch6,10" = "Apple Watch SE"; 224 | "Watch6,11" = "Apple Watch SE"; 225 | "Watch6,12" = "Apple Watch SE"; 226 | "Watch6,13" = "Apple Watch SE"; 227 | "Watch6,14" = "Apple Watch Series 8"; 228 | "Watch6,15" = "Apple Watch Series 8"; 229 | "Watch6,16" = "Apple Watch Series 8"; 230 | "Watch6,17" = "Apple Watch Series 8"; 231 | "Watch6,18" = "Apple Watch Ultra"; 232 | "Watch7,1" = "Apple Watch Series 9"; 233 | "Watch7,2" = "Apple Watch Series 9"; 234 | "Watch7,3" = "Apple Watch Series 9"; 235 | "Watch7,4" = "Apple Watch Series 9"; 236 | "Watch7,5" = "Apple Watch Ultra 2"; 237 | "Watch7,8" = "Apple Watch Series 10"; 238 | "Watch7,9" = "Apple Watch Series 10"; 239 | "Watch7,10" = "Apple Watch Series 10"; 240 | "Watch7,11" = "Apple Watch Series 10"; 241 | 242 | 243 | // MARK: Developer models 244 | "i386" = "Simulatore"; 245 | "x86_64" = "Simulatore"; 246 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/Resources/pt.lproj/DeviceModel.strings: -------------------------------------------------------------------------------- 1 | /* 2 | DeviceModel.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 29/06/2018. 6 | Copyright © 2017 Benoit Deldicque. All rights reserved. 7 | */ 8 | 9 | // MARK: iPhone models 10 | "iPhone1,1" = "iPhone 2G"; 11 | "iPhone1,2" = "iPhone 3G"; 12 | "iPhone2,1" = "iPhone 3GS"; 13 | "iPhone3,1" = "iPhone 4"; 14 | "iPhone3,2" = "iPhone 4"; 15 | "iPhone3,3" = "iPhone 4"; 16 | "iPhone4,1" = "iPhone 4S"; 17 | "iPhone5,1" = "iPhone 5"; 18 | "iPhone5,2" = "iPhone 5"; 19 | "iPhone5,3" = "iPhone 5c"; 20 | "iPhone5,4" = "iPhone 5c"; 21 | "iPhone6,1" = "iPhone 5s"; 22 | "iPhone6,2" = "iPhone 5s"; 23 | "iPhone7,1" = "iPhone 6 Plus"; 24 | "iPhone7,2" = "iPhone 6"; 25 | "iPhone8,2" = "iPhone 6s Plus"; 26 | "iPhone8,1" = "iPhone 6s"; 27 | "iPhone8,4" = "iPhone SE"; 28 | "iPhone9,1" = "iPhone 7"; 29 | "iPhone9,2" = "iPhone 7 Plus"; 30 | "iPhone9,3" = "iPhone 7"; 31 | "iPhone9,4" = "iPhone 7 Plus"; 32 | "iPhone10,1" = "iPhone 8"; 33 | "iPhone10,2" = "iPhone 8 Plus"; 34 | "iPhone10,3" = "iPhone X"; 35 | "iPhone10,4" = "iPhone 8"; 36 | "iPhone10,5" = "iPhone 8 Plus"; 37 | "iPhone10,6" = "iPhone X"; 38 | "iPhone11,2" = "iPhone XS"; 39 | "iPhone11,4" = "iPhone XS Max"; 40 | "iPhone11,6" = "iPhone XS Max"; 41 | "iPhone11,8" = "iPhone XR"; 42 | "iPhone12,1" = "iPhone 11"; 43 | "iPhone12,3" = "iPhone 11 Pro"; 44 | "iPhone12,5" = "iPhone 11 Pro Max"; 45 | "iPhone12,8" = "iPhone SE (2.ª geração)"; 46 | "iPhone13,1" = "iPhone 12 mini"; 47 | "iPhone13,2" = "iPhone 12"; 48 | "iPhone13,3" = "iPhone 12 Pro"; 49 | "iPhone13,4" = "iPhone 12 Pro Max"; 50 | "iPhone14,2" = "iPhone 13 Pro"; 51 | "iPhone14,3" = "iPhone 13 Pro Max"; 52 | "iPhone14,4" = "iPhone 13 mini"; 53 | "iPhone14,5" = "iPhone 13"; 54 | "iPhone14,6" = "iPhone SE (3.ª geração)"; 55 | "iPhone14,7" = "iPhone 14"; 56 | "iPhone14,8" = "iPhone 14 Plus"; 57 | "iPhone15,2" = "iPhone 14 Pro"; 58 | "iPhone15,3" = "iPhone 14 Pro Max"; 59 | "iPhone15,4" = "iPhone 15"; 60 | "iPhone15,5" = "iPhone 15 Plus"; 61 | "iPhone16,1" = "iPhone 15 Pro"; 62 | "iPhone16,2" = "iPhone 15 Pro Max"; 63 | "iPhone17,1" = "iPhone 16 Pro"; 64 | "iPhone17,2" = "iPhone 16 Pro Max"; 65 | "iPhone17,3" = "iPhone 16"; 66 | "iPhone17,4" = "iPhone 16 Plus"; 67 | "iPhone17,5" = "iPhone 16e"; 68 | 69 | 70 | // MARK: iPod touch models 71 | "iPod1,1" = "iPod touch"; 72 | "iPod2,1" = "iPod touch (2.ª geração)"; 73 | "iPod3,1" = "iPod touch (3.ª geração)"; 74 | "iPod4,1" = "iPod touch (4.ª geração)"; 75 | "iPod5,1" = "iPod touch (5.ª geração)"; 76 | "iPod7,1" = "iPod touch (6.ª geração)"; 77 | "iPod9,1" = "iPod touch (7.ª geração)"; 78 | 79 | 80 | // MARK: iPad models 81 | "iPad1,1" = "iPad"; 82 | "iPad1,2" = "iPad"; 83 | "iPad2,1" = "iPad 2"; 84 | "iPad2,2" = "iPad 2"; 85 | "iPad2,3" = "iPad 2"; 86 | "iPad2,4" = "iPad 2"; 87 | "iPad2,5" = "iPad mini"; 88 | "iPad2,6" = "iPad mini"; 89 | "iPad2,7" = "iPad mini"; 90 | "iPad3,1" = "iPad (3.ª geração)"; 91 | "iPad3,2" = "iPad (3.ª geração)"; 92 | "iPad3,3" = "iPad (3.ª geração)"; 93 | "iPad3,4" = "iPad (4.ª geração)"; 94 | "iPad3,5" = "iPad (4.ª geração)"; 95 | "iPad3,6" = "iPad (4.ª geração)"; 96 | "iPad4,1" = "iPad Air"; 97 | "iPad4,2" = "iPad Air"; 98 | "iPad4,3" = "iPad Air"; 99 | "iPad4,4" = "iPad mini 2"; 100 | "iPad4,5" = "iPad mini 2"; 101 | "iPad4,6" = "iPad mini 2"; 102 | "iPad4,7" = "iPad mini 3"; 103 | "iPad4,8" = "iPad mini 3"; 104 | "iPad4,9" = "iPad mini 3"; 105 | "iPad5,1" = "iPad mini 4"; 106 | "iPad5,2" = "iPad mini 4"; 107 | "iPad5,3" = "iPad Air 2"; 108 | "iPad5,4" = "iPad Air 2"; 109 | "iPad6,3" = "iPad Pro de 9,7 polegadas"; 110 | "iPad6,4" = "iPad Pro de 9,7 polegadas"; 111 | "iPad6,7" = "iPad Pro (12,9 polegadas)"; 112 | "iPad6,8" = "iPad Pro (12,9 polegadas)"; 113 | "iPad6,11" = "iPad (5.ª geração)"; 114 | "iPad6,12" = "iPad (5.ª geração)"; 115 | "iPad7,1" = "iPad Pro de 12,9 polegadas (2.ª geração)"; 116 | "iPad7,2" = "iPad Pro de 12,9 polegadas (2.ª geração)"; 117 | "iPad7,3" = "iPad Pro (10,5 polegadas)"; 118 | "iPad7,4" = "iPad Pro (10,5 polegadas)"; 119 | "iPad7,5" = "iPad (6.ª geração)"; 120 | "iPad7,6" = "iPad (6.ª geração)"; 121 | "iPad7,11" = "iPad (7.ª geração)"; 122 | "iPad7,12" = "iPad (7.ª geração)"; 123 | "iPad8,1" = "iPad Pro (11 polegadas)"; 124 | "iPad8,2" = "iPad Pro (11 polegadas)"; 125 | "iPad8,3" = "iPad Pro (11 polegadas)"; 126 | "iPad8,4" = "iPad Pro (11 polegadas)"; 127 | "iPad8,5" = "iPad Pro de 12,9 polegadas (3.ª geração)"; 128 | "iPad8,6" = "iPad Pro de 12,9 polegadas (3.ª geração)"; 129 | "iPad8,7" = "iPad Pro de 12,9 polegadas (3.ª geração)"; 130 | "iPad8,8" = "iPad Pro de 12,9 polegadas (3.ª geração)"; 131 | "iPad8,9" = "iPad Pro de 11 polegadas (2.ª geração)"; 132 | "iPad8,10" = "iPad Pro de 11 polegadas (2.ª geração)"; 133 | "iPad8,11" = "iPad Pro de 12,9 polegadas (4.ª geração)"; 134 | "iPad8,12" = "iPad Pro de 12,9 polegadas (4.ª geração)"; 135 | "iPad11,1" = "iPad mini (5.ª geração)"; 136 | "iPad11,2" = "iPad mini (5.ª geração)"; 137 | "iPad11,3" = "iPad Air (3.ª geração)"; 138 | "iPad11,4" = "iPad Air (3.ª geração)"; 139 | "iPad11,6" = "iPad (8.ª geração)"; 140 | "iPad11,7" = "iPad (8.ª geração)"; 141 | "iPad12,1" = "iPad (9.ª geração)"; 142 | "iPad12,2" = "iPad (9.ª geração)"; 143 | "iPad13,1" = "iPad Air (4.ª geração)"; 144 | "iPad13,2" = "iPad Air (4.ª geração)"; 145 | "iPad13,4" = "iPad Pro de 11 polegadas (3.ª geração)"; 146 | "iPad13,5" = "iPad Pro de 11 polegadas (3.ª geração)"; 147 | "iPad13,6" = "iPad Pro de 11 polegadas (3.ª geração)"; 148 | "iPad13,7" = "iPad Pro de 11 polegadas (3.ª geração)"; 149 | "iPad13,8" = "iPad Pro de 12,9 polegadas (5.ª geração)"; 150 | "iPad13,9" = "iPad Pro de 12,9 polegadas (5.ª geração)"; 151 | "iPad13,10" = "iPad Pro de 12,9 polegadas (5.ª geração)"; 152 | "iPad13,11" = "iPad Pro de 12,9 polegadas (5.ª geração)"; 153 | "iPad13,16" = "iPad Air (5.ª geração)"; 154 | "iPad13,17" = "iPad Air (5.ª geração)"; 155 | "iPad13,18" = "iPad (10.ª geração)"; 156 | "iPad13,19" = "iPad (10.ª geração)"; 157 | "iPad14,1" = "iPad mini (6.ª geração)"; 158 | "iPad14,2" = "iPad mini (6.ª geração)"; 159 | "iPad14,3" = "iPad Pro 11 polegadas (4.ª geração)"; 160 | "iPad14,4" = "iPad Pro 11 polegadas (4.ª geração)"; 161 | "iPad14,5" = "iPad Pro 12,9 polegadas (6.ª geração)"; 162 | "iPad14,6" = "iPad Pro 12,9 polegadas (6.ª geração)"; 163 | "iPad14,8" = "iPad Air 11 polegadas (M2)"; 164 | "iPad14,9" = "iPad Air 11 polegadas (M2)"; 165 | "iPad14,10" = "iPad Air 13 polegadas (M2)"; 166 | "iPad14,11" = "iPad Air 13 polegadas (M2)"; 167 | "iPad15,3" = "iPad Air 11 polegadas (M3)"; 168 | "iPad15,4" = "iPad Air 11 polegadas (M3)"; 169 | "iPad15,5" = "iPad Air 13 polegadas (M3)"; 170 | "iPad15,6" = "iPad Air 13 polegadas (M3)"; 171 | "iPad15,7" = "iPad (A16)"; 172 | "iPad15,8" = "iPad (A16)"; 173 | "iPad16,1" = "iPad mini (A17 Pro)"; 174 | "iPad16,2" = "iPad mini (A17 Pro)"; 175 | "iPad16,3" = "iPad Pro 11 polegadas (M4)"; 176 | "iPad16,4" = "iPad Pro 11 polegadas (M4)"; 177 | "iPad16,5" = "iPad Pro 13 polegadas (M4)"; 178 | "iPad16,6" = "iPad Pro 13 polegadas (M4)"; 179 | 180 | 181 | // MARK: Apple TV models 182 | "AppleTV1,1" = "Apple TV (1.ª geração)"; 183 | "AppleTV2,1" = "Apple TV (2.ª geração)"; 184 | "AppleTV3,1" = "Apple TV (3.ª geração)"; 185 | "AppleTV3,2" = "Apple TV (3.ª geração)"; 186 | "AppleTV5,3" = "Apple TV HD"; 187 | "AppleTV6,2" = "Apple TV 4K"; 188 | "AppleTV11,1" = "Apple TV 4K (2.ª geração)"; 189 | "AppleTV14,1" = "Apple TV 4K (3.ª geração)"; 190 | 191 | 192 | // MARK: Apple Watch models 193 | "Watch1,1" = "Apple Watch (1.ª geração)"; 194 | "Watch1,2" = "Apple Watch (2.ª geração)"; 195 | "Watch2,3" = "Apple Watch Series 2"; 196 | "Watch2,4" = "Apple Watch Series 2"; 197 | "Watch2,6" = "Apple Watch Series 1"; 198 | "Watch2,7" = "Apple Watch Series 1"; 199 | "Watch3,1" = "Apple Watch Series 3"; 200 | "Watch3,2" = "Apple Watch Series 3"; 201 | "Watch3,3" = "Apple Watch Series 3"; 202 | "Watch3,4" = "Apple Watch Series 3"; 203 | "Watch4,1" = "Apple Watch Series 4"; 204 | "Watch4,2" = "Apple Watch Series 4"; 205 | "Watch4,3" = "Apple Watch Series 4"; 206 | "Watch4,4" = "Apple Watch Series 4"; 207 | "Watch5,1" = "Apple Watch Series 5"; 208 | "Watch5,2" = "Apple Watch Series 5"; 209 | "Watch5,3" = "Apple Watch Series 5"; 210 | "Watch5,4" = "Apple Watch Series 5"; 211 | "Watch5,9" = "Apple Watch SE (1.ª geração)"; 212 | "Watch5,10" = "Apple Watch SE (1.ª geração)"; 213 | "Watch5,11" = "Apple Watch SE (1.ª geração)"; 214 | "Watch5,12" = "Apple Watch SE (1.ª geração)"; 215 | "Watch6,1" = "Apple Watch Series 6"; 216 | "Watch6,2" = "Apple Watch Series 6"; 217 | "Watch6,3" = "Apple Watch Series 6"; 218 | "Watch6,4" = "Apple Watch Series 6"; 219 | "Watch6,6" = "Apple Watch Series 7"; 220 | "Watch6,7" = "Apple Watch Series 7"; 221 | "Watch6,8" = "Apple Watch Series 7"; 222 | "Watch6,9" = "Apple Watch Series 7"; 223 | "Watch6,10" = "Apple Watch SE"; 224 | "Watch6,11" = "Apple Watch SE"; 225 | "Watch6,12" = "Apple Watch SE"; 226 | "Watch6,13" = "Apple Watch SE"; 227 | "Watch6,14" = "Apple Watch Series 8"; 228 | "Watch6,15" = "Apple Watch Series 8"; 229 | "Watch6,16" = "Apple Watch Series 8"; 230 | "Watch6,17" = "Apple Watch Series 8"; 231 | "Watch6,18" = "Apple Watch Ultra"; 232 | "Watch7,1" = "Apple Watch Series 9"; 233 | "Watch7,2" = "Apple Watch Series 9"; 234 | "Watch7,3" = "Apple Watch Series 9"; 235 | "Watch7,4" = "Apple Watch Series 9"; 236 | "Watch7,5" = "Apple Watch Ultra 2"; 237 | "Watch7,8" = "Apple Watch Series 10"; 238 | "Watch7,9" = "Apple Watch Series 10"; 239 | "Watch7,10" = "Apple Watch Series 10"; 240 | "Watch7,11" = "Apple Watch Series 10"; 241 | 242 | 243 | // MARK: Developer models 244 | "i386" = "Simulador"; 245 | "x86_64" = "Simulador"; 246 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/Resources/ru.lproj/DeviceModel.strings: -------------------------------------------------------------------------------- 1 | /* 2 | DeviceModel.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 01/08/2018. 6 | Copyright © 2018 Benoit Deldicque. All rights reserved. 7 | */ 8 | 9 | // MARK: iPhone models 10 | "iPhone1,1" = "iPhone 2G"; 11 | "iPhone1,2" = "iPhone 3G"; 12 | "iPhone2,1" = "iPhone 3GS"; 13 | "iPhone3,1" = "iPhone 4"; 14 | "iPhone3,2" = "iPhone 4"; 15 | "iPhone3,3" = "iPhone 4"; 16 | "iPhone4,1" = "iPhone 4S"; 17 | "iPhone5,1" = "iPhone 5"; 18 | "iPhone5,2" = "iPhone 5"; 19 | "iPhone5,3" = "iPhone 5c"; 20 | "iPhone5,4" = "iPhone 5c"; 21 | "iPhone6,1" = "iPhone 5s"; 22 | "iPhone6,2" = "iPhone 5s"; 23 | "iPhone7,1" = "iPhone 6 Plus"; 24 | "iPhone7,2" = "iPhone 6"; 25 | "iPhone8,2" = "iPhone 6s Plus"; 26 | "iPhone8,1" = "iPhone 6s"; 27 | "iPhone8,4" = "iPhone SE"; 28 | "iPhone9,1" = "iPhone 7"; 29 | "iPhone9,2" = "iPhone 7 Plus"; 30 | "iPhone9,3" = "iPhone 7"; 31 | "iPhone9,4" = "iPhone 7 Plus"; 32 | "iPhone10,1" = "iPhone 8"; 33 | "iPhone10,2" = "iPhone 8 Plus"; 34 | "iPhone10,3" = "iPhone X"; 35 | "iPhone10,4" = "iPhone 8"; 36 | "iPhone10,5" = "iPhone 8 Plus"; 37 | "iPhone10,6" = "iPhone X"; 38 | "iPhone11,2" = "iPhone XS"; 39 | "iPhone11,4" = "iPhone XS Max"; 40 | "iPhone11,6" = "iPhone XS Max"; 41 | "iPhone11,8" = "iPhone XR"; 42 | "iPhone12,1" = "iPhone 11"; 43 | "iPhone12,3" = "iPhone 11 Pro"; 44 | "iPhone12,5" = "iPhone 11 Pro Max"; 45 | "iPhone12,8" = "iPhone SE (2-го поколения)"; 46 | "iPhone13,1" = "iPhone 12 mini"; 47 | "iPhone13,2" = "iPhone 12"; 48 | "iPhone13,3" = "iPhone 12 Pro"; 49 | "iPhone13,4" = "iPhone 12 Pro Max"; 50 | "iPhone14,2" = "iPhone 13 Pro"; 51 | "iPhone14,3" = "iPhone 13 Pro Max"; 52 | "iPhone14,4" = "iPhone 13 mini"; 53 | "iPhone14,5" = "iPhone 13"; 54 | "iPhone14,6" = "iPhone SE (3-го поколения)"; 55 | "iPhone14,7" = "iPhone 14"; 56 | "iPhone14,8" = "iPhone 14 Plus"; 57 | "iPhone15,2" = "iPhone 14 Pro"; 58 | "iPhone15,3" = "iPhone 14 Pro Max"; 59 | "iPhone15,4" = "iPhone 15"; 60 | "iPhone15,5" = "iPhone 15 Plus"; 61 | "iPhone16,1" = "iPhone 15 Pro"; 62 | "iPhone16,2" = "iPhone 15 Pro Max"; 63 | "iPhone17,1" = "iPhone 16 Pro"; 64 | "iPhone17,2" = "iPhone 16 Pro Max"; 65 | "iPhone17,3" = "iPhone 16"; 66 | "iPhone17,4" = "iPhone 16 Plus"; 67 | "iPhone17,5" = "iPhone 16e"; 68 | 69 | 70 | // MARK: iPod touch models 71 | "iPod1,1" = "iPod touch"; 72 | "iPod2,1" = "iPod touch (2-го поколения)"; 73 | "iPod3,1" = "iPod touch (3-го поколения)"; 74 | "iPod4,1" = "iPod touch (4-го поколения)"; 75 | "iPod5,1" = "iPod touch (5-го поколения)"; 76 | "iPod7,1" = "iPod touch (6-го поколения)"; 77 | "iPod9,1" = "iPod touch (7-го поколения)"; 78 | 79 | 80 | // MARK: iPad models 81 | "iPad1,1" = "iPad"; 82 | "iPad1,2" = "iPad"; 83 | "iPad2,1" = "iPad 2"; 84 | "iPad2,2" = "iPad 2"; 85 | "iPad2,3" = "iPad 2"; 86 | "iPad2,4" = "iPad 2"; 87 | "iPad2,5" = "iPad mini"; 88 | "iPad2,6" = "iPad mini"; 89 | "iPad2,7" = "iPad mini"; 90 | "iPad3,1" = "iPad (3-го поколения)"; 91 | "iPad3,2" = "iPad (3-го поколения)"; 92 | "iPad3,3" = "iPad (3-го поколения)"; 93 | "iPad3,4" = "iPad (4-го поколения)"; 94 | "iPad3,5" = "iPad (4-го поколения)"; 95 | "iPad3,6" = "iPad (4-го поколения)"; 96 | "iPad4,1" = "iPad Air"; 97 | "iPad4,2" = "iPad Air"; 98 | "iPad4,3" = "iPad Air"; 99 | "iPad4,4" = "iPad mini 2"; 100 | "iPad4,5" = "iPad mini 2"; 101 | "iPad4,6" = "iPad mini 2"; 102 | "iPad4,7" = "iPad mini 3"; 103 | "iPad4,8" = "iPad mini 3"; 104 | "iPad4,9" = "iPad mini 3"; 105 | "iPad5,1" = "iPad mini 4"; 106 | "iPad5,2" = "iPad mini 4"; 107 | "iPad5,3" = "iPad Air 2"; 108 | "iPad5,4" = "iPad Air 2"; 109 | "iPad6,3" = "iPad Pro (9,7 дюйма)"; 110 | "iPad6,4" = "iPad Pro (9,7 дюйма)"; 111 | "iPad6,7" = "iPad Pro (12,9 дюйма)"; 112 | "iPad6,8" = "iPad Pro (12,9 дюйма)"; 113 | "iPad6,11" = "iPad (5-го поколения)"; 114 | "iPad6,12" = "iPad (5-го поколения)"; 115 | "iPad7,1" = "iPad Pro (12,9 дюйма, 2-го поколения)"; 116 | "iPad7,2" = "iPad Pro (12,9 дюйма, 2-го поколения)"; 117 | "iPad7,3" = "iPad Pro (10,5 дюйма)"; 118 | "iPad7,4" = "iPad Pro (10,5 дюйма)"; 119 | "iPad7,5" = "iPad (6-го поколения)"; 120 | "iPad7,6" = "iPad (6-го поколения)"; 121 | "iPad7,11" = "iPad (7-го поколения)"; 122 | "iPad7,12" = "iPad (7-го поколения)"; 123 | "iPad8,1" = "iPad Pro (11 дюйма)"; 124 | "iPad8,2" = "iPad Pro (11 дюйма)"; 125 | "iPad8,3" = "iPad Pro (11 дюйма)"; 126 | "iPad8,4" = "iPad Pro (11 дюйма)"; 127 | "iPad8,5" = "iPad Pro (12,9 дюйма, 3-го поколения)"; 128 | "iPad8,6" = "iPad Pro (12,9 дюйма, 3-го поколения)"; 129 | "iPad8,7" = "iPad Pro (12,9 дюйма, 3-го поколения)"; 130 | "iPad8,8" = "iPad Pro (12,9 дюйма, 3-го поколения)"; 131 | "iPad8,9" = "iPad Pro (11 дюйма, 2-го поколения)"; 132 | "iPad8,10" = "iPad Pro (11 дюйма, 2-го поколения)"; 133 | "iPad8,11" = "iPad Pro (12,9 дюйма, 4-го поколения)"; 134 | "iPad8,12" = "iPad Pro (12,9 дюйма, 4-го поколения)"; 135 | "iPad11,1" = "iPad mini (5-го поколения)"; 136 | "iPad11,2" = "iPad mini (5-го поколения)"; 137 | "iPad11,3" = "iPad Air (3-го поколения)"; 138 | "iPad11,4" = "iPad Air (3-го поколения)"; 139 | "iPad11,6" = "iPad (8-го поколения)"; 140 | "iPad11,7" = "iPad (8-го поколения)"; 141 | "iPad12,1" = "iPad (9-го поколения)"; 142 | "iPad12,2" = "iPad (9-го поколения)"; 143 | "iPad13,1" = "iPad Air (4-го поколения)"; 144 | "iPad13,2" = "iPad Air (4-го поколения)"; 145 | "iPad13,4" = "iPad Pro (11 дюйма, 3-го поколения)"; 146 | "iPad13,5" = "iPad Pro (11 дюйма, 3-го поколения)"; 147 | "iPad13,6" = "iPad Pro (11 дюйма, 3-го поколения)"; 148 | "iPad13,7" = "iPad Pro (11 дюйма, 3-го поколения)"; 149 | "iPad13,8" = "iPad Pro (12,9 дюйма, 5-го поколения)"; 150 | "iPad13,9" = "iPad Pro (12,9 дюйма, 5-го поколения)"; 151 | "iPad13,10" = "iPad Pro (12,9 дюйма, 5-го поколения)"; 152 | "iPad13,11" = "iPad Pro (12,9 дюйма, 5-го поколения)"; 153 | "iPad13,16" = "iPad Air (5-го поколения)"; 154 | "iPad13,17" = "iPad Air (5-го поколения)"; 155 | "iPad13,18" = "iPad (10-го поколения)"; 156 | "iPad13,19" = "iPad (10-го поколения)"; 157 | "iPad14,1" = "iPad mini (6-го поколения)"; 158 | "iPad14,2" = "iPad mini (6-го поколения)"; 159 | "iPad14,3" = "iPad Pro 11 дюйма (4-го поколения)"; 160 | "iPad14,4" = "iPad Pro 11 дюйма (4-го поколения)"; 161 | "iPad14,5" = "iPad Pro 12,9 дюйма (6-го поколения)"; 162 | "iPad14,6" = "iPad Pro 12,9 дюйма (6-го поколения)"; 163 | "iPad14,8" = "iPad Air 11 дюйма (M2)"; 164 | "iPad14,9" = "iPad Air 11 дюйма (M2)"; 165 | "iPad14,10" = "iPad Air 13 дюйма (M2)"; 166 | "iPad14,11" = "iPad Air 13 дюйма (M2)"; 167 | "iPad15,3" = "iPad Air 11 дюйма (M3)"; 168 | "iPad15,4" = "iPad Air 11 дюйма (M3)"; 169 | "iPad15,5" = "iPad Air 13 дюйма (M3)"; 170 | "iPad15,6" = "iPad Air 13 дюйма (M3)"; 171 | "iPad15,7" = "iPad (A16)"; 172 | "iPad15,8" = "iPad (A16)"; 173 | "iPad16,1" = "iPad mini (A17 Pro)"; 174 | "iPad16,2" = "iPad mini (A17 Pro)"; 175 | "iPad16,3" = "iPad Pro 11 дюйма (M4)"; 176 | "iPad16,4" = "iPad Pro 11 дюйма (M4)"; 177 | "iPad16,5" = "iPad Pro 13 дюйма (M4)"; 178 | "iPad16,6" = "iPad Pro 13 дюйма (M4)"; 179 | 180 | 181 | // MARK: Apple TV models 182 | "AppleTV1,1" = "Apple TV (1‑го поколения)"; 183 | "AppleTV2,1" = "Apple TV (2‑го поколения)"; 184 | "AppleTV3,1" = "Apple TV (3‑го поколения)"; 185 | "AppleTV3,2" = "Apple TV (3‑го поколения)"; 186 | "AppleTV5,3" = "Apple TV HD"; 187 | "AppleTV6,2" = "Apple TV 4K"; 188 | "AppleTV11,1" = "Apple TV 4K (2‑го поколения)"; 189 | "AppleTV14,1" = "Apple TV 4K (3‑го поколения)"; 190 | 191 | 192 | // MARK: Apple Watch models 193 | "Watch1,1" = "Apple Watch (1-го поколения)"; 194 | "Watch1,2" = "Apple Watch (2-го поколения)"; 195 | "Watch2,3" = "Apple Watch Series 2"; 196 | "Watch2,4" = "Apple Watch Series 2"; 197 | "Watch2,6" = "Apple Watch Series 1"; 198 | "Watch2,7" = "Apple Watch Series 1"; 199 | "Watch3,1" = "Apple Watch Series 3"; 200 | "Watch3,2" = "Apple Watch Series 3"; 201 | "Watch3,3" = "Apple Watch Series 3"; 202 | "Watch3,4" = "Apple Watch Series 3"; 203 | "Watch4,1" = "Apple Watch Series 4"; 204 | "Watch4,2" = "Apple Watch Series 4"; 205 | "Watch4,3" = "Apple Watch Series 4"; 206 | "Watch4,4" = "Apple Watch Series 4"; 207 | "Watch5,1" = "Apple Watch Series 5"; 208 | "Watch5,2" = "Apple Watch Series 5"; 209 | "Watch5,3" = "Apple Watch Series 5"; 210 | "Watch5,4" = "Apple Watch Series 5"; 211 | "Watch5,9" = "Apple Watch SE (1-го поколения)"; 212 | "Watch5,10" = "Apple Watch SE (1-го поколения)"; 213 | "Watch5,11" = "Apple Watch SE (1-го поколения)"; 214 | "Watch5,12" = "Apple Watch SE (1-го поколения)"; 215 | "Watch6,1" = "Apple Watch Series 6"; 216 | "Watch6,2" = "Apple Watch Series 6"; 217 | "Watch6,3" = "Apple Watch Series 6"; 218 | "Watch6,4" = "Apple Watch Series 6"; 219 | "Watch6,6" = "Apple Watch Series 7"; 220 | "Watch6,7" = "Apple Watch Series 7"; 221 | "Watch6,8" = "Apple Watch Series 7"; 222 | "Watch6,9" = "Apple Watch Series 7"; 223 | "Watch6,10" = "Apple Watch SE"; 224 | "Watch6,11" = "Apple Watch SE"; 225 | "Watch6,12" = "Apple Watch SE"; 226 | "Watch6,13" = "Apple Watch SE"; 227 | "Watch6,14" = "Apple Watch Series 8"; 228 | "Watch6,15" = "Apple Watch Series 8"; 229 | "Watch6,16" = "Apple Watch Series 8"; 230 | "Watch6,17" = "Apple Watch Series 8"; 231 | "Watch6,18" = "Apple Watch Ultra"; 232 | "Watch7,1" = "Apple Watch Series 9"; 233 | "Watch7,2" = "Apple Watch Series 9"; 234 | "Watch7,3" = "Apple Watch Series 9"; 235 | "Watch7,4" = "Apple Watch Series 9"; 236 | "Watch7,5" = "Apple Watch Ultra 2"; 237 | "Watch7,8" = "Apple Watch Series 10"; 238 | "Watch7,9" = "Apple Watch Series 10"; 239 | "Watch7,10" = "Apple Watch Series 10"; 240 | "Watch7,11" = "Apple Watch Series 10"; 241 | 242 | 243 | // MARK: Developer models 244 | "i386" = "симулятор"; 245 | "x86_64" = "симулятор"; 246 | -------------------------------------------------------------------------------- /Sources/LocalizedDeviceModel/Resources/zh-Hans.lproj/DeviceModel.strings: -------------------------------------------------------------------------------- 1 | /* 2 | DeviceModel.strings 3 | BDLocalizedDevicesModels 4 | 5 | Created by Benoit Deldicque on 01/08/2018. 6 | Copyright © 2018 Benoit Deldicque. All rights reserved. 7 | */ 8 | 9 | // MARK: iPhone models 10 | "iPhone1,1" = "iPhone 2G"; 11 | "iPhone1,2" = "iPhone 3G"; 12 | "iPhone2,1" = "iPhone 3GS"; 13 | "iPhone3,1" = "iPhone 4"; 14 | "iPhone3,2" = "iPhone 4"; 15 | "iPhone3,3" = "iPhone 4"; 16 | "iPhone4,1" = "iPhone 4S"; 17 | "iPhone5,1" = "iPhone 5"; 18 | "iPhone5,2" = "iPhone 5"; 19 | "iPhone5,3" = "iPhone 5c"; 20 | "iPhone5,4" = "iPhone 5c"; 21 | "iPhone6,1" = "iPhone 5s"; 22 | "iPhone6,2" = "iPhone 5s"; 23 | "iPhone7,1" = "iPhone 6 Plus"; 24 | "iPhone7,2" = "iPhone 6"; 25 | "iPhone8,2" = "iPhone 6s Plus"; 26 | "iPhone8,1" = "iPhone 6s"; 27 | "iPhone8,4" = "iPhone SE"; 28 | "iPhone9,1" = "iPhone 7"; 29 | "iPhone9,2" = "iPhone 7 Plus"; 30 | "iPhone9,3" = "iPhone 7"; 31 | "iPhone9,4" = "iPhone 7 Plus"; 32 | "iPhone10,1" = "iPhone 8"; 33 | "iPhone10,2" = "iPhone 8 Plus"; 34 | "iPhone10,3" = "iPhone X"; 35 | "iPhone10,4" = "iPhone 8"; 36 | "iPhone10,5" = "iPhone 8 Plus"; 37 | "iPhone10,6" = "iPhone X"; 38 | "iPhone11,2" = "iPhone XS"; 39 | "iPhone11,4" = "iPhone XS Max"; 40 | "iPhone11,6" = "iPhone XS Max"; 41 | "iPhone11,8" = "iPhone XR"; 42 | "iPhone12,1" = "iPhone 11"; 43 | "iPhone12,3" = "iPhone 11 Pro"; 44 | "iPhone12,5" = "iPhone 11 Pro Max"; 45 | "iPhone12,8" = "iPhone SE(第 2 代)"; 46 | "iPhone13,1" = "iPhone 12 mini"; 47 | "iPhone13,2" = "iPhone 12"; 48 | "iPhone13,3" = "iPhone 12 Pro"; 49 | "iPhone13,4" = "iPhone 12 Pro Max"; 50 | "iPhone14,2" = "iPhone 13 Pro"; 51 | "iPhone14,3" = "iPhone 13 Pro Max"; 52 | "iPhone14,4" = "iPhone 13 mini"; 53 | "iPhone14,5" = "iPhone 13"; 54 | "iPhone14,6" = "iPhone SE(第 3 代)"; 55 | "iPhone14,7" = "iPhone 14"; 56 | "iPhone14,8" = "iPhone 14 Plus"; 57 | "iPhone15,2" = "iPhone 14 Pro"; 58 | "iPhone15,3" = "iPhone 14 Pro Max"; 59 | "iPhone15,4" = "iPhone 15"; 60 | "iPhone15,5" = "iPhone 15 Plus"; 61 | "iPhone16,1" = "iPhone 15 Pro"; 62 | "iPhone16,2" = "iPhone 15 Pro Max"; 63 | "iPhone17,1" = "iPhone 16 Pro"; 64 | "iPhone17,2" = "iPhone 16 Pro Max"; 65 | "iPhone17,3" = "iPhone 16"; 66 | "iPhone17,4" = "iPhone 16 Plus"; 67 | "iPhone17,5" = "iPhone 16e"; 68 | 69 | 70 | // MARK: iPod touch models 71 | "iPod1,1" = "iPod touch"; 72 | "iPod2,1" = "iPod touch(第 2 代)"; 73 | "iPod3,1" = "iPod touch(第 3 代)"; 74 | "iPod4,1" = "iPod touch(第 4 代)"; 75 | "iPod5,1" = "iPod touch(第 5 代)"; 76 | "iPod7,1" = "iPod touch(第 6 代)"; 77 | "iPod9,1" = "iPod touch(第 7 代)"; 78 | 79 | 80 | // MARK: iPad models 81 | "iPad1,1" = "iPad"; 82 | "iPad1,2" = "iPad"; 83 | "iPad2,1" = "iPad 2"; 84 | "iPad2,2" = "iPad 2"; 85 | "iPad2,3" = "iPad 2"; 86 | "iPad2,4" = "iPad 2"; 87 | "iPad2,5" = "iPad mini"; 88 | "iPad2,6" = "iPad mini"; 89 | "iPad2,7" = "iPad mini"; 90 | "iPad3,1" = "iPad(第 3 代)"; 91 | "iPad3,2" = "iPad(第 3 代)"; 92 | "iPad3,3" = "iPad(第 3 代)"; 93 | "iPad3,4" = "iPad(第 4 代)"; 94 | "iPad3,5" = "iPad(第 4 代)"; 95 | "iPad3,6" = "iPad(第 4 代)"; 96 | "iPad4,1" = "iPad Air"; 97 | "iPad4,2" = "iPad Air"; 98 | "iPad4,3" = "iPad Air"; 99 | "iPad4,4" = "iPad mini 2"; 100 | "iPad4,5" = "iPad mini 2"; 101 | "iPad4,6" = "iPad mini 2"; 102 | "iPad4,7" = "iPad mini 3"; 103 | "iPad4,8" = "iPad mini 3"; 104 | "iPad4,9" = "iPad mini 3"; 105 | "iPad5,1" = "iPad mini 4"; 106 | "iPad5,2" = "iPad mini 4"; 107 | "iPad5,3" = "iPad Air 2"; 108 | "iPad5,4" = "iPad Air 2"; 109 | "iPad6,3" = "iPad Pro(9.7 英寸)"; 110 | "iPad6,4" = "iPad Pro(9.7 英寸)"; 111 | "iPad6,7" = "iPad Pro(12.9 英寸)"; 112 | "iPad6,8" = "iPad Pro(12.9 英寸)"; 113 | "iPad6,11" = "iPad(第 5 代)"; 114 | "iPad6,12" = "iPad(第 5 代)"; 115 | "iPad7,1" = "iPad Pro(12.9 英寸,第 2 代)"; 116 | "iPad7,2" = "iPad Pro(12.9 英寸,第 2 代)"; 117 | "iPad7,3" = "iPad Pro(10.5 英寸)"; 118 | "iPad7,4" = "iPad Pro(10.5 英寸)"; 119 | "iPad7,5" = "iPad(第 6 代)"; 120 | "iPad7,6" = "iPad(第 6 代)"; 121 | "iPad7,11" = "iPad (第 7 代)"; 122 | "iPad7,12" = "iPad (第 7 代)"; 123 | "iPad8,1" = "iPad Pro (11 英寸)"; 124 | "iPad8,2" = "iPad Pro (11 英寸)"; 125 | "iPad8,3" = "iPad Pro (11 英寸)"; 126 | "iPad8,4" = "iPad Pro (11 英寸)"; 127 | "iPad8,5" = "iPad Pro (12.9 英寸,第 3 代)"; 128 | "iPad8,6" = "iPad Pro (12.9 英寸,第 3 代)"; 129 | "iPad8,7" = "iPad Pro (12.9 英寸,第 3 代)"; 130 | "iPad8,8" = "iPad Pro (12.9 英寸,第 3 代)"; 131 | "iPad8,9" = "iPad Pro (11 英寸,第 2 代)"; 132 | "iPad8,10" = "iPad Pro (11 英寸,第 2 代)"; 133 | "iPad8,11" = "iPad Pro (12.9 英寸,第 4 代)"; 134 | "iPad8,12" = "iPad Pro (12.9 英寸,第 4 代)"; 135 | "iPad11,1" = "iPad mini(第 5 代)"; 136 | "iPad11,2" = "iPad mini(第 5 代)"; 137 | "iPad11,3" = "iPad Air(第 3 代)"; 138 | "iPad11,4" = "iPad Air(第 3 代)"; 139 | "iPad11,6" = "iPad (第 8 代)"; 140 | "iPad11,7" = "iPad (第 8 代)"; 141 | "iPad12,1" = "iPad (第 9 代)"; 142 | "iPad12,2" = "iPad (第 9 代)"; 143 | "iPad13,1" = "iPad Air(第 4 代)"; 144 | "iPad13,2" = "iPad Air(第 4 代)"; 145 | "iPad13,4" = "iPad Pro (11 英寸, 第 3 代)"; 146 | "iPad13,5" = "iPad Pro (11 英寸, 第 3 代)"; 147 | "iPad13,6" = "iPad Pro (11 英寸, 第 3 代)"; 148 | "iPad13,7" = "iPad Pro (11 英寸, 第 3 代)"; 149 | "iPad13,8" = "iPad Pro (12.9 英寸,第 5 代)"; 150 | "iPad13,9" = "iPad Pro (12.9 英寸,第 5 代)"; 151 | "iPad13,10" = "iPad Pro (12.9 英寸,第 5 代)"; 152 | "iPad13,11" = "iPad Pro (12.9 英寸,第 5 代)"; 153 | "iPad13,16" = "iPad Air (第 5 代)"; 154 | "iPad13,17" = "iPad Air (第 5 代)"; 155 | "iPad13,18" = "iPad (第 10 代)"; 156 | "iPad13,19" = "iPad (第 10 代)"; 157 | "iPad14,1" = "iPad mini(第 6 代)"; 158 | "iPad14,2" = "iPad mini(第 6 代)"; 159 | "iPad14,3" = "iPad Pro 11 英寸 (第 4 代)"; 160 | "iPad14,4" = "iPad Pro 11 英寸 (第 4 代)"; 161 | "iPad14,5" = "iPad Pro 12.9 英寸 (第 6 代)"; 162 | "iPad14,6" = "iPad Pro 12.9 英寸 (第 6 代)"; 163 | "iPad14,8" = "iPad Air 11 英寸 (M2)"; 164 | "iPad14,9" = "iPad Air 11 英寸 (M2)"; 165 | "iPad14,10" = "iPad Air 13 英寸 (M2)"; 166 | "iPad14,11" = "iPad Air 13 英寸 (M2)"; 167 | "iPad15,3" = "iPad Air 11 英寸 (M3)"; 168 | "iPad15,4" = "iPad Air 11 英寸 (M3)"; 169 | "iPad15,5" = "iPad Air 13 英寸 (M3)"; 170 | "iPad15,6" = "iPad Air 13 英寸 (M3)"; 171 | "iPad15,7" = "iPad (A16)"; 172 | "iPad15,8" = "iPad (A16)"; 173 | "iPad16,1" = "iPad mini (A17 Pro)"; 174 | "iPad16,2" = "iPad mini (A17 Pro)"; 175 | "iPad16,3" = "iPad Pro 11 英寸 (M4)"; 176 | "iPad16,4" = "iPad Pro 11 英寸 (M4)"; 177 | "iPad16,5" = "iPad Pro 13 英寸 (M4)"; 178 | "iPad16,6" = "iPad Pro 13 英寸 (M4)"; 179 | 180 | 181 | // MARK: Apple TV models 182 | "AppleTV1,1" = "Apple TV(第 1 代)"; 183 | "AppleTV2,1" = "Apple TV(第 2 代)"; 184 | "AppleTV3,1" = "Apple TV(第 3 代)"; 185 | "AppleTV3,2" = "Apple TV(第 3 代)"; 186 | "AppleTV5,3" = "Apple TV HD"; 187 | "AppleTV6,2" = "Apple TV 4K"; 188 | "AppleTV11,1" = "Apple TV 4K(第 2 代)"; 189 | "AppleTV14,1" = "Apple TV 4K(第 3 代)"; 190 | 191 | 192 | // MARK: Apple Watch models 193 | "Watch1,1" = "Apple Watch(第 1 代)"; 194 | "Watch1,2" = "Apple Watch(第 2 代)"; 195 | "Watch2,3" = "Apple Watch Series 2"; 196 | "Watch2,4" = "Apple Watch Series 2"; 197 | "Watch2,6" = "Apple Watch Series 1"; 198 | "Watch2,7" = "Apple Watch Series 1"; 199 | "Watch3,1" = "Apple Watch Series 3"; 200 | "Watch3,2" = "Apple Watch Series 3"; 201 | "Watch3,3" = "Apple Watch Series 3"; 202 | "Watch3,4" = "Apple Watch Series 3"; 203 | "Watch4,1" = "Apple Watch Series 4"; 204 | "Watch4,2" = "Apple Watch Series 4"; 205 | "Watch4,3" = "Apple Watch Series 4"; 206 | "Watch4,4" = "Apple Watch Series 4"; 207 | "Watch5,1" = "Apple Watch Series 5"; 208 | "Watch5,2" = "Apple Watch Series 5"; 209 | "Watch5,3" = "Apple Watch Series 5"; 210 | "Watch5,4" = "Apple Watch Series 5"; 211 | "Watch5,9" = "Apple Watch SE(第 1 代)"; 212 | "Watch5,10" = "Apple Watch SE(第 1 代)"; 213 | "Watch5,11" = "Apple Watch SE(第 1 代)"; 214 | "Watch5,12" = "Apple Watch SE(第 1 代)"; 215 | "Watch6,1" = "Apple Watch Series 6"; 216 | "Watch6,2" = "Apple Watch Series 6"; 217 | "Watch6,3" = "Apple Watch Series 6"; 218 | "Watch6,4" = "Apple Watch Series 6"; 219 | "Watch6,6" = "Apple Watch Series 7"; 220 | "Watch6,7" = "Apple Watch Series 7"; 221 | "Watch6,8" = "Apple Watch Series 7"; 222 | "Watch6,9" = "Apple Watch Series 7"; 223 | "Watch6,10" = "Apple Watch SE"; 224 | "Watch6,11" = "Apple Watch SE"; 225 | "Watch6,12" = "Apple Watch SE"; 226 | "Watch6,13" = "Apple Watch SE"; 227 | "Watch6,14" = "Apple Watch Series 8"; 228 | "Watch6,15" = "Apple Watch Series 8"; 229 | "Watch6,16" = "Apple Watch Series 8"; 230 | "Watch6,17" = "Apple Watch Series 8"; 231 | "Watch6,18" = "Apple Watch Ultra"; 232 | "Watch7,1" = "Apple Watch Series 9"; 233 | "Watch7,2" = "Apple Watch Series 9"; 234 | "Watch7,3" = "Apple Watch Series 9"; 235 | "Watch7,4" = "Apple Watch Series 9"; 236 | "Watch7,5" = "Apple Watch Ultra 2"; 237 | "Watch7,8" = "Apple Watch Series 10"; 238 | "Watch7,9" = "Apple Watch Series 10"; 239 | "Watch7,10" = "Apple Watch Series 10"; 240 | "Watch7,11" = "Apple Watch Series 10"; 241 | 242 | 243 | // MARK: Developer models 244 | "i386" = "模拟器"; 245 | "x86_64" = "模拟器"; 246 | --------------------------------------------------------------------------------