From 3842618a2846cf0fa93e013f18e9023561311b6c Mon Sep 17 00:00:00 2001 From: kenji Date: Wed, 27 Mar 2019 09:14:24 +0100 Subject: [PATCH 1/2] Swift 5 / Xcode 10.2 compatibility --- SwiftiumKit.xcodeproj/project.pbxproj | 12 +++---- SwiftiumKit/Crypto.m | 1 + SwiftiumKit/NSDataExtensions.swift | 6 ++-- SwiftiumKit/StringExtensions.swift | 12 +++---- SwiftiumKitTests/StringExtensionsTests.swift | 18 +++++------ SwiftiumKitTests/UIColorExtensionsTests.swift | 32 +++++++++---------- 6 files changed, 41 insertions(+), 40 deletions(-) diff --git a/SwiftiumKit.xcodeproj/project.pbxproj b/SwiftiumKit.xcodeproj/project.pbxproj index e561c9b..a07d315 100644 --- a/SwiftiumKit.xcodeproj/project.pbxproj +++ b/SwiftiumKit.xcodeproj/project.pbxproj @@ -283,11 +283,11 @@ BA8961D61C8EDBB100305CB0 = { CreatedOnToolsVersion = 7.2; DevelopmentTeam = QH6KR5PAQ7; - LastSwiftMigration = 0800; + LastSwiftMigration = 1010; }; BA8961E01C8EDBB100305CB0 = { CreatedOnToolsVersion = 7.2; - LastSwiftMigration = 0800; + LastSwiftMigration = 1010; }; }; }; @@ -479,7 +479,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Debug; }; @@ -500,7 +500,7 @@ PRODUCT_BUNDLE_IDENTIFIER = fr.openium.SwiftiumKit; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Release; }; @@ -511,7 +511,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = fr.openium.SwiftiumKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Debug; }; @@ -522,7 +522,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = fr.openium.SwiftiumKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Release; }; diff --git a/SwiftiumKit/Crypto.m b/SwiftiumKit/Crypto.m index 7600750..fc00b75 100644 --- a/SwiftiumKit/Crypto.m +++ b/SwiftiumKit/Crypto.m @@ -11,6 +11,7 @@ #include #include #include +#include #import #import diff --git a/SwiftiumKit/NSDataExtensions.swift b/SwiftiumKit/NSDataExtensions.swift index 2e33da3..a66ad99 100644 --- a/SwiftiumKit/NSDataExtensions.swift +++ b/SwiftiumKit/NSDataExtensions.swift @@ -39,10 +39,10 @@ private enum EncryptionAlgorithm { extension Data { public init?(base16EncodedString: String) { - let dataLen = base16EncodedString.characters.count / 2 + let dataLen = base16EncodedString.count / 2 let bytes = UnsafeMutablePointer.allocate(capacity: dataLen) - let charactersAsUInt8 = base16EncodedString.characters.map { + let charactersAsUInt8 = base16EncodedString.map { UInt8( strtoul((String($0)), nil, 16)) } @@ -81,7 +81,7 @@ extension Data { fileprivate func aesOperation(_ key: String, operation: SKCryptOperationFunction) -> Data? { let lengthPtr = UnsafeMutablePointer.allocate(capacity: 1) - defer { lengthPtr.deallocate(capacity: 1) } + defer { lengthPtr.deallocate() } if let buffer = operation((self as NSData).bytes, UInt32(self.count), Array(key.utf8), UInt32(key.utf8.count), lengthPtr) { let length: Int = Int(lengthPtr[0]) diff --git a/SwiftiumKit/StringExtensions.swift b/SwiftiumKit/StringExtensions.swift index 12454f6..5e53edf 100644 --- a/SwiftiumKit/StringExtensions.swift +++ b/SwiftiumKit/StringExtensions.swift @@ -176,22 +176,22 @@ extension String { */ public subscript(i: Int) -> String? { get { - guard i >= -characters.count && i < characters.count else { return nil } + guard i >= -count && i < count else { return nil } let charIndex: Index if i >= 0 { charIndex = index(startIndex, offsetBy: i) } else { - charIndex = index(startIndex, offsetBy: characters.count + i) + charIndex = index(startIndex, offsetBy: count + i) } return String(self[charIndex]) } set(newValue) { - guard i >= 0 && i < characters.count else { - preconditionFailure("String subscript can only be used if the condition (index >= 0 && index < characters.count) is fulfilled") + guard i >= 0 && i < count else { + preconditionFailure("String subscript can only be used if the condition (index >= 0 && index < count) is fulfilled") } guard newValue != nil else { preconditionFailure("String replacement should not be nil") @@ -226,7 +226,7 @@ extension String { let lowerIndex = index(startIndex, offsetBy: maxSupportedLowerOffset, limitedBy: endIndex) ?? endIndex let upperIndex = index(lowerIndex, offsetBy: maxSupportedUpperOffset, limitedBy: endIndex) ?? endIndex - return substring(with: lowerIndex.. Date: Wed, 27 Mar 2019 09:15:49 +0100 Subject: [PATCH 2/2] Update version to 1.5.0 --- .travis.yml | 4 ++-- CHANGELOG.md | 7 +++++++ SwiftiumKit/Info.plist | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 06ab690..bb35eec 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: objective-c -osx_image: xcode8.3 +osx_image: xcode10.2 rvm: - - 2.1.0 + - 2.3 script: ./.test.sh # easy to run on your machine : ./.test.sh before_install: sudo gem install slather xcpretty after_success: slather diff --git a/CHANGELOG.md b/CHANGELOG.md index d6e8f52..6fe7d27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,13 @@ String extension to validate an email address ### Removed +## [1.5.0](https://github.com/openium/SwiftiumKit/compare/v1.4.0...v1.5.0) +### Added +- Swift 5 compatibility + +### Changed + +### Removed ## [1.4.0] (https://github.com/openium/SwiftiumKit/compare/v1.3.0...v1.4.0)- 2016-11-08 ### Added diff --git a/SwiftiumKit/Info.plist b/SwiftiumKit/Info.plist index 8bce5c7..beed82a 100644 --- a/SwiftiumKit/Info.plist +++ b/SwiftiumKit/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.4.0 + 1.5.0 CFBundleSignature ???? CFBundleVersion