Skip to content

Commit 07e77ff

Browse files
Fix Swiftlint and implement Hashable
1 parent 80bddd1 commit 07e77ff

File tree

10 files changed

+161
-124
lines changed

10 files changed

+161
-124
lines changed

DeviceIdentificator.xcodeproj/project.pbxproj

Lines changed: 60 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
archiveVersion = 1;
44
classes = {
55
};
6-
objectVersion = 48;
6+
objectVersion = 54;
77
objects = {
88

99
/* Begin PBXBuildFile section */
@@ -246,7 +246,7 @@
246246
isa = PBXProject;
247247
attributes = {
248248
LastSwiftUpdateCheck = 0940;
249-
LastUpgradeCheck = 0940;
249+
LastUpgradeCheck = 1420;
250250
ORGANIZATIONNAME = "Sebastián Varela";
251251
TargetAttributes = {
252252
E20BA6192139DD42005BA13B = {
@@ -324,6 +324,7 @@
324324
/* Begin PBXShellScriptBuildPhase section */
325325
E20BA6072138AFCB005BA13B /* Swiftlint */ = {
326326
isa = PBXShellScriptBuildPhase;
327+
alwaysOutOfDate = 1;
327328
buildActionMask = 2147483647;
328329
files = (
329330
);
@@ -334,10 +335,11 @@
334335
);
335336
runOnlyForDeploymentPostprocessing = 0;
336337
shellPath = /bin/sh;
337-
shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"warning: SwiftLint not installed, run: brew install swiftlint\"\nfi";
338+
shellScript = "export PATH=\"$PATH:/opt/homebrew/bin\"\nmint run swiftlint --fix\nmint run swiftlint\n";
338339
};
339340
E20BA63B2139E0AC005BA13B /* Swiftlint */ = {
340341
isa = PBXShellScriptBuildPhase;
342+
alwaysOutOfDate = 1;
341343
buildActionMask = 2147483647;
342344
files = (
343345
);
@@ -348,7 +350,7 @@
348350
);
349351
runOnlyForDeploymentPostprocessing = 0;
350352
shellPath = /bin/sh;
351-
shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"warning: SwiftLint not installed, run: brew install swiftlint\"\nfi";
353+
shellScript = "export PATH=\"$PATH:/opt/homebrew/bin\"\nmint run swiftlint --fix\nmint run swiftlint\n";
352354
};
353355
/* End PBXShellScriptBuildPhase section */
354356

@@ -425,12 +427,16 @@
425427
DYLIB_INSTALL_NAME_BASE = "@rpath";
426428
INFOPLIST_FILE = Source/Info.plist;
427429
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
428-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
430+
LD_RUNPATH_SEARCH_PATHS = (
431+
"$(inherited)",
432+
"@executable_path/Frameworks",
433+
"@loader_path/Frameworks",
434+
);
429435
PRODUCT_BUNDLE_IDENTIFIER = net.s3ba.DeviceIdentificator;
430436
SDKROOT = appletvos;
431437
SKIP_INSTALL = YES;
432438
TARGETED_DEVICE_FAMILY = 3;
433-
TVOS_DEPLOYMENT_TARGET = 10.1;
439+
TVOS_DEPLOYMENT_TARGET = 12.0;
434440
};
435441
name = Debug;
436442
};
@@ -446,12 +452,16 @@
446452
DYLIB_INSTALL_NAME_BASE = "@rpath";
447453
INFOPLIST_FILE = Source/Info.plist;
448454
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
449-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
455+
LD_RUNPATH_SEARCH_PATHS = (
456+
"$(inherited)",
457+
"@executable_path/Frameworks",
458+
"@loader_path/Frameworks",
459+
);
450460
PRODUCT_BUNDLE_IDENTIFIER = net.s3ba.DeviceIdentificator;
451461
SDKROOT = appletvos;
452462
SKIP_INSTALL = YES;
453463
TARGETED_DEVICE_FAMILY = 3;
454-
TVOS_DEPLOYMENT_TARGET = 10.1;
464+
TVOS_DEPLOYMENT_TARGET = 12.0;
455465
};
456466
name = Release;
457467
};
@@ -462,12 +472,16 @@
462472
CLANG_ENABLE_OBJC_WEAK = YES;
463473
CODE_SIGN_STYLE = Automatic;
464474
INFOPLIST_FILE = Tests/Info.plist;
465-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
475+
LD_RUNPATH_SEARCH_PATHS = (
476+
"$(inherited)",
477+
"@executable_path/Frameworks",
478+
"@loader_path/Frameworks",
479+
);
466480
PRODUCT_BUNDLE_IDENTIFIER = net.s3ba.DeviceIdentificatorTests;
467481
PRODUCT_NAME = "$(TARGET_NAME)";
468482
SDKROOT = appletvos;
469483
TARGETED_DEVICE_FAMILY = 3;
470-
TVOS_DEPLOYMENT_TARGET = 11.4;
484+
TVOS_DEPLOYMENT_TARGET = 12.0;
471485
};
472486
name = Debug;
473487
};
@@ -478,12 +492,16 @@
478492
CLANG_ENABLE_OBJC_WEAK = YES;
479493
CODE_SIGN_STYLE = Automatic;
480494
INFOPLIST_FILE = Tests/Info.plist;
481-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
495+
LD_RUNPATH_SEARCH_PATHS = (
496+
"$(inherited)",
497+
"@executable_path/Frameworks",
498+
"@loader_path/Frameworks",
499+
);
482500
PRODUCT_BUNDLE_IDENTIFIER = net.s3ba.DeviceIdentificatorTests;
483501
PRODUCT_NAME = "$(TARGET_NAME)";
484502
SDKROOT = appletvos;
485503
TARGETED_DEVICE_FAMILY = 3;
486-
TVOS_DEPLOYMENT_TARGET = 11.4;
504+
TVOS_DEPLOYMENT_TARGET = 12.0;
487505
};
488506
name = Release;
489507
};
@@ -495,8 +513,12 @@
495513
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
496514
CODE_SIGN_STYLE = Automatic;
497515
INFOPLIST_FILE = Tests/Info.plist;
498-
IPHONEOS_DEPLOYMENT_TARGET = 11.4;
499-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
516+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
517+
LD_RUNPATH_SEARCH_PATHS = (
518+
"$(inherited)",
519+
"@executable_path/Frameworks",
520+
"@loader_path/Frameworks",
521+
);
500522
PRODUCT_BUNDLE_IDENTIFIER = net.s3ba.DeviceIdentificatorTests;
501523
PRODUCT_NAME = "$(TARGET_NAME)";
502524
TARGETED_DEVICE_FAMILY = "1,2";
@@ -511,8 +533,12 @@
511533
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
512534
CODE_SIGN_STYLE = Automatic;
513535
INFOPLIST_FILE = Tests/Info.plist;
514-
IPHONEOS_DEPLOYMENT_TARGET = 11.4;
515-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
536+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
537+
LD_RUNPATH_SEARCH_PATHS = (
538+
"$(inherited)",
539+
"@executable_path/Frameworks",
540+
"@loader_path/Frameworks",
541+
);
516542
PRODUCT_BUNDLE_IDENTIFIER = net.s3ba.DeviceIdentificatorTests;
517543
PRODUCT_NAME = "$(TARGET_NAME)";
518544
TARGETED_DEVICE_FAMILY = "1,2";
@@ -544,6 +570,7 @@
544570
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
545571
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
546572
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
573+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
547574
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
548575
CLANG_WARN_STRICT_PROTOTYPES = YES;
549576
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -570,7 +597,7 @@
570597
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
571598
GCC_WARN_UNUSED_FUNCTION = YES;
572599
GCC_WARN_UNUSED_VARIABLE = YES;
573-
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
600+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
574601
MTL_ENABLE_DEBUG_INFO = YES;
575602
ONLY_ACTIVE_ARCH = YES;
576603
PRODUCT_NAME = DeviceIdentificator;
@@ -608,6 +635,7 @@
608635
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
609636
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
610637
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
638+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
611639
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
612640
CLANG_WARN_STRICT_PROTOTYPES = YES;
613641
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -628,11 +656,12 @@
628656
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
629657
GCC_WARN_UNUSED_FUNCTION = YES;
630658
GCC_WARN_UNUSED_VARIABLE = YES;
631-
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
659+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
632660
MTL_ENABLE_DEBUG_INFO = NO;
633661
PRODUCT_NAME = DeviceIdentificator;
634662
SDKROOT = iphoneos;
635-
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
663+
SWIFT_COMPILATION_MODE = wholemodule;
664+
SWIFT_OPTIMIZATION_LEVEL = "-O";
636665
SWIFT_VERSION = 5.0;
637666
VALIDATE_PRODUCT = YES;
638667
VERSIONING_SYSTEM = "apple-generic";
@@ -652,8 +681,12 @@
652681
DYLIB_INSTALL_NAME_BASE = "@rpath";
653682
INFOPLIST_FILE = Source/Info.plist;
654683
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
655-
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
656-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
684+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
685+
LD_RUNPATH_SEARCH_PATHS = (
686+
"$(inherited)",
687+
"@executable_path/Frameworks",
688+
"@loader_path/Frameworks",
689+
);
657690
PRODUCT_BUNDLE_IDENTIFIER = net.s3ba.DeviceIdentificator;
658691
SKIP_INSTALL = YES;
659692
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -673,8 +706,12 @@
673706
DYLIB_INSTALL_NAME_BASE = "@rpath";
674707
INFOPLIST_FILE = Source/Info.plist;
675708
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
676-
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
677-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
709+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
710+
LD_RUNPATH_SEARCH_PATHS = (
711+
"$(inherited)",
712+
"@executable_path/Frameworks",
713+
"@loader_path/Frameworks",
714+
);
678715
PRODUCT_BUNDLE_IDENTIFIER = net.s3ba.DeviceIdentificator;
679716
SKIP_INSTALL = YES;
680717
TARGETED_DEVICE_FAMILY = "1,2";

DeviceIdentificator.xcodeproj/xcshareddata/xcschemes/DeviceIdentificator-iOS.xcscheme

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0940"
3+
LastUpgradeVersion = "1420"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
@@ -26,8 +26,17 @@
2626
buildConfiguration = "Debug"
2727
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29-
codeCoverageEnabled = "YES"
30-
shouldUseLaunchSchemeArgsEnv = "YES">
29+
shouldUseLaunchSchemeArgsEnv = "YES"
30+
codeCoverageEnabled = "YES">
31+
<MacroExpansion>
32+
<BuildableReference
33+
BuildableIdentifier = "primary"
34+
BlueprintIdentifier = "E2A364F5200D104900668DF9"
35+
BuildableName = "DeviceIdentificator.framework"
36+
BlueprintName = "DeviceIdentificator-iOS"
37+
ReferencedContainer = "container:DeviceIdentificator.xcodeproj">
38+
</BuildableReference>
39+
</MacroExpansion>
3140
<Testables>
3241
<TestableReference
3342
skipped = "NO">
@@ -40,17 +49,6 @@
4049
</BuildableReference>
4150
</TestableReference>
4251
</Testables>
43-
<MacroExpansion>
44-
<BuildableReference
45-
BuildableIdentifier = "primary"
46-
BlueprintIdentifier = "E2A364F5200D104900668DF9"
47-
BuildableName = "DeviceIdentificator.framework"
48-
BlueprintName = "DeviceIdentificator-iOS"
49-
ReferencedContainer = "container:DeviceIdentificator.xcodeproj">
50-
</BuildableReference>
51-
</MacroExpansion>
52-
<AdditionalOptions>
53-
</AdditionalOptions>
5452
</TestAction>
5553
<LaunchAction
5654
buildConfiguration = "Debug"
@@ -71,8 +69,6 @@
7169
ReferencedContainer = "container:DeviceIdentificator.xcodeproj">
7270
</BuildableReference>
7371
</MacroExpansion>
74-
<AdditionalOptions>
75-
</AdditionalOptions>
7672
</LaunchAction>
7773
<ProfileAction
7874
buildConfiguration = "Release"

DeviceIdentificator.xcodeproj/xcshareddata/xcschemes/DeviceIdentificator-tvOS.xcscheme

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0940"
3+
LastUpgradeVersion = "1420"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
@@ -26,8 +26,17 @@
2626
buildConfiguration = "Debug"
2727
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29-
codeCoverageEnabled = "YES"
30-
shouldUseLaunchSchemeArgsEnv = "YES">
29+
shouldUseLaunchSchemeArgsEnv = "YES"
30+
codeCoverageEnabled = "YES">
31+
<MacroExpansion>
32+
<BuildableReference
33+
BuildableIdentifier = "primary"
34+
BlueprintIdentifier = "E20BA6192139DD42005BA13B"
35+
BuildableName = "DeviceIdentificator.framework"
36+
BlueprintName = "DeviceIdentificator-tvOS"
37+
ReferencedContainer = "container:DeviceIdentificator.xcodeproj">
38+
</BuildableReference>
39+
</MacroExpansion>
3140
<Testables>
3241
<TestableReference
3342
skipped = "NO">
@@ -40,17 +49,6 @@
4049
</BuildableReference>
4150
</TestableReference>
4251
</Testables>
43-
<MacroExpansion>
44-
<BuildableReference
45-
BuildableIdentifier = "primary"
46-
BlueprintIdentifier = "E20BA6192139DD42005BA13B"
47-
BuildableName = "DeviceIdentificator.framework"
48-
BlueprintName = "DeviceIdentificator-tvOS"
49-
ReferencedContainer = "container:DeviceIdentificator.xcodeproj">
50-
</BuildableReference>
51-
</MacroExpansion>
52-
<AdditionalOptions>
53-
</AdditionalOptions>
5452
</TestAction>
5553
<LaunchAction
5654
buildConfiguration = "Debug"
@@ -71,8 +69,6 @@
7169
ReferencedContainer = "container:DeviceIdentificator.xcodeproj">
7270
</BuildableReference>
7371
</MacroExpansion>
74-
<AdditionalOptions>
75-
</AdditionalOptions>
7672
</LaunchAction>
7773
<ProfileAction
7874
buildConfiguration = "Release"

Mintfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

Source/DeviceModel+CaseIterable.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public extension DeviceModel {
5252
.iPhone14Plus,
5353
.iPhone14Pro,
5454
.iPhone14ProMax,
55-
55+
5656
// iPods
5757
.iPodTouch1G,
5858
.iPodTouch2G,
@@ -61,7 +61,7 @@ public extension DeviceModel {
6161
.iPodTouch5G,
6262
.iPodTouch6G,
6363
.iPodTouch7G,
64-
64+
6565
// iPads
6666
.iPad1G(.wifi),
6767
.iPad1G(.celullar),
@@ -151,12 +151,12 @@ public extension DeviceModel {
151151
.iPadPro11inch4G(.celullar),
152152
.iPadPro12d9inch6G(.wifi),
153153
.iPadPro12d9inch6G(.celullar),
154-
154+
155155
// Apple TV
156156
.appleTV4G,
157157
.appleTV4K,
158158
.appleTV4K2G,
159-
.appleTV4K3G,
159+
.appleTV4K3G
160160
]
161161
}
162162
}

Source/DeviceModel+Name.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,8 @@ public extension DeviceModel {
103103
case .unknown(let model): return "Unknown device (\(model))"
104104
}
105105
}
106+
107+
func hash(into hasher: inout Hasher) {
108+
hasher.combine(name)
109+
}
106110
}

0 commit comments

Comments
 (0)