diff --git a/.swift-version b/.swift-version
index 94ff29c..5186d07 100644
--- a/.swift-version
+++ b/.swift-version
@@ -1 +1 @@
-3.1.1
+4.0
diff --git a/Cartfile b/Cartfile
index 80f1589..b915e78 100644
--- a/Cartfile
+++ b/Cartfile
@@ -1,4 +1,4 @@
-github "SlackKit/SKCore" >= 4.0.0
-github "SlackKit/SKClient" >= 4.0.0
-github "SlackKit/SKRTMAPI" >= 4.0.0
-github "SlackKit/SKServer" >= 4.0.0
\ No newline at end of file
+github "SlackKit/SKCore" >= 4.1.0
+github "SlackKit/SKClient" >= 4.1.0
+github "SlackKit/SKRTMAPI" >= 4.1.0
+github "SlackKit/SKServer" >= 4.1.0
\ No newline at end of file
diff --git a/Package.swift b/Package.swift
index 5a88d14..8d65508 100644
--- a/Package.swift
+++ b/Package.swift
@@ -1,14 +1,20 @@
+// swift-tools-version:4.0
import PackageDescription
let package = Package(
name: "SlackKit",
- targets: [
- Target(name: "SlackKit")
+ products: [
+ .library(name: "SlackKit", targets: ["SlackKit"])
],
dependencies: [
- .Package(url: "https://github.com/SlackKit/SKCore", majorVersion: 4),
- .Package(url: "https://github.com/SlackKit/SKClient", majorVersion: 4),
- .Package(url: "https://github.com/SlackKit/SKRTMAPI", majorVersion: 4),
- .Package(url: "https://github.com/SlackKit/SKServer", majorVersion: 4)
+ .package(url: "https://github.com/SlackKit/SKCore", .upToNextMinor(from: "4.1.0")),
+ .package(url: "https://github.com/SlackKit/SKClient", .upToNextMinor(from: "4.1.0")),
+ .package(url: "https://github.com/SlackKit/SKRTMAPI", .upToNextMinor(from: "4.1.0")),
+ .package(url: "https://github.com/SlackKit/SKServer", .upToNextMinor(from: "4.1.0"))
+ ],
+ targets: [
+ .target(name: "SlackKit",
+ dependencies: ["SKCore", "SKClient", "SKRTMAPI", "SKServer"],
+ path: "Sources")
]
)
diff --git a/Podfile b/Podfile
index 3ea6e2d..ee6a15a 100644
--- a/Podfile
+++ b/Podfile
@@ -2,27 +2,27 @@ use_frameworks!
target 'SlackKit macOS' do
platform :osx, '10.11'
- pod 'SKCore'
- pod 'SKClient'
- pod 'SKWebAPI'
- pod 'SKRTMAPI'
- pod 'SKServer'
+ pod 'SKCore', '~> 4.1.0'
+ pod 'SKClient', '~> 4.1.0'
+ pod 'SKWebAPI', '~> 4.1.0'
+ pod 'SKRTMAPI', '~> 4.1.0'
+ pod 'SKServer', '~> 4.1.0'
end
target 'SlackKit iOS' do
platform :ios, '9.0'
- pod 'SKCore'
- pod 'SKClient'
- pod 'SKWebAPI'
- pod 'SKRTMAPI'
- pod 'SKServer'
+ pod 'SKCore', '~> 4.1.0'
+ pod 'SKClient', '~> 4.1.0'
+ pod 'SKWebAPI', '~> 4.1.0'
+ pod 'SKRTMAPI', '~> 4.1.0'
+ pod 'SKServer', '~> 4.1.0'
end
target 'SlackKit tvOS' do
platform :tvos, '9.0'
- pod 'SKCore'
- pod 'SKClient'
- pod 'SKWebAPI'
- pod 'SKRTMAPI'
- pod 'SKServer'
+ pod 'SKCore', '~> 4.1.0'
+ pod 'SKClient', '~> 4.1.0'
+ pod 'SKWebAPI', '~> 4.1.0'
+ pod 'SKRTMAPI', '~> 4.1.0'
+ pod 'SKServer', '~> 4.1.0'
end
\ No newline at end of file
diff --git a/README.md b/README.md
index f0e2073..d4f46a8 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@

-
+


[](https://github.com/apple/swift-package-manager)
@@ -25,10 +25,11 @@ import PackageDescription
let package = Package(
dependencies: [
- .Package(url: "https://github.com/SlackKit/SlackKit.git", majorVersion: 4)
+ .package(url: "https://github.com/SlackKit/SlackKit.git", .upToNextMinor(from: "4.1.0"))
]
)
```
+
#### Carthage
Add `SlackKit` to your `Cartfile`:
diff --git a/SlackKit.podspec b/SlackKit.podspec
index 70174af..c86576e 100644
--- a/SlackKit.podspec
+++ b/SlackKit.podspec
@@ -1,20 +1,20 @@
Pod::Spec.new do |s|
- s.name = "SlackKit"
- s.version = "4.0.0"
- s.summary = "Write Slack apps in Swift"
- s.homepage = "https://github.com/pvzig/SlackKit"
- s.license = 'MIT'
- s.author = { "Peter Zignego" => "peter@launchsoft.co" }
- s.source = { :git => "https://github.com/SlackKit/SlackKit.git", :tag => s.version.to_s }
- s.social_media_url = 'https://twitter.com/pvzig'
- s.ios.deployment_target = '9.0'
- s.osx.deployment_target = '10.11'
- s.tvos.deployment_target = '9.0'
- s.requires_arc = true
- s.source_files = 'Sources/*.swift'
- s.frameworks = 'Foundation'
- s.dependency 'SKCore'
- s.dependency 'SKClient'
- s.dependency 'SKRTMAPI'
- s.dependency 'SKServer'
+ s.name = "SlackKit"
+ s.version = "4.1.0"
+ s.summary = "Write Slack apps in Swift"
+ s.homepage = "https://github.com/pvzig/SlackKit"
+ s.license = 'MIT'
+ s.author = { "Peter Zignego" => "peter@launchsoft.co" }
+ s.source = { :git => "https://github.com/SlackKit/SlackKit.git", :tag => s.version.to_s }
+ s.social_media_url = 'https://twitter.com/pvzig'
+ s.ios.deployment_target = '9.0'
+ s.osx.deployment_target = '10.11'
+ s.tvos.deployment_target = '9.0'
+ s.requires_arc = true
+ s.source_files = 'Sources/*.swift'
+ s.frameworks = 'Foundation'
+ s.dependency 'SKCore'
+ s.dependency 'SKClient'
+ s.dependency 'SKRTMAPI'
+ s.dependency 'SKServer'
end
\ No newline at end of file
diff --git a/SlackKit.xcodeproj/project.pbxproj b/SlackKit.xcodeproj/project.pbxproj
index 12bb797..aba64c7 100644
--- a/SlackKit.xcodeproj/project.pbxproj
+++ b/SlackKit.xcodeproj/project.pbxproj
@@ -276,7 +276,7 @@
2684F1741E95AA6900536DCC /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0830;
+ LastUpgradeCheck = 0920;
ORGANIZATIONNAME = "Peter Zignego";
TargetAttributes = {
2684F17C1E95AA6900536DCC = {
@@ -420,7 +420,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_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
@@ -428,7 +430,11 @@
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;
@@ -458,6 +464,7 @@
SDKROOT = macosx;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 4.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
@@ -473,7 +480,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_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
@@ -481,7 +490,11 @@
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;
@@ -503,6 +516,7 @@
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ SWIFT_VERSION = 4.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
@@ -531,7 +545,7 @@
PRODUCT_NAME = SlackKit;
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
- SWIFT_VERSION = 3.0;
+ SWIFT_VERSION = 4.0;
};
name = Debug;
};
@@ -558,7 +572,7 @@
PRODUCT_NAME = SlackKit;
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
- SWIFT_VERSION = 3.0;
+ SWIFT_VERSION = 4.0;
};
name = Release;
};
@@ -585,7 +599,7 @@
PRODUCT_NAME = SlackKit;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
- SWIFT_VERSION = 3.0;
+ SWIFT_VERSION = 4.0;
};
name = Debug;
};
@@ -612,7 +626,7 @@
PRODUCT_NAME = SlackKit;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
- SWIFT_VERSION = 3.0;
+ SWIFT_VERSION = 4.0;
};
name = Release;
};
@@ -638,7 +652,7 @@
PRODUCT_NAME = SlackKit;
SDKROOT = appletvos;
SKIP_INSTALL = YES;
- SWIFT_VERSION = 3.0;
+ SWIFT_VERSION = 4.0;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Debug;
@@ -665,7 +679,7 @@
PRODUCT_NAME = SlackKit;
SDKROOT = appletvos;
SKIP_INSTALL = YES;
- SWIFT_VERSION = 3.0;
+ SWIFT_VERSION = 4.0;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Release;
diff --git a/SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKit iOS.xcscheme b/SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKit iOS.xcscheme
index 8c9f1cc..3a55f28 100644
--- a/SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKit iOS.xcscheme
+++ b/SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKit iOS.xcscheme
@@ -1,6 +1,6 @@
@@ -36,6 +37,7 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
diff --git a/SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKit macOS.xcscheme b/SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKit macOS.xcscheme
index c4176fb..7707926 100644
--- a/SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKit macOS.xcscheme
+++ b/SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKit macOS.xcscheme
@@ -1,6 +1,6 @@
@@ -36,6 +37,7 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
diff --git a/SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKit tvOS.xcscheme b/SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKit tvOS.xcscheme
index 6e23ff5..87e9dbe 100644
--- a/SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKit tvOS.xcscheme
+++ b/SlackKit.xcodeproj/xcshareddata/xcschemes/SlackKit tvOS.xcscheme
@@ -1,6 +1,6 @@
@@ -36,6 +37,7 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
diff --git a/Sources/ClientConnection.swift b/Sources/ClientConnection.swift
index 89c5269..ca7a448 100644
--- a/Sources/ClientConnection.swift
+++ b/Sources/ClientConnection.swift
@@ -11,7 +11,7 @@ public class ClientConnection {
public var client: Client?
public var rtm: SKRTMAPI?
public var webAPI: WebAPI?
-
+
public init(client: Client?, rtm: SKRTMAPI?, webAPI: WebAPI?) {
self.client = client
self.rtm = rtm
diff --git a/Sources/SlackKit.swift b/Sources/SlackKit.swift
index dc3c233..9cff685 100644
--- a/Sources/SlackKit.swift
+++ b/Sources/SlackKit.swift
@@ -35,7 +35,7 @@ public final class SlackKit: RTMAdapter {
internal var callbacks = [TypedEvent]()
internal(set) public var server: SKServer?
internal(set) public var clients: [String: ClientConnection] = [:]
-
+
/// Return the `SKRTMAPI` instance of the first client
public var rtm: SKRTMAPI? {
return clients.values.first?.rtm
@@ -54,7 +54,6 @@ public final class SlackKit: RTMAdapter {
} else {
clients[token] = ClientConnection(client: nil, rtm: nil, webAPI: webAPI)
}
-
}
public func addRTMBotWithAPIToken(
@@ -65,7 +64,7 @@ public final class SlackKit: RTMAdapter {
) {
let rtm = SKRTMAPI(withAPIToken: token, options: options, rtm: rtm)
rtm.adapter = self
-
+
if let clientConnection = clients[token] {
clientConnection.rtm = rtm
} else {
@@ -108,6 +107,8 @@ public final class SlackKit: RTMAdapter {
executeCallbackForEvent(event, type: type, clientConnection: clientConnection)
}
+ public func connectionClosed(with error: Error, instance: SKRTMAPI) {}
+
// MARK: - Callbacks
public func notificationForEvent(_ type: EventType, event: @escaping EventClosure) {
callbacks.append((type, event))