From 55b4b9b456c5647c8740f9dd76ecf68c9b5b5aa1 Mon Sep 17 00:00:00 2001 From: talanov Date: Mon, 1 Oct 2018 14:19:01 +0300 Subject: [PATCH] Fix: Updating to Swift 4. --- README.md | 4 +- SemverSwift.xcodeproj/project.pbxproj | 44 ++++++++++++------- .../xcschemes/SemverSwift.xcscheme | 2 +- SemverSwift/Semver.swift | 8 ++-- semver.podspec | 4 +- 5 files changed, 37 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 6a812e1..463305f 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ ## Swift Semantic Versioning Library -[![Build Status](https://travis-ci.org/weekwood/Semver.Swift.svg)](https://travis-ci.org/weekwood/Semver.Swift) -[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) -[![CocoaPods](https://img.shields.io/cocoapods/v/semver.svg)]() +### Updated for Swift 4 Semver.swift is described by the v2.0.0 specification found at http://semver.org/. diff --git a/SemverSwift.xcodeproj/project.pbxproj b/SemverSwift.xcodeproj/project.pbxproj index 09332bd..5fcc6e4 100644 --- a/SemverSwift.xcodeproj/project.pbxproj +++ b/SemverSwift.xcodeproj/project.pbxproj @@ -183,16 +183,16 @@ CLASSPREFIX = ""; LastSwiftMigration = 0730; LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0820; + LastUpgradeCheck = 0940; ORGANIZATIONNAME = Semver; TargetAttributes = { 257C9A8D1AC30903009DDD7F = { CreatedOnToolsVersion = 6.2; - LastSwiftMigration = 0810; + LastSwiftMigration = 0940; }; 257C9A981AC30903009DDD7F = { CreatedOnToolsVersion = 6.2; - LastSwiftMigration = 0810; + LastSwiftMigration = 0940; }; }; }; @@ -268,14 +268,22 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -319,14 +327,22 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -373,7 +389,8 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = "arm64 armv7"; }; @@ -396,7 +413,8 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.Semver.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = "arm64 armv7"; }; @@ -405,10 +423,7 @@ 257C9AA81AC30903009DDD7F /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", @@ -417,22 +432,21 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.Semver.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; }; name = Debug; }; 257C9AA91AC30903009DDD7F /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = SemverSwiftTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.Semver.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; }; name = Release; }; diff --git a/SemverSwift.xcodeproj/xcshareddata/xcschemes/SemverSwift.xcscheme b/SemverSwift.xcodeproj/xcshareddata/xcschemes/SemverSwift.xcscheme index 53d13ad..21c4225 100644 --- a/SemverSwift.xcodeproj/xcshareddata/xcschemes/SemverSwift.xcscheme +++ b/SemverSwift.xcodeproj/xcshareddata/xcschemes/SemverSwift.xcscheme @@ -1,6 +1,6 @@ Bool { - let range: NSRange = NSMakeRange(0, characters.count) + let range: NSRange = NSMakeRange(0, count) if pattern.regex != nil { let matches: [AnyObject] = pattern.regex!.matches(in: self, options: pattern.matchingOptions, range: range) return matches.count > 0 @@ -62,7 +62,7 @@ extension String { func replaceRegex(_ pattern: Regex, template: String) -> String { if self.matchRegex(pattern) { - let range: NSRange = NSMakeRange(0, characters.count) + let range: NSRange = NSMakeRange(0, count) if pattern.regex != nil { return pattern.regex!.stringByReplacingMatches(in: self, options: pattern.matchingOptions, range: range, withTemplate: template) } @@ -125,11 +125,11 @@ open class Semver { func diff(_ version2: String) -> Int{ let version = Semver(version: version2) if (major.compare(version.major) != .orderedSame){ - return major.compare(version.major).rawValue + return major.compare(version.major, options: NSString.CompareOptions.numeric).rawValue } if (minor.compare(version.minor) != .orderedSame){ - return minor.compare(version.minor).rawValue + return minor.compare(version.minor, options: NSString.CompareOptions.numeric).rawValue } if (patch.compare(version.patch) != .orderedSame){ diff --git a/semver.podspec b/semver.podspec index d845b94..2c13028 100644 --- a/semver.podspec +++ b/semver.podspec @@ -1,11 +1,11 @@ Pod::Spec.new do |s| s.name = "semver" - s.version = "1.0.0" + s.version = "1.1.1" s.summary = "Swift Semantic Versioning Library" s.homepage = "https://github.com/weekwood/Semver.Swift.git" s.license = 'MIT' s.author = { "di wu" => "di.wu@me.com" } - s.source = { :git => "https://github.com/weekwood/semver.swift.git", :tag => s.version.to_s } + s.source = { :git => "https://github.com/weekwood/semver.swift.git", :branch => 'swift4' } s.ios.deployment_target = '8.0' s.osx.deployment_target = '10.10' s.requires_arc = true