diff --git a/CHANGELOG.md b/CHANGELOG.md index 31b45f2..55d08f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 0.3.11 +- **Add**: Carthage support. +- **[Breaking change]**: Remove `BaseDateFormatter`. Use `NumberFormattingService` from LeadKit instead. + ### 0.3.10 - **[Breaking change]**: Remove `isTouchIdSupported` and `isFaceIdSupported`. diff --git a/Cartfile b/Cartfile new file mode 100644 index 0000000..0165832 --- /dev/null +++ b/Cartfile @@ -0,0 +1,11 @@ +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/SwiftDate/SwiftDate.json" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/LeadKit/LeadKit.json" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/Alamofire/Alamofire.json" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/RxAlamofire/RxAlamofire.json" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/KeychainAccess/KeychainAccess.json" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/CryptoSwift/CryptoSwift.json" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/SwiftValidator/SwiftValidator.json" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/PinLayout/PinLayout.json" +github "ReactiveX/RxSwift" +github "maxsokolov/TableKit" +github "pronebird/UIScrollView-InfiniteScroll" diff --git a/Cartfile.resolved b/Cartfile.resolved new file mode 100644 index 0000000..e95cf8f --- /dev/null +++ b/Cartfile.resolved @@ -0,0 +1,11 @@ +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/Alamofire/Alamofire.json" "4.8.1" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/CryptoSwift/CryptoSwift.json" "0.14.0" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/KeychainAccess/KeychainAccess.json" "3.1.2" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/LeadKit/LeadKit.json" "0.9.7" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/PinLayout/PinLayout.json" "1.8.6" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/RxAlamofire/RxAlamofire.json" "4.3.0" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/SwiftDate/SwiftDate.json" "5.1.0" +binary "https://raw.github.com/petropavel13/CarthageBinaries/master/SwiftValidator/SwiftValidator.json" "5.0.0" +github "ReactiveX/RxSwift" "4.4.0" +github "maxsokolov/TableKit" "2.8.1" +github "pronebird/UIScrollView-InfiniteScroll" "1.1.0" diff --git a/LeadKitAdditions.podspec b/LeadKitAdditions.podspec index f1b086a..ebd5295 100644 --- a/LeadKitAdditions.podspec +++ b/LeadKitAdditions.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "LeadKitAdditions" - s.version = "0.3.10" + s.version = "0.3.11" s.summary = "iOS framework with a bunch of tools for rapid development" s.homepage = "https://github.com/TouchInstinct/LeadKitAdditions" s.license = "Apache License, Version 2.0" @@ -12,10 +12,6 @@ Pod::Spec.new do |s| ss.ios.deployment_target = '9.0' ss.source_files = "Sources/**/*.swift" - ss.exclude_files = [ - "Sources/Services/Network/DefaultNetworkService+ActivityIndicator+Extension.swift", - ] - ss.dependency "LeadKit", '~> 0.9.0' ss.dependency "KeychainAccess", '3.1.0' ss.dependency "CryptoSwift", '~> 0.9.0' @@ -23,24 +19,6 @@ Pod::Spec.new do |s| ss.dependency "PinLayout", '~> 1.6' end - s.subspec 'Core-iOS-Extension' do |ss| - ss.platform = :ios, '9.0' - ss.source_files = "Sources/**/*.swift" - - ss.exclude_files = [ - "Sources/Classes/Cells/LabelTableViewCell/*.swift", - "Sources/Services/Network/DefaultNetworkService+ActivityIndicator.swift", - "Sources/Extensions/Cells/**/*.swift", - "Sources/Controllers/Passcode/**/*.swift" - ] - - ss.dependency "LeadKit/Core-iOS-Extension", '~> 0.9.0' - ss.dependency "KeychainAccess", '3.1.0' - ss.dependency "CryptoSwift", '~> 0.9.0' - ss.dependency "SwiftValidator", '4.0.2' - ss.dependency "PinLayout", '~> 1.6' - end - s.default_subspec = 'Core' end diff --git a/LeadKitAdditions.xcodeproj/project.pbxproj b/LeadKitAdditions.xcodeproj/project.pbxproj index b1971c0..03019c6 100644 --- a/LeadKitAdditions.xcodeproj/project.pbxproj +++ b/LeadKitAdditions.xcodeproj/project.pbxproj @@ -7,17 +7,11 @@ objects = { /* Begin PBXBuildFile section */ - 248389A288C0A6D7914F0546 /* Pods_LeadKitAdditions_LeadKitAdditions_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0ED4A1B793EAA73C9E95969F /* Pods_LeadKitAdditions_LeadKitAdditions_iOS.framework */; }; 6760AF1A207268EC00C2BB7E /* PinLayoutCell+DefaultImplementation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6760AF19207268EC00C2BB7E /* PinLayoutCell+DefaultImplementation.swift */; }; 67779CBC206986390098F024 /* BaseTextFieldViewEvents+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67779CBB206986390098F024 /* BaseTextFieldViewEvents+Extensions.swift */; }; - 67779CBD206986390098F024 /* BaseTextFieldViewEvents+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67779CBB206986390098F024 /* BaseTextFieldViewEvents+Extensions.swift */; }; 678D26AA206935B900B05B93 /* BiometricsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 678D26A9206935B900B05B93 /* BiometricsService.swift */; }; - 67B4E6EB206941CE00E233EA /* BiometricsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 678D26A9206935B900B05B93 /* BiometricsService.swift */; }; - 67B4E6F3206945D200E233EA /* BaseTextFieldViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4E6F1206945D200E233EA /* BaseTextFieldViewModel.swift */; }; 67B4E6F6206945DD00E233EA /* OnlineValidationResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4E6F5206945DC00E233EA /* OnlineValidationResult.swift */; }; - 67B4E6F7206945DD00E233EA /* OnlineValidationResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4E6F5206945DC00E233EA /* OnlineValidationResult.swift */; }; 67B4E6F9206945F900E233EA /* OnlineValidationState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4E6F8206945F900E233EA /* OnlineValidationState.swift */; }; - 67B4E6FA206945F900E233EA /* OnlineValidationState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4E6F8206945F900E233EA /* OnlineValidationState.swift */; }; 67B4E6FB20694A4200E233EA /* BaseTextFieldViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4E6F1206945D200E233EA /* BaseTextFieldViewModel.swift */; }; 67C2A41620724BBA000A5682 /* SeparatorTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67C2A41520724BBA000A5682 /* SeparatorTableViewCell.swift */; }; 67C2A41820724EA0000A5682 /* LabelTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67C2A41720724EA0000A5682 /* LabelTableViewCell.swift */; }; @@ -26,13 +20,22 @@ 67CF05AA206E9880009A2AB9 /* PinLayoutCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67CF05A9206E9880009A2AB9 /* PinLayoutCell.swift */; }; 67CF05B0206E99DF009A2AB9 /* PinLayoutTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67CF05AF206E99DF009A2AB9 /* PinLayoutTableViewCell.swift */; }; 67D6041821627600002DAF5B /* LegacyConfigurableController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D6041721627600002DAF5B /* LegacyConfigurableController.swift */; }; + 786CBB2F220DD7A70017587F /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB22220DD7A70017587F /* RxSwift.framework */; }; + 786CBB30220DD7A70017587F /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB23220DD7A70017587F /* Alamofire.framework */; }; + 786CBB31220DD7A70017587F /* TableKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB24220DD7A70017587F /* TableKit.framework */; }; + 786CBB32220DD7A70017587F /* LeadKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB25220DD7A70017587F /* LeadKit.framework */; }; + 786CBB33220DD7A70017587F /* SwiftValidator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB26220DD7A70017587F /* SwiftValidator.framework */; }; + 786CBB34220DD7A70017587F /* UIScrollView_InfiniteScroll.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB27220DD7A70017587F /* UIScrollView_InfiniteScroll.framework */; }; + 786CBB35220DD7A70017587F /* RxAtomic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB28220DD7A70017587F /* RxAtomic.framework */; }; + 786CBB36220DD7A70017587F /* RxAlamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB29220DD7A70017587F /* RxAlamofire.framework */; }; + 786CBB37220DD7A70017587F /* SwiftDate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB2A220DD7A70017587F /* SwiftDate.framework */; }; + 786CBB38220DD7A70017587F /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB2B220DD7A70017587F /* RxCocoa.framework */; }; + 786CBB39220DD7A70017587F /* CryptoSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB2C220DD7A70017587F /* CryptoSwift.framework */; }; + 786CBB3A220DD7A70017587F /* KeychainAccess.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB2D220DD7A70017587F /* KeychainAccess.framework */; }; + 786CBB3B220DD7A70017587F /* PinLayout.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB2E220DD7A70017587F /* PinLayout.framework */; }; A6CFB8D91F5024A500A42CC2 /* Error+NetworkingExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6CFB8D81F5024A500A42CC2 /* Error+NetworkingExtensions.swift */; }; - B326804BA6CC8B8BB136A46A /* Pods_LeadKitAdditions_LeadKitAdditions_iOS_Extensions.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CFD5627139CAB27705F75C07 /* Pods_LeadKitAdditions_LeadKitAdditions_iOS_Extensions.framework */; }; CAE698E81E968820000394B0 /* LeadKitAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CAE698E61E968820000394B0 /* LeadKitAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ED0C34051F2906EC00FAE9FD /* BaseDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33D41F2906EC00FAE9FD /* BaseDateFormatter.swift */; }; - ED0C34061F2906EC00FAE9FD /* BaseDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33D41F2906EC00FAE9FD /* BaseDateFormatter.swift */; }; ED0C34071F2906EC00FAE9FD /* LoadingBarButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33D51F2906EC00FAE9FD /* LoadingBarButton.swift */; }; - ED0C34081F2906EC00FAE9FD /* LoadingBarButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33D51F2906EC00FAE9FD /* LoadingBarButton.swift */; }; ED0C34091F2906EC00FAE9FD /* PassCodeConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33D91F2906EC00FAE9FD /* PassCodeConfiguration.swift */; }; ED0C340B1F2906EC00FAE9FD /* PassCodeError.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33DA1F2906EC00FAE9FD /* PassCodeError.swift */; }; ED0C340D1F2906EC00FAE9FD /* PassCodeHolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33DB1F2906EC00FAE9FD /* PassCodeHolder.swift */; }; @@ -41,27 +44,16 @@ ED0C34131F2906EC00FAE9FD /* BasePassCodeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33DF1F2906EC00FAE9FD /* BasePassCodeViewController.swift */; }; ED0C34151F2906EC00FAE9FD /* BasePassCodeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33E11F2906EC00FAE9FD /* BasePassCodeViewModel.swift */; }; ED0C341F1F2906EC00FAE9FD /* UIBarButtonItem+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33E81F2906EC00FAE9FD /* UIBarButtonItem+Extensions.swift */; }; - ED0C34201F2906EC00FAE9FD /* UIBarButtonItem+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33E81F2906EC00FAE9FD /* UIBarButtonItem+Extensions.swift */; }; ED0C34211F2906EC00FAE9FD /* UserDefaults+UserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33E91F2906EC00FAE9FD /* UserDefaults+UserService.swift */; }; - ED0C34221F2906EC00FAE9FD /* UserDefaults+UserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33E91F2906EC00FAE9FD /* UserDefaults+UserService.swift */; }; ED0C342D1F2906EC00FAE9FD /* BasePassCodeService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33F11F2906EC00FAE9FD /* BasePassCodeService.swift */; }; - ED0C342E1F2906EC00FAE9FD /* BasePassCodeService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33F11F2906EC00FAE9FD /* BasePassCodeService.swift */; }; ED0C342F1F2906EC00FAE9FD /* BaseUserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33F21F2906EC00FAE9FD /* BaseUserService.swift */; }; - ED0C34301F2906EC00FAE9FD /* BaseUserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33F21F2906EC00FAE9FD /* BaseUserService.swift */; }; ED0C343F1F2906EC00FAE9FD /* ValidationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33FC1F2906EC00FAE9FD /* ValidationError.swift */; }; - ED0C34401F2906EC00FAE9FD /* ValidationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33FC1F2906EC00FAE9FD /* ValidationError.swift */; }; ED0C34411F2906EC00FAE9FD /* ValidationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33FD1F2906EC00FAE9FD /* ValidationItem.swift */; }; - ED0C34421F2906EC00FAE9FD /* ValidationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33FD1F2906EC00FAE9FD /* ValidationItem.swift */; }; ED0C34431F2906EC00FAE9FD /* ValidationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33FE1F2906EC00FAE9FD /* ValidationService.swift */; }; - ED0C34441F2906EC00FAE9FD /* ValidationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33FE1F2906EC00FAE9FD /* ValidationService.swift */; }; EF5A43B1206E7A67003CED07 /* PassCodeDelayedDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF5A43B0206E7A67003CED07 /* PassCodeDelayedDescription.swift */; }; - EFBD55921EBB9A980062AA63 /* LeadKitAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CAE698E61E968820000394B0 /* LeadKitAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 01605ECA03749D49C27FA3DD /* Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.release.xcconfig"; path = "Pods/Target Support Files/Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions/Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.release.xcconfig"; sourceTree = ""; }; - 0ED4A1B793EAA73C9E95969F /* Pods_LeadKitAdditions_LeadKitAdditions_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LeadKitAdditions_LeadKitAdditions_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 49738551AC648B0AFA74E57F /* Pods-LeadKitAdditions-LeadKitAdditions iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LeadKitAdditions-LeadKitAdditions iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LeadKitAdditions-LeadKitAdditions iOS/Pods-LeadKitAdditions-LeadKitAdditions iOS.debug.xcconfig"; sourceTree = ""; }; 67528BCE206E3CC6009F2525 /* iOS.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = iOS.playground; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; 6760AF19207268EC00C2BB7E /* PinLayoutCell+DefaultImplementation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PinLayoutCell+DefaultImplementation.swift"; sourceTree = ""; }; 67779CBB206986390098F024 /* BaseTextFieldViewEvents+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BaseTextFieldViewEvents+Extensions.swift"; sourceTree = ""; }; @@ -76,14 +68,22 @@ 67CF05A9206E9880009A2AB9 /* PinLayoutCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PinLayoutCell.swift; sourceTree = ""; }; 67CF05AF206E99DF009A2AB9 /* PinLayoutTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PinLayoutTableViewCell.swift; sourceTree = ""; }; 67D6041721627600002DAF5B /* LegacyConfigurableController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyConfigurableController.swift; sourceTree = ""; }; - 7B7F57C5E5275C4D8DC71992 /* Pods_LeadKitAdditions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LeadKitAdditions.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D549FA5A7579702358E07DF /* Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions/Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.debug.xcconfig"; sourceTree = ""; }; + 786CBB22220DD7A70017587F /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = Carthage/Build/iOS/RxSwift.framework; sourceTree = ""; }; + 786CBB23220DD7A70017587F /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Alamofire.framework; path = Carthage/Build/iOS/Alamofire.framework; sourceTree = ""; }; + 786CBB24220DD7A70017587F /* TableKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TableKit.framework; path = Carthage/Build/iOS/TableKit.framework; sourceTree = ""; }; + 786CBB25220DD7A70017587F /* LeadKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = LeadKit.framework; path = Carthage/Build/iOS/LeadKit.framework; sourceTree = ""; }; + 786CBB26220DD7A70017587F /* SwiftValidator.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftValidator.framework; path = Carthage/Build/iOS/SwiftValidator.framework; sourceTree = ""; }; + 786CBB27220DD7A70017587F /* UIScrollView_InfiniteScroll.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIScrollView_InfiniteScroll.framework; path = Carthage/Build/iOS/UIScrollView_InfiniteScroll.framework; sourceTree = ""; }; + 786CBB28220DD7A70017587F /* RxAtomic.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxAtomic.framework; path = Carthage/Build/iOS/RxAtomic.framework; sourceTree = ""; }; + 786CBB29220DD7A70017587F /* RxAlamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxAlamofire.framework; path = Carthage/Build/iOS/RxAlamofire.framework; sourceTree = ""; }; + 786CBB2A220DD7A70017587F /* SwiftDate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftDate.framework; path = Carthage/Build/iOS/SwiftDate.framework; sourceTree = ""; }; + 786CBB2B220DD7A70017587F /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = Carthage/Build/iOS/RxCocoa.framework; sourceTree = ""; }; + 786CBB2C220DD7A70017587F /* CryptoSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CryptoSwift.framework; path = Carthage/Build/iOS/CryptoSwift.framework; sourceTree = ""; }; + 786CBB2D220DD7A70017587F /* KeychainAccess.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = KeychainAccess.framework; path = Carthage/Build/iOS/KeychainAccess.framework; sourceTree = ""; }; + 786CBB2E220DD7A70017587F /* PinLayout.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PinLayout.framework; path = Carthage/Build/iOS/PinLayout.framework; sourceTree = ""; }; A6CFB8D81F5024A500A42CC2 /* Error+NetworkingExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Error+NetworkingExtensions.swift"; sourceTree = ""; }; CAE698E31E968820000394B0 /* LeadKitAdditions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LeadKitAdditions.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CAE698E61E968820000394B0 /* LeadKitAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LeadKitAdditions.h; sourceTree = ""; }; - CFD5627139CAB27705F75C07 /* Pods_LeadKitAdditions_LeadKitAdditions_iOS_Extensions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LeadKitAdditions_LeadKitAdditions_iOS_Extensions.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0AB283D10B2175EFDBF7924 /* Pods-LeadKitAdditions-LeadKitAdditions iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LeadKitAdditions-LeadKitAdditions iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-LeadKitAdditions-LeadKitAdditions iOS/Pods-LeadKitAdditions-LeadKitAdditions iOS.release.xcconfig"; sourceTree = ""; }; - ED0C33D41F2906EC00FAE9FD /* BaseDateFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseDateFormatter.swift; sourceTree = ""; }; ED0C33D51F2906EC00FAE9FD /* LoadingBarButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadingBarButton.swift; sourceTree = ""; }; ED0C33D91F2906EC00FAE9FD /* PassCodeConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PassCodeConfiguration.swift; sourceTree = ""; }; ED0C33DA1F2906EC00FAE9FD /* PassCodeError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PassCodeError.swift; sourceTree = ""; }; @@ -100,7 +100,6 @@ ED0C33FD1F2906EC00FAE9FD /* ValidationItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidationItem.swift; sourceTree = ""; }; ED0C33FE1F2906EC00FAE9FD /* ValidationService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidationService.swift; sourceTree = ""; }; EF5A43B0206E7A67003CED07 /* PassCodeDelayedDescription.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PassCodeDelayedDescription.swift; sourceTree = ""; }; - EFBD55701EBB87100062AA63 /* LeadKitAdditions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LeadKitAdditions.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EFBD55781EBB893F0062AA63 /* Info-iOS-Extensions.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS-Extensions.plist"; sourceTree = ""; }; EFBD55791EBB893F0062AA63 /* Info-iOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -110,15 +109,19 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 248389A288C0A6D7914F0546 /* Pods_LeadKitAdditions_LeadKitAdditions_iOS.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - EFBD556C1EBB87100062AA63 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - B326804BA6CC8B8BB136A46A /* Pods_LeadKitAdditions_LeadKitAdditions_iOS_Extensions.framework in Frameworks */, + 786CBB2F220DD7A70017587F /* RxSwift.framework in Frameworks */, + 786CBB30220DD7A70017587F /* Alamofire.framework in Frameworks */, + 786CBB31220DD7A70017587F /* TableKit.framework in Frameworks */, + 786CBB32220DD7A70017587F /* LeadKit.framework in Frameworks */, + 786CBB33220DD7A70017587F /* SwiftValidator.framework in Frameworks */, + 786CBB34220DD7A70017587F /* UIScrollView_InfiniteScroll.framework in Frameworks */, + 786CBB35220DD7A70017587F /* RxAtomic.framework in Frameworks */, + 786CBB36220DD7A70017587F /* RxAlamofire.framework in Frameworks */, + 786CBB37220DD7A70017587F /* SwiftDate.framework in Frameworks */, + 786CBB38220DD7A70017587F /* RxCocoa.framework in Frameworks */, + 786CBB39220DD7A70017587F /* CryptoSwift.framework in Frameworks */, + 786CBB3A220DD7A70017587F /* KeychainAccess.framework in Frameworks */, + 786CBB3B220DD7A70017587F /* PinLayout.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -180,9 +183,19 @@ A3117951840B8B7D2E7A8A80 /* Frameworks */ = { isa = PBXGroup; children = ( - 7B7F57C5E5275C4D8DC71992 /* Pods_LeadKitAdditions.framework */, - 0ED4A1B793EAA73C9E95969F /* Pods_LeadKitAdditions_LeadKitAdditions_iOS.framework */, - CFD5627139CAB27705F75C07 /* Pods_LeadKitAdditions_LeadKitAdditions_iOS_Extensions.framework */, + 786CBB23220DD7A70017587F /* Alamofire.framework */, + 786CBB2C220DD7A70017587F /* CryptoSwift.framework */, + 786CBB2D220DD7A70017587F /* KeychainAccess.framework */, + 786CBB25220DD7A70017587F /* LeadKit.framework */, + 786CBB2E220DD7A70017587F /* PinLayout.framework */, + 786CBB29220DD7A70017587F /* RxAlamofire.framework */, + 786CBB28220DD7A70017587F /* RxAtomic.framework */, + 786CBB2B220DD7A70017587F /* RxCocoa.framework */, + 786CBB22220DD7A70017587F /* RxSwift.framework */, + 786CBB2A220DD7A70017587F /* SwiftDate.framework */, + 786CBB26220DD7A70017587F /* SwiftValidator.framework */, + 786CBB24220DD7A70017587F /* TableKit.framework */, + 786CBB27220DD7A70017587F /* UIScrollView_InfiniteScroll.framework */, ); name = Frameworks; sourceTree = ""; @@ -191,7 +204,6 @@ isa = PBXGroup; children = ( A3117951840B8B7D2E7A8A80 /* Frameworks */, - F8A65FEC7C0EB4B93746E50F /* Pods */, CAE698E41E968820000394B0 /* Products */, CAE698E51E968820000394B0 /* Sources */, 67528BCE206E3CC6009F2525 /* iOS.playground */, @@ -202,7 +214,6 @@ isa = PBXGroup; children = ( CAE698E31E968820000394B0 /* LeadKitAdditions.framework */, - EFBD55701EBB87100062AA63 /* LeadKitAdditions.framework */, ); name = Products; sourceTree = ""; @@ -227,7 +238,6 @@ children = ( 67528BCB206E3C12009F2525 /* Cells */, 67B4E6F0206945D200E233EA /* BaseTextFieldViewModel */, - ED0C33D41F2906EC00FAE9FD /* BaseDateFormatter.swift */, ED0C33D51F2906EC00FAE9FD /* LoadingBarButton.swift */, ); path = Classes; @@ -324,17 +334,6 @@ path = ValidationService; sourceTree = ""; }; - F8A65FEC7C0EB4B93746E50F /* Pods */ = { - isa = PBXGroup; - children = ( - 49738551AC648B0AFA74E57F /* Pods-LeadKitAdditions-LeadKitAdditions iOS.debug.xcconfig */, - D0AB283D10B2175EFDBF7924 /* Pods-LeadKitAdditions-LeadKitAdditions iOS.release.xcconfig */, - 9D549FA5A7579702358E07DF /* Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.debug.xcconfig */, - 01605ECA03749D49C27FA3DD /* Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -346,14 +345,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - EFBD556D1EBB87100062AA63 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - EFBD55921EBB9A980062AA63 /* LeadKitAdditions.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -361,7 +352,6 @@ isa = PBXNativeTarget; buildConfigurationList = CAE698EB1E968820000394B0 /* Build configuration list for PBXNativeTarget "LeadKitAdditions iOS" */; buildPhases = ( - E8E82E34792B38EF225575D7 /* [CP] Check Pods Manifest.lock */, CAE698DE1E968820000394B0 /* Sources */, CAE698DF1E968820000394B0 /* Frameworks */, CAE698E01E968820000394B0 /* Headers */, @@ -377,26 +367,6 @@ productReference = CAE698E31E968820000394B0 /* LeadKitAdditions.framework */; productType = "com.apple.product-type.framework"; }; - EFBD556F1EBB87100062AA63 /* LeadKitAdditions iOS Extensions */ = { - isa = PBXNativeTarget; - buildConfigurationList = EFBD55751EBB87100062AA63 /* Build configuration list for PBXNativeTarget "LeadKitAdditions iOS Extensions" */; - buildPhases = ( - 1C200FD9213D2207669C4304 /* [CP] Check Pods Manifest.lock */, - EFBD556B1EBB87100062AA63 /* Sources */, - EFBD556C1EBB87100062AA63 /* Frameworks */, - EFBD556D1EBB87100062AA63 /* Headers */, - EFBD556E1EBB87100062AA63 /* Resources */, - ED69E7E91F2AD0E000C74895 /* Swiftlint */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "LeadKitAdditions iOS Extensions"; - productName = "LeadKitAdditions-iOS-Extensions"; - productReference = EFBD55701EBB87100062AA63 /* LeadKitAdditions.framework */; - productType = "com.apple.product-type.framework"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -411,10 +381,6 @@ LastSwiftMigration = 1000; ProvisioningStyle = Manual; }; - EFBD556F1EBB87100062AA63 = { - CreatedOnToolsVersion = 8.3.1; - ProvisioningStyle = Manual; - }; }; }; buildConfigurationList = CAE698DD1E968820000394B0 /* Build configuration list for PBXProject "LeadKitAdditions" */; @@ -430,7 +396,6 @@ projectRoot = ""; targets = ( CAE698E21E968820000394B0 /* LeadKitAdditions iOS */, - EFBD556F1EBB87100062AA63 /* LeadKitAdditions iOS Extensions */, ); }; /* End PBXProject section */ @@ -443,34 +408,9 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - EFBD556E1EBB87100062AA63 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 1C200FD9213D2207669C4304 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; CAE6990A1E969A7A000394B0 /* Swiftlint */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -483,39 +423,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = ". build-scripts/xcode/build_phases/swiftlint.sh Sources"; - }; - E8E82E34792B38EF225575D7 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-LeadKitAdditions-LeadKitAdditions iOS-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - ED69E7E91F2AD0E000C74895 /* Swiftlint */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = Swiftlint; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = ". build-scripts/xcode/build_phases/swiftlint.sh Sources"; + shellScript = "CONFIG_PATH=${PROJECT_DIR}/build-scripts/xcode/.swiftlint.yml\n\nif which swiftlint >/dev/null; then\nswiftlint autocorrect --path Sources --config ${CONFIG_PATH} && swiftlint --path Sources --config ${CONFIG_PATH}\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -549,7 +457,6 @@ 6760AF1A207268EC00C2BB7E /* PinLayoutCell+DefaultImplementation.swift in Sources */, ED0C34211F2906EC00FAE9FD /* UserDefaults+UserService.swift in Sources */, ED0C34111F2906EC00FAE9FD /* PassCodeValidationResult.swift in Sources */, - ED0C34051F2906EC00FAE9FD /* BaseDateFormatter.swift in Sources */, ED0C34431F2906EC00FAE9FD /* ValidationService.swift in Sources */, ED0C340B1F2906EC00FAE9FD /* PassCodeError.swift in Sources */, 67B4E6F6206945DD00E233EA /* OnlineValidationResult.swift in Sources */, @@ -558,27 +465,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - EFBD556B1EBB87100062AA63 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 67779CBD206986390098F024 /* BaseTextFieldViewEvents+Extensions.swift in Sources */, - ED0C34401F2906EC00FAE9FD /* ValidationError.swift in Sources */, - ED0C34301F2906EC00FAE9FD /* BaseUserService.swift in Sources */, - ED0C34421F2906EC00FAE9FD /* ValidationItem.swift in Sources */, - ED0C34201F2906EC00FAE9FD /* UIBarButtonItem+Extensions.swift in Sources */, - 67B4E6FA206945F900E233EA /* OnlineValidationState.swift in Sources */, - 67B4E6EB206941CE00E233EA /* BiometricsService.swift in Sources */, - ED0C342E1F2906EC00FAE9FD /* BasePassCodeService.swift in Sources */, - 67B4E6F7206945DD00E233EA /* OnlineValidationResult.swift in Sources */, - 67B4E6F3206945D200E233EA /* BaseTextFieldViewModel.swift in Sources */, - ED0C34081F2906EC00FAE9FD /* LoadingBarButton.swift in Sources */, - ED0C34221F2906EC00FAE9FD /* UserDefaults+UserService.swift in Sources */, - ED0C34061F2906EC00FAE9FD /* BaseDateFormatter.swift in Sources */, - ED0C34441F2906EC00FAE9FD /* ValidationService.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ @@ -701,9 +587,8 @@ }; CAE698EC1E968820000394B0 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 49738551AC648B0AFA74E57F /* Pods-LeadKitAdditions-LeadKitAdditions iOS.debug.xcconfig */; buildSettings = { - APPLICATION_EXTENSION_API_ONLY = NO; + APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; DEFINES_MODULE = YES; @@ -711,6 +596,10 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); INFOPLIST_FILE = "$(SRCROOT)/Sources/Info-iOS.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; @@ -726,9 +615,8 @@ }; CAE698ED1E968820000394B0 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0AB283D10B2175EFDBF7924 /* Pods-LeadKitAdditions-LeadKitAdditions iOS.release.xcconfig */; buildSettings = { - APPLICATION_EXTENSION_API_ONLY = NO; + APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; DEFINES_MODULE = YES; @@ -736,6 +624,10 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); INFOPLIST_FILE = "$(SRCROOT)/Sources/Info-iOS.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; @@ -748,54 +640,6 @@ }; name = Release; }; - EFBD55761EBB87100062AA63 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9D549FA5A7579702358E07DF /* Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.debug.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "$(SRCROOT)/Sources/Info-iOS-Extensions.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "touchinstinct.LeadKitAdditions-iOS-Extensions"; - PRODUCT_NAME = LeadKitAdditions; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 4.2; - }; - name = Debug; - }; - EFBD55771EBB87100062AA63 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 01605ECA03749D49C27FA3DD /* Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.release.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "$(SRCROOT)/Sources/Info-iOS-Extensions.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "touchinstinct.LeadKitAdditions-iOS-Extensions"; - PRODUCT_NAME = LeadKitAdditions; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; - SWIFT_VERSION = 4.2; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -817,15 +661,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - EFBD55751EBB87100062AA63 /* Build configuration list for PBXNativeTarget "LeadKitAdditions iOS Extensions" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - EFBD55761EBB87100062AA63 /* Debug */, - EFBD55771EBB87100062AA63 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = CAE698DA1E968820000394B0 /* Project object */; diff --git a/LeadKitAdditions.xcodeproj/xcshareddata/xcschemes/LeadKitAdditions iOS.xcscheme b/LeadKitAdditions.xcodeproj/xcshareddata/xcschemes/LeadKitAdditions iOS.xcscheme new file mode 100644 index 0000000..2acb502 --- /dev/null +++ b/LeadKitAdditions.xcodeproj/xcshareddata/xcschemes/LeadKitAdditions iOS.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Podfile b/Podfile index 092d6b2..f597e20 100644 --- a/Podfile +++ b/Podfile @@ -16,12 +16,6 @@ abstract_target 'LeadKitAdditions' do pod 'LeadKit', '~> 0.9.0' end - - target 'LeadKitAdditions iOS Extensions' do - platform :ios, '9.0' - - pod "LeadKit/Core-iOS-Extension", '~> 0.9.0' - end end # If you have slow HDD diff --git a/Sources/Classes/BaseDateFormatter.swift b/Sources/Classes/BaseDateFormatter.swift deleted file mode 100644 index 3217355..0000000 --- a/Sources/Classes/BaseDateFormatter.swift +++ /dev/null @@ -1,107 +0,0 @@ -// -// Copyright (c) 2018 Touch Instinct -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the Software), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import Foundation - -/// Base date formatter class, contains most frequently used formats, including RFC3339 -open class BaseDateFormatter { - - private static let apiDateTimeFormat = "yyyy-MM-dd'T'HH:mm:ssZ" - private static let apiDateWithoutTimeFormat = "yyyy-MM-dd'T'Z" - private static let hourAndMinuteDateTimeFormat = "HH:mm" - private static let dayAndMonthDateTimeFormat = "dd MMM" - private static let dayMonthYearDateTimeFormat = "dd.MM.yyyy" - - private static let apiFormatter: DateFormatter = { - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = apiDateTimeFormat - return dateFormatter - }() - - private static let apiDateWithoutTimeFormatter: DateFormatter = { - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = apiDateWithoutTimeFormat - return dateFormatter - }() - - private static let hourAndMinuteFormatter: DateFormatter = { - let dateFormater = DateFormatter() - dateFormater.dateFormat = hourAndMinuteDateTimeFormat - return dateFormater - }() - - private static let dayAndMonthFormatter: DateFormatter = { - let dateFormater = DateFormatter() - dateFormater.dateFormat = dayAndMonthDateTimeFormat - return dateFormater - }() - - private static let dayMonthYearFormatter: DateFormatter = { - let dateFormater = DateFormatter() - dateFormater.dateFormat = dayMonthYearDateTimeFormat - return dateFormater - }() - - // MARK: - Public interface - - /// DateFormatter's locale can be overriden - open class var usedLocale: Locale { - return .current - } - - /// Parse date from string with format: yyyy-MM-dd'T'HH:mm:ssZ - public static func backendDate(fromStrDate strDate: String) -> Date? { - apiFormatter.locale = usedLocale - return apiFormatter.date(from: strDate) - } - - /// Serialize date into string with format: yyyy-MM-dd'T'HH:mm:ssZ - public static func backendStrDate(withDate date: Date) -> String { - apiFormatter.locale = usedLocale - return apiFormatter.string(from: date) - } - - /// Serialize date into string with format: yyyy-MM-dd'T'Z - public static func backendDateWithoutTime(withDate date: Date) -> String { - apiDateWithoutTimeFormatter.locale = usedLocale - return apiDateWithoutTimeFormatter.string(from: date) - } - - /// Serialize date into string with format: HH:mm - public static func hourAndMinuteStrDate(withDate date: Date) -> String { - hourAndMinuteFormatter.locale = usedLocale - return hourAndMinuteFormatter.string(from: date) - } - - /// Serialize date into string with format: dd MMM - public static func dayAndMonthStrDate(withDate date: Date) -> String { - hourAndMinuteFormatter.locale = usedLocale - return dayAndMonthFormatter.string(from: date) - } - - /// Serialize date into string with format: dd.MM.yyyy - public static func dayMonthYearStrDate(withDate date: Date) -> String { - hourAndMinuteFormatter.locale = usedLocale - return dayMonthYearFormatter.string(from: date) - } - -} diff --git a/Sources/Classes/BaseTextFieldViewModel/BaseTextFieldViewModel.swift b/Sources/Classes/BaseTextFieldViewModel/BaseTextFieldViewModel.swift index 3255c16..9e1b0e4 100644 --- a/Sources/Classes/BaseTextFieldViewModel/BaseTextFieldViewModel.swift +++ b/Sources/Classes/BaseTextFieldViewModel/BaseTextFieldViewModel.swift @@ -36,7 +36,6 @@ open class BaseTextFieldViewEvents: TextFieldViewEvents { public init(textChangedDriver: Driver) { self.textChangedDriver = textChangedDriver } - } /// Base implementation of text field view model events. @@ -60,7 +59,6 @@ open class BaseTextFieldViewModelEvents: TextFieldViewModelEvents { self.changeValidationStateDriver = changeValidationStateDriver self.changeOnlineValidationStateDriver = changeOnlineValidationStateDriver } - } public extension BaseTextFieldViewModelEvents { @@ -164,5 +162,4 @@ public extension BaseTextFieldViewModelEvents { changeValidationStateDriver: offlineValidationDriver, changeOnlineValidationStateDriver: onlineValidationDriver) } - } diff --git a/Sources/Classes/Cells/LabelTableViewCell/LabelCellViewModel.swift b/Sources/Classes/Cells/LabelTableViewCell/LabelCellViewModel.swift index 8451897..5ae28e1 100644 --- a/Sources/Classes/Cells/LabelTableViewCell/LabelCellViewModel.swift +++ b/Sources/Classes/Cells/LabelTableViewCell/LabelCellViewModel.swift @@ -52,5 +52,4 @@ open class LabelCellViewModel { self.labelInsets = labelInsets self.separatorType = separatorType } - } diff --git a/Sources/Classes/Cells/LabelTableViewCell/LabelTableViewCell.swift b/Sources/Classes/Cells/LabelTableViewCell/LabelTableViewCell.swift index 2337c7d..026820b 100644 --- a/Sources/Classes/Cells/LabelTableViewCell/LabelTableViewCell.swift +++ b/Sources/Classes/Cells/LabelTableViewCell/LabelTableViewCell.swift @@ -38,8 +38,7 @@ open class LabelTableViewCell: SeparatorTableViewCell { override open func addViews() { super.addViews() - contentContainerView.addSubview(backgroundImageView) - contentContainerView.addSubview(label) + contentContainerView.addSubviews(backgroundImageView, label) contentView.addSubview(contentContainerView) } @@ -137,5 +136,4 @@ open class LabelTableViewCell: SeparatorTableViewCell { public func configureLabelText(with viewText: ViewText) { label.configure(with: viewText) } - } diff --git a/Sources/Classes/Cells/PinLayoutTableViewCell.swift b/Sources/Classes/Cells/PinLayoutTableViewCell.swift index a43c20b..20f9b6b 100644 --- a/Sources/Classes/Cells/PinLayoutTableViewCell.swift +++ b/Sources/Classes/Cells/PinLayoutTableViewCell.swift @@ -90,7 +90,6 @@ open class PinLayoutTableViewCell: UITableViewCell, PinLayoutCell { open var contentHeight: CGFloat { return contentView.subviewsMaxY } - } private extension UIView { @@ -100,5 +99,4 @@ private extension UIView { .map { $0.frame.maxY } .max() ?? frame.maxY } - } diff --git a/Sources/Classes/Cells/SeparatorTableViewCell.swift b/Sources/Classes/Cells/SeparatorTableViewCell.swift index 8edd9ee..3d74525 100644 --- a/Sources/Classes/Cells/SeparatorTableViewCell.swift +++ b/Sources/Classes/Cells/SeparatorTableViewCell.swift @@ -60,8 +60,7 @@ open class SeparatorTableViewCell: PinLayoutTableViewCell { override open func addViews() { super.addViews() - contentView.addSubview(topSeparator) - contentView.addSubview(bottomSeparator) + contentView.addSubviews(topSeparator, bottomSeparator) } override open func layout() { @@ -100,5 +99,4 @@ open class SeparatorTableViewCell: PinLayoutTableViewCell { configureSeparator(with: .none) } - } diff --git a/Sources/Classes/LoadingBarButton.swift b/Sources/Classes/LoadingBarButton.swift index 358b011..780140f 100644 --- a/Sources/Classes/LoadingBarButton.swift +++ b/Sources/Classes/LoadingBarButton.swift @@ -42,6 +42,7 @@ public class LoadingBarButton { switch side { case .left: return navigationItem?.leftBarButtonItem + case .right: return navigationItem?.rightBarButtonItem } @@ -50,6 +51,7 @@ public class LoadingBarButton { switch side { case .left: navigationItem?.leftBarButtonItem = newValue + case .right: navigationItem?.rightBarButtonItem = newValue } @@ -71,14 +73,13 @@ public class LoadingBarButton { fileprivate func setState(waiting: Bool = false) { if waiting { - let activityIndicatorItem = UIBarButtonItem.activityIndicator + let activityIndicatorItem = UIBarButtonItem.activityIndicator barButtonItem = activityIndicatorItem.barButton activityIndicatorItem.activityIndicator.startAnimating() } else { barButtonItem = initialBarButton } } - } public extension Observable { @@ -100,5 +101,4 @@ public extension Observable { barButton.setState(waiting: false) }) } - } diff --git a/Sources/Controllers/PassCode/Model/PassCodeDelayedDescription.swift b/Sources/Controllers/PassCode/Model/PassCodeDelayedDescription.swift index 44f17f9..5acf800 100644 --- a/Sources/Controllers/PassCode/Model/PassCodeDelayedDescription.swift +++ b/Sources/Controllers/PassCode/Model/PassCodeDelayedDescription.swift @@ -32,5 +32,4 @@ public struct PassCodeDelayedDescription { self.description = description self.delay = delay } - } diff --git a/Sources/Controllers/PassCode/Model/PassCodeError.swift b/Sources/Controllers/PassCode/Model/PassCodeError.swift index 6e2a86b..ed688db 100644 --- a/Sources/Controllers/PassCode/Model/PassCodeError.swift +++ b/Sources/Controllers/PassCode/Model/PassCodeError.swift @@ -37,6 +37,7 @@ public extension PassCodeError { switch self { case .tooManyAttempts: return true + default: return false } diff --git a/Sources/Controllers/PassCode/Model/PassCodeHolder.swift b/Sources/Controllers/PassCode/Model/PassCodeHolder.swift index 874bd7a..21d9201 100644 --- a/Sources/Controllers/PassCode/Model/PassCodeHolder.swift +++ b/Sources/Controllers/PassCode/Model/PassCodeHolder.swift @@ -70,8 +70,10 @@ public class PassCodeHolderCreate: PassCodeHolderProtocol { switch enterStep { case .enter: firstPassCode = passCode + case .repeatEnter: secondPassCode = passCode + default: break } @@ -86,10 +88,9 @@ public class PassCodeHolderCreate: PassCodeHolderProtocol { } public func reset() { - firstPassCode = nil + firstPassCode = nil secondPassCode = nil } - } /// Holds information about pass code during pass code entering process @@ -119,7 +120,6 @@ public class PassCodeHolderEnter: PassCodeHolderProtocol { public func reset() { passCode = nil } - } /// Holds information about pass codes during pass code changing process @@ -155,10 +155,13 @@ public class PassCodeHolderChange: PassCodeHolderProtocol { switch (oldPassCode, newFirstPassCode, newSecondPassCode) { case (let oldPassCode?, nil, nil): return oldPassCode + case (_, _?, nil): return nil - case (_, let newFirstPassCode?, let newSecondPassCode?) where newFirstPassCode == newSecondPassCode: + + case let (_, newFirstPassCode?, newSecondPassCode?) where newFirstPassCode == newSecondPassCode: return newFirstPassCode + default: return nil } @@ -190,5 +193,4 @@ public class PassCodeHolderChange: PassCodeHolderProtocol { newSecondPassCode = nil } } - } diff --git a/Sources/Controllers/PassCode/Model/PassCodeHolderProtocol.swift b/Sources/Controllers/PassCode/Model/PassCodeHolderProtocol.swift index 0537f08..ead1c49 100644 --- a/Sources/Controllers/PassCode/Model/PassCodeHolderProtocol.swift +++ b/Sources/Controllers/PassCode/Model/PassCodeHolderProtocol.swift @@ -41,7 +41,6 @@ public protocol PassCodeHolderProtocol { /// Returns passCode or error if pass code is invalid func validate() -> PassCodeValidationResult - } public class PassCodeHolderBuilder { @@ -58,11 +57,12 @@ public class PassCodeHolderBuilder { switch type { case .create: return PassCodeHolderCreate() + case .enter: return PassCodeHolderEnter() + case .change: return PassCodeHolderChange() } } - } diff --git a/Sources/Controllers/PassCode/Model/PassCodeValidationResult.swift b/Sources/Controllers/PassCode/Model/PassCodeValidationResult.swift index f918a6d..9609386 100644 --- a/Sources/Controllers/PassCode/Model/PassCodeValidationResult.swift +++ b/Sources/Controllers/PassCode/Model/PassCodeValidationResult.swift @@ -25,7 +25,6 @@ public enum PassCodeValidationResult { case valid(String) case invalid(PassCodeError?) - } public extension PassCodeValidationResult { @@ -33,6 +32,7 @@ public extension PassCodeValidationResult { switch self { case .valid: return true + case .invalid: return false } @@ -42,6 +42,7 @@ public extension PassCodeValidationResult { switch self { case let .valid(passCode): return passCode + case .invalid: return nil } @@ -51,6 +52,7 @@ public extension PassCodeValidationResult { switch self { case let .invalid(error): return error + case .valid: return nil } diff --git a/Sources/Controllers/PassCode/View/BasePassCodeViewController.swift b/Sources/Controllers/PassCode/View/BasePassCodeViewController.swift index 81378fe..e4aa96b 100644 --- a/Sources/Controllers/PassCode/View/BasePassCodeViewController.swift +++ b/Sources/Controllers/PassCode/View/BasePassCodeViewController.swift @@ -49,7 +49,7 @@ public enum PassCodeControllerState { /// Base view controller that operates with pass code open class BasePassCodeViewController: UIViewController, LegacyConfigurableController { - public var viewModel: BasePassCodeViewModel! + public var viewModel: BasePassCodeViewModel! // swiftlint:disable:this implicitly_unwrapped_optional // MARK: - IBOutlets @@ -294,7 +294,6 @@ open class BasePassCodeViewController: UIViewController, LegacyConfigurableContr open func configureBarButtons() {} open func localize() {} - } // MARK: - UITextFieldDelegate @@ -308,5 +307,4 @@ extension BasePassCodeViewController: UITextFieldDelegate { let invalid = CharacterSet(charactersIn: "0123456789").inverted return string.rangeOfCharacter(from: invalid, options: [], range: string.startIndex..CFBundlePackageType FMWK CFBundleShortVersionString - 0.0.1 + 0.3.11 CFBundleVersion $(CURRENT_PROJECT_VERSION) NSPrincipalClass diff --git a/Sources/Protocols/Cells/PinLayoutCell.swift b/Sources/Protocols/Cells/PinLayoutCell.swift index a0380ef..da1d9e0 100644 --- a/Sources/Protocols/Cells/PinLayoutCell.swift +++ b/Sources/Protocols/Cells/PinLayoutCell.swift @@ -56,5 +56,4 @@ public protocol PinLayoutCell { /// Current content height. var contentHeight: CGFloat { get } - } diff --git a/Sources/Protocols/LegacyConfigurableController.swift b/Sources/Protocols/LegacyConfigurableController.swift index 8a2cf26..834db70 100644 --- a/Sources/Protocols/LegacyConfigurableController.swift +++ b/Sources/Protocols/LegacyConfigurableController.swift @@ -26,12 +26,11 @@ public protocol LegacyConfigurableController: InitializableView { associatedtype ViewModelT - var viewModel: ViewModelT! { get } + var viewModel: ViewModelT! { get } // swiftlint:disable:this implicitly_unwrapped_optional func configureBarButtons() func initialLoadView() - } public extension LegacyConfigurableController where Self: UIViewController { @@ -49,5 +48,4 @@ public extension LegacyConfigurableController where Self: UIViewController { localize() bindViews() } - } diff --git a/Sources/Protocols/ValidationService/OnlineValidationResult.swift b/Sources/Protocols/ValidationService/OnlineValidationResult.swift index 95f7b1a..25f5589 100644 --- a/Sources/Protocols/ValidationService/OnlineValidationResult.swift +++ b/Sources/Protocols/ValidationService/OnlineValidationResult.swift @@ -30,5 +30,4 @@ public protocol OnlineValidateable { /// May contain an error if validation did failed. var error: Error? { get } - } diff --git a/Sources/Services/BasePassCodeService.swift b/Sources/Services/BasePassCodeService.swift index b494d5d..b0b5aba 100644 --- a/Sources/Services/BasePassCodeService.swift +++ b/Sources/Services/BasePassCodeService.swift @@ -57,7 +57,6 @@ open class BasePassCodeService { private var passCodeHash: String? { return keychain[Keys.passCodeHash] } - } public extension BasePassCodeService { @@ -96,5 +95,4 @@ public extension BasePassCodeService { save(passCode: nil) isBiometricsAuthorizationEnabled = false } - } diff --git a/Sources/Services/BaseUserService.swift b/Sources/Services/BaseUserService.swift index 2fa1606..5cb3fdb 100644 --- a/Sources/Services/BaseUserService.swift +++ b/Sources/Services/BaseUserService.swift @@ -59,5 +59,4 @@ open class BaseUserService { UserDefaults.standard.sessionId = nil UserDefaults.standard.userLogin = nil } - } diff --git a/Sources/Services/BiometricsService.swift b/Sources/Services/BiometricsService.swift index a7a76c3..029e1ea 100644 --- a/Sources/Services/BiometricsService.swift +++ b/Sources/Services/BiometricsService.swift @@ -26,13 +26,13 @@ public typealias BiometricsAuthHandler = (Bool, Error?) -> Void /// Service that provide access to authentication via biometric public final class BiometricsService { - + public enum BiometryType { - + case faceID - + case touchID - + case none } @@ -55,18 +55,20 @@ public final class BiometricsService { /// Returns BiometryType supporting by device: TouchID, FaceID or none public var biometryType: BiometryType { let canEvaluate = canAuthenticateWithBiometrics - + if #available(iOS 11.0, *) { switch laContext.biometryType { case .touchID: return .touchID + case .faceID: return .faceID + case .none: return .none } } - + return canEvaluate ? .touchID : .none } diff --git a/Sources/Services/ValidationService/OnlineValidationState.swift b/Sources/Services/ValidationService/OnlineValidationState.swift index fd94af0..2679960 100644 --- a/Sources/Services/ValidationService/OnlineValidationState.swift +++ b/Sources/Services/ValidationService/OnlineValidationState.swift @@ -32,5 +32,4 @@ public enum OnlineValidationState { case processing case valid case invalid(error: Error?) - } diff --git a/Sources/Services/ValidationService/ValidationError.swift b/Sources/Services/ValidationService/ValidationError.swift index d230c35..09eccba 100644 --- a/Sources/Services/ValidationService/ValidationError.swift +++ b/Sources/Services/ValidationService/ValidationError.swift @@ -11,5 +11,4 @@ public struct ValidationError: Error { self.errorMessage = errorMessage self.errorHint = errorHint } - } diff --git a/Sources/Services/ValidationService/ValidationItem.swift b/Sources/Services/ValidationService/ValidationItem.swift index 934c2b5..54e160d 100644 --- a/Sources/Services/ValidationService/ValidationItem.swift +++ b/Sources/Services/ValidationService/ValidationItem.swift @@ -15,6 +15,7 @@ public extension ValidationItemState { switch self { case .initial: return true + default: return false } @@ -24,11 +25,11 @@ public extension ValidationItemState { switch self { case .valid: return true + default: return false } } - } public final class ValidationItem { @@ -58,7 +59,8 @@ public final class ValidationItem { .drive(text) .disposed(by: disposeBag) - textDriver.asObservable().withLatestFrom(validationStateHolder.asObservable()) { (text: $0, validationState: $1) } + textDriver.asObservable() + .withLatestFrom(validationStateHolder.asObservable()) { (text: $0, validationState: $1) } .filter { !$0.validationState.isInitial } .map { $0.text } .subscribe(onNext: { [weak self] text in @@ -89,6 +91,7 @@ public final class ValidationItem { .valid where !isManual: validationStateHolder.value = .correction(validationError) + default: validationStateHolder.value = .error(validationError) } @@ -96,5 +99,4 @@ public final class ValidationItem { validationStateHolder.value = .valid } } - } diff --git a/Sources/Services/ValidationService/ValidationService.swift b/Sources/Services/ValidationService/ValidationService.swift index b2c7845..8301396 100644 --- a/Sources/Services/ValidationService/ValidationService.swift +++ b/Sources/Services/ValidationService/ValidationService.swift @@ -19,7 +19,6 @@ public extension ValidationServiceState { var isValid: Bool { return self == .valid } - } public final class ValidationService { @@ -103,5 +102,4 @@ public final class ValidationService { .disposed(by: disposeBag) } } - } diff --git a/build-scripts b/build-scripts index ea12763..54935bb 160000 --- a/build-scripts +++ b/build-scripts @@ -1 +1 @@ -Subproject commit ea127636275ceea8abcf3ec9aa62ffe6d13f0b72 +Subproject commit 54935bbe26063cdf04e72b8cb76d61c727ff99a7