diff --git a/.swift-version b/.swift-version index 9f55b2c..5186d07 100644 --- a/.swift-version +++ b/.swift-version @@ -1 +1 @@ -3.0 +4.0 diff --git a/.travis.yml b/.travis.yml index 110a76b..a0bfeac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,11 @@ language: objective-c -osx_image: xcode8 +osx_image: xcode9 env: - "DESTINATION='platform=iOS Simulator,name=iPhone 5' ACTION=build" - "DESTINATION='platform=watchOS Simulator,name=Apple Watch - 38mm' ACTION=build" - "DESTINATION='platform=tvOS Simulator,name=Apple TV 1080p' ACTION=build" - - "DESTINATION='platform=OS X' ACTION=test" + - "DESTINATION='platform=OS X' ACTION=build" script: - set -o pipefail && xcodebuild -project Async.xcodeproj -scheme Async -destination "$DESTINATION" $ACTION | xcpretty diff --git a/Async.xcodeproj/project.pbxproj b/Async.xcodeproj/project.pbxproj index 8746028..0f214bb 100644 --- a/Async.xcodeproj/project.pbxproj +++ b/Async.xcodeproj/project.pbxproj @@ -174,6 +174,14 @@ isa = PBXProject; attributes = { LastUpgradeCheck = 9999; + TargetAttributes = { + OBJ_19 = { + LastSwiftMigration = 0900; + }; + OBJ_26 = { + LastSwiftMigration = 0900; + }; + }; }; buildConfigurationList = OBJ_2 /* Build configuration list for PBXProject "Async" */; compatibilityVersion = "Xcode 3.2"; @@ -227,6 +235,9 @@ baseConfigurationReference = 1F9952281EA0FF2F0095B0F1 /* Async-Debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -235,6 +246,9 @@ baseConfigurationReference = 1F9952291EA0FF2F0095B0F1 /* Async-Release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; }; name = Release; }; @@ -242,6 +256,8 @@ isa = XCBuildConfiguration; baseConfigurationReference = 1F99522A1EA0FF2F0095B0F1 /* AsyncTests-Debug.xcconfig */; buildSettings = { + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -249,6 +265,8 @@ isa = XCBuildConfiguration; baseConfigurationReference = 1F99522B1EA0FF2F0095B0F1 /* AsyncTests-Release.xcconfig */; buildSettings = { + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; }; name = Release; }; diff --git a/AsyncPodsExample/AsyncPodsExample.xcodeproj/project.pbxproj b/AsyncPodsExample/AsyncPodsExample.xcodeproj/project.pbxproj index b236fb4..4af1495 100644 --- a/AsyncPodsExample/AsyncPodsExample.xcodeproj/project.pbxproj +++ b/AsyncPodsExample/AsyncPodsExample.xcodeproj/project.pbxproj @@ -259,7 +259,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0810; - LastUpgradeCheck = 0810; + LastUpgradeCheck = 0900; ORGANIZATIONNAME = developmunk; TargetAttributes = { 146ED8F21BDF321000347390 = { @@ -273,7 +273,7 @@ }; 4EF830C51975954B00C5F0EE = { CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; + LastSwiftMigration = 0900; }; }; }; @@ -570,14 +570,20 @@ 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_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_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; @@ -618,14 +624,20 @@ 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_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_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; @@ -707,6 +719,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "dk.developmunk.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "AsyncExample iOS"; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -721,6 +735,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "dk.developmunk.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "AsyncExample iOS"; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; }; name = Release; }; diff --git a/AsyncPodsExample/AsyncPodsExample.xcodeproj/xcshareddata/xcschemes/AsyncExample OS X.xcscheme b/AsyncPodsExample/AsyncPodsExample.xcodeproj/xcshareddata/xcschemes/AsyncExample OS X.xcscheme index 0d9829d..4b0bd25 100644 --- a/AsyncPodsExample/AsyncPodsExample.xcodeproj/xcshareddata/xcschemes/AsyncExample OS X.xcscheme +++ b/AsyncPodsExample/AsyncPodsExample.xcodeproj/xcshareddata/xcschemes/AsyncExample OS X.xcscheme @@ -1,6 +1,6 @@ @@ -45,6 +46,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/AsyncPodsExample/Pods/Pods.xcodeproj/project.pbxproj b/AsyncPodsExample/Pods/Pods.xcodeproj/project.pbxproj index 4c1556d..ac9fe51 100644 --- a/AsyncPodsExample/Pods/Pods.xcodeproj/project.pbxproj +++ b/AsyncPodsExample/Pods/Pods.xcodeproj/project.pbxproj @@ -57,25 +57,25 @@ /* Begin PBXFileReference section */ 02F7CBED7E9D4C17E4D84DCB49EFD23C /* AsyncSwift-OSX-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AsyncSwift-OSX-prefix.pch"; sourceTree = ""; }; 0342CF209D6EC29F2793A845D212B474 /* Pods-AsyncExample iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AsyncExample iOS.release.xcconfig"; sourceTree = ""; }; - 0B5053727576D53986BF56C807619B54 /* Pods_AsyncExample_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_AsyncExample_tvOS.framework; path = "Pods-AsyncExample tvOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0B5053727576D53986BF56C807619B54 /* Pods_AsyncExample_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AsyncExample_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 0F5F06D113C4E6FE4DAEC53B1EAC2A2B /* Pods-AsyncExample OS X.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AsyncExample OS X.debug.xcconfig"; sourceTree = ""; }; - 0F86D8C2E090E15BD7DD2143D1112B0B /* Async.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Async.framework; path = "AsyncSwift-iOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0F86D8C2E090E15BD7DD2143D1112B0B /* Async.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Async.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1E8A98485B7B7342CA88EB3817A8280E /* AsyncSwift-tvOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "AsyncSwift-tvOS.xcconfig"; path = "../AsyncSwift-tvOS/AsyncSwift-tvOS.xcconfig"; sourceTree = ""; }; - 223EFFF821218AFBF02A28C0B9721AD4 /* AsyncSwift-tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; name = "AsyncSwift-tvOS.modulemap"; path = "../AsyncSwift-tvOS/AsyncSwift-tvOS.modulemap"; sourceTree = ""; }; + 223EFFF821218AFBF02A28C0B9721AD4 /* AsyncSwift-tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; name = "AsyncSwift-tvOS.modulemap"; path = "../AsyncSwift-tvOS/AsyncSwift-tvOS.modulemap"; sourceTree = ""; }; 225EA5D8DE1E8337238CD52B7FB1C1DA /* Pods-AsyncExample OS X-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AsyncExample OS X-acknowledgements.plist"; sourceTree = ""; }; - 2D2599D991259C268A500CDBB0DCC5F3 /* Pods-AsyncExample iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-AsyncExample iOS.modulemap"; sourceTree = ""; }; + 2D2599D991259C268A500CDBB0DCC5F3 /* Pods-AsyncExample iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-AsyncExample iOS.modulemap"; sourceTree = ""; }; 2FF8F61132EBAD182EC1FCDACD610B11 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 318E8C78F5BDECA3C47D2FD11C8C67E3 /* AsyncSwift-OSX.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "AsyncSwift-OSX.xcconfig"; sourceTree = ""; }; - 329A005A7864AEF521EF9F3EDB837B3F /* Pods-AsyncExample tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-AsyncExample tvOS.modulemap"; sourceTree = ""; }; + 329A005A7864AEF521EF9F3EDB837B3F /* Pods-AsyncExample tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-AsyncExample tvOS.modulemap"; sourceTree = ""; }; 381F73817A1E51744B0F94DBC5F01608 /* Pods-AsyncExample tvOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-AsyncExample tvOS-umbrella.h"; sourceTree = ""; }; 3C83D8A147443EBEE4D89053F9E261DA /* Pods-AsyncExample iOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-AsyncExample iOS-acknowledgements.markdown"; sourceTree = ""; }; 416E69D4836ABAED09EC790DC3B140D6 /* Pods-AsyncExample iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AsyncExample iOS-dummy.m"; sourceTree = ""; }; 46F1B31819C8D4C07433D064C803228C /* Pods-AsyncExample tvOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AsyncExample tvOS-acknowledgements.plist"; sourceTree = ""; }; - 4A231BFA46D7373E0333822679887F5D /* Pods_AsyncExample_OS_X.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_AsyncExample_OS_X.framework; path = "Pods-AsyncExample OS X.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 4D4A047BC61756D7A71305AAB5EA3336 /* AsyncSwift-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; name = "AsyncSwift-iOS.modulemap"; path = "../AsyncSwift-iOS/AsyncSwift-iOS.modulemap"; sourceTree = ""; }; + 4A231BFA46D7373E0333822679887F5D /* Pods_AsyncExample_OS_X.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AsyncExample_OS_X.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4D4A047BC61756D7A71305AAB5EA3336 /* AsyncSwift-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; name = "AsyncSwift-iOS.modulemap"; path = "../AsyncSwift-iOS/AsyncSwift-iOS.modulemap"; sourceTree = ""; }; 4F1787BDF97085C198CC51FD6465F019 /* Pods-AsyncExample tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AsyncExample tvOS.release.xcconfig"; sourceTree = ""; }; 5C7DE601BB3868B24D8F84B52B9FC95E /* Pods-AsyncExample iOS-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AsyncExample iOS-frameworks.sh"; sourceTree = ""; }; - 6274215ADD747F76A33684790923517C /* Async.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Async.framework; path = "AsyncSwift-OSX.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6274215ADD747F76A33684790923517C /* Async.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Async.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 633488220C696B087ED98FA18B9C19A2 /* Pods-AsyncExample OS X-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AsyncExample OS X-frameworks.sh"; sourceTree = ""; }; 6B51F22746D6AE2672B94C67E0433411 /* Pods-AsyncExample tvOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-AsyncExample tvOS-acknowledgements.markdown"; sourceTree = ""; }; 6C3E6290DCC1B6FB074E3AA78F5A26C4 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -86,8 +86,8 @@ 8843EA083EDC6713019CE526759CB492 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 88BD11182B40EED892AACF50F84DE440 /* AsyncSwift-tvOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "AsyncSwift-tvOS-prefix.pch"; path = "../AsyncSwift-tvOS/AsyncSwift-tvOS-prefix.pch"; sourceTree = ""; }; 8C3B2109C69E2941692942F7BEE33C3A /* AsyncSwift-OSX-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AsyncSwift-OSX-dummy.m"; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9D59584F7B870783CB60F36D2E355BD2 /* Async.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Async.framework; path = "AsyncSwift-tvOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9D59584F7B870783CB60F36D2E355BD2 /* Async.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Async.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A3750A37FF23115CDFD15EFB1944B64D /* AsyncSwift-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "AsyncSwift-iOS.xcconfig"; path = "../AsyncSwift-iOS/AsyncSwift-iOS.xcconfig"; sourceTree = ""; }; B056146A7CFE81325AE5C69A309BB7E0 /* AsyncSwift-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "AsyncSwift-iOS-prefix.pch"; path = "../AsyncSwift-iOS/AsyncSwift-iOS-prefix.pch"; sourceTree = ""; }; B38A88E0776EAF5001831CAEFF93C9A0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS10.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; @@ -97,12 +97,12 @@ BAF2E75ACE04F14A2648B1DC8DE34896 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "../AsyncSwift-tvOS/Info.plist"; sourceTree = ""; }; BC244059107A972FAB12D5B570DA222B /* AsyncSwift-OSX-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AsyncSwift-OSX-umbrella.h"; sourceTree = ""; }; BCA9FBB7C70BF0313BC0203BBE374E85 /* AsyncSwift-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "AsyncSwift-iOS-umbrella.h"; path = "../AsyncSwift-iOS/AsyncSwift-iOS-umbrella.h"; sourceTree = ""; }; - C2974C93D697EAA9DFE3955A199BE809 /* Pods_AsyncExample_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_AsyncExample_iOS.framework; path = "Pods-AsyncExample iOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + C2974C93D697EAA9DFE3955A199BE809 /* Pods_AsyncExample_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AsyncExample_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C9FBC14652C2C916E1FE45702D61FE13 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; CAF9D9FB24A1750A93C96BCC698BC175 /* AsyncSwift-tvOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "AsyncSwift-tvOS-umbrella.h"; path = "../AsyncSwift-tvOS/AsyncSwift-tvOS-umbrella.h"; sourceTree = ""; }; CC099A2D1055D3FDB27C22DF35609A53 /* Pods-AsyncExample iOS-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AsyncExample iOS-resources.sh"; sourceTree = ""; }; CE5368254CE28ABF37A7E194D8298C13 /* Pods-AsyncExample tvOS-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AsyncExample tvOS-frameworks.sh"; sourceTree = ""; }; - CEE05848F21FF2A45F29D2006FEF36B8 /* Pods-AsyncExample OS X.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-AsyncExample OS X.modulemap"; sourceTree = ""; }; + CEE05848F21FF2A45F29D2006FEF36B8 /* Pods-AsyncExample OS X.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-AsyncExample OS X.modulemap"; sourceTree = ""; }; CF11C8AD11EBFCADD3D6A7941BF37215 /* AsyncSwift-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "AsyncSwift-iOS-dummy.m"; path = "../AsyncSwift-iOS/AsyncSwift-iOS-dummy.m"; sourceTree = ""; }; CFB56E35108A1FCAA1F5604A02FFCDC5 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; DCACA1F33E1F85977440571DE8E93406 /* Pods-AsyncExample OS X-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AsyncExample OS X-dummy.m"; sourceTree = ""; }; @@ -111,9 +111,9 @@ E70CDB3C2FD7960A209AC97ACA74B355 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = "../AsyncSwift-iOS/Info.plist"; sourceTree = ""; }; E7B21AC25E74A300AA36A61B6DE9CEF8 /* Pods-AsyncExample OS X.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AsyncExample OS X.release.xcconfig"; sourceTree = ""; }; E84122AAAA3BC8719F23E777ECC0C789 /* Pods-AsyncExample tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AsyncExample tvOS.debug.xcconfig"; sourceTree = ""; }; - EEFBA77625BE7BCD90CA67FB86E12580 /* Async.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Async.swift; sourceTree = ""; }; + EEFBA77625BE7BCD90CA67FB86E12580 /* Async.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Async.swift; path = Async/Async.swift; sourceTree = ""; }; F87B741A560FDD66407F0BD6E9287B25 /* Pods-AsyncExample tvOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AsyncExample tvOS-dummy.m"; sourceTree = ""; }; - FE432160EDA1E520869C79F1CEB24E87 /* AsyncSwift-OSX.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "AsyncSwift-OSX.modulemap"; sourceTree = ""; }; + FE432160EDA1E520869C79F1CEB24E87 /* AsyncSwift-OSX.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "AsyncSwift-OSX.modulemap"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -293,7 +293,6 @@ children = ( EEFBA77625BE7BCD90CA67FB86E12580 /* Async.swift */, ); - name = Sources; path = Sources; sourceTree = ""; }; @@ -509,7 +508,12 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0700; + LastUpgradeCheck = 0900; + TargetAttributes = { + 27F5197A3A74BD220E7C084E6CD5B7A8 = { + LastSwiftMigration = 0900; + }; + }; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -676,7 +680,8 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -787,7 +792,8 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -1022,7 +1028,9 @@ 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_DIRECT_OBJC_ISA_USAGE = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; @@ -1030,14 +1038,20 @@ 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_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES; + 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; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = ( "POD_CONFIGURATION_RELEASE=1", "$(inherited)", @@ -1052,6 +1066,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.10; PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; + SWIFT_VERSION = 4.0; SYMROOT = "${SRCROOT}/../build"; TVOS_DEPLOYMENT_TARGET = 9.0; VALIDATE_PRODUCT = YES; @@ -1107,7 +1122,9 @@ 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_DIRECT_OBJC_ISA_USAGE = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; @@ -1115,15 +1132,21 @@ 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_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES; + 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; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "POD_CONFIGURATION_DEBUG=1", @@ -1142,6 +1165,7 @@ ONLY_ACTIVE_ARCH = YES; PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; + SWIFT_VERSION = 4.0; SYMROOT = "${SRCROOT}/../build"; TVOS_DEPLOYMENT_TARGET = 9.0; }; diff --git a/Sources/Async/Async.swift b/Sources/Async/Async.swift index 65c0a5d..4c1b5b9 100644 --- a/Sources/Async/Async.swift +++ b/Sources/Async/Async.swift @@ -161,7 +161,7 @@ public struct AsyncBlock { - SeeAlso: Has parity with non-static method */ @discardableResult - public static func main(after seconds: Double? = nil, _ block: @escaping (Void) -> O) -> AsyncBlock { + public static func main(after seconds: Double? = nil, _ block: @escaping () -> O) -> AsyncBlock { return AsyncBlock.async(after: seconds, block: block, queue: .main) } @@ -177,7 +177,7 @@ public struct AsyncBlock { - SeeAlso: Has parity with non-static method */ @discardableResult - public static func userInteractive(after seconds: Double? = nil, _ block: @escaping (Void) -> O) -> AsyncBlock { + public static func userInteractive(after seconds: Double? = nil, _ block: @escaping () -> O) -> AsyncBlock { return AsyncBlock.async(after: seconds, block: block, queue: .userInteractive) } @@ -193,7 +193,7 @@ public struct AsyncBlock { - SeeAlso: Has parity with non-static method */ @discardableResult - public static func userInitiated(after seconds: Double? = nil, _ block: @escaping (Void) -> O) -> AsyncBlock { + public static func userInitiated(after seconds: Double? = nil, _ block: @escaping () -> O) -> AsyncBlock { return Async.async(after: seconds, block: block, queue: .userInitiated) } @@ -209,7 +209,7 @@ public struct AsyncBlock { - SeeAlso: Has parity with non-static method */ @discardableResult - public static func utility(after seconds: Double? = nil, _ block: @escaping (Void) -> O) -> AsyncBlock { + public static func utility(after seconds: Double? = nil, _ block: @escaping () -> O) -> AsyncBlock { return Async.async(after: seconds, block: block, queue: .utility) } @@ -225,7 +225,7 @@ public struct AsyncBlock { - SeeAlso: Has parity with non-static method */ @discardableResult - public static func background(after seconds: Double? = nil, _ block: @escaping (Void) -> O) -> AsyncBlock { + public static func background(after seconds: Double? = nil, _ block: @escaping () -> O) -> AsyncBlock { return Async.async(after: seconds, block: block, queue: .background) } @@ -241,7 +241,7 @@ public struct AsyncBlock { - SeeAlso: Has parity with non-static method */ @discardableResult - public static func custom(queue: DispatchQueue, after seconds: Double? = nil, _ block: @escaping (Void) -> O) -> AsyncBlock { + public static func custom(queue: DispatchQueue, after seconds: Double? = nil, _ block: @escaping () -> O) -> AsyncBlock { return Async.async(after: seconds, block: block, queue: .custom(queue: queue)) } @@ -258,7 +258,7 @@ public struct AsyncBlock { - returns: An `Async` struct which encapsulates the `@convention(block) () -> Swift.Void` */ - private static func async(after seconds: Double? = nil, block: @escaping (Void) -> O, queue: GCD) -> AsyncBlock { + private static func async(after seconds: Double? = nil, block: @escaping () -> O, queue: GCD) -> AsyncBlock { let reference = Reference() let block = DispatchWorkItem(block: { reference.value = block() diff --git a/Tests/BuildSettingsTests/expected.xcconfig b/Tests/BuildSettingsTests/expected.xcconfig index 1dfa93a..9658026 100644 --- a/Tests/BuildSettingsTests/expected.xcconfig +++ b/Tests/BuildSettingsTests/expected.xcconfig @@ -1,5 +1,5 @@ APPLICATION_EXTENSION_API_ONLY=YES SKIP_INSTALL=YES -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=YES +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO CURRENT_PROJECT_VERSION=1 PRODUCT_BUNDLE_IDENTIFIER=dk.developmunk.Async