diff --git a/.circleci/config.yml b/.circleci/config.yml index 9b7b0e10..da14498c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -20,6 +20,7 @@ jobs: macos: xcode: <> + resource_class: macos.x86.medium.gen2 steps: - checkout @@ -134,7 +135,7 @@ workflows: run-lint: true - build: name: Xcode 12.5 - Swift 5.4 - xcode-version: '12.5.0' + xcode-version: '12.5.1' ios-sim: 'platform=iOS Simulator,name=iPhone 8,OS=14.5' - build: name: Xcode 12.0 - Swift 5.3 @@ -142,6 +143,6 @@ workflows: ios-sim: 'platform=iOS Simulator,name=iPhone 8,OS=14.0' ssh-fix: true - build: - name: Xcode 11.4 - Swift 5.2 - xcode-version: '11.4.1' - ios-sim: 'platform=iOS Simulator,name=iPhone 8,OS=12.2' + name: Xcode 11.7 - Swift 5.2 + xcode-version: '11.7.0' + ios-sim: 'platform=iOS Simulator,name=iPhone 8,OS=12.4' diff --git a/CHANGELOG.md b/CHANGELOG.md index 9333e788..1ea33631 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to the LaunchDarkly iOS SDK will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org). +## [5.4.5] - 2022-03-11 +### Fixed +- Fixed race condition in `LDSwiftEventSource` that could cause a crash if the stream is explicitly stopped (such as when `identify` is called) while the stream is waiting to reconnect. + ## [5.4.4] - 2022-01-19 ### Fixed - Fixed memory leak when stream connections are terminated by updating `LDSwiftEventSource` dependency to [1.3.0](https://github.com/launchdarkly/swift-eventsource/releases/tag/1.3.0). @@ -11,7 +15,7 @@ All notable changes to the LaunchDarkly iOS SDK will be documented in this file. ## [5.4.3] - 2021-08-13 ### Fixed -- Fixed an issue where `304 NOT_MODIFIED` responses to SDK polling mode requests would be considered error responses. This could cause the completion on a `identify` request to not complete, and gave erroneous connection information data and logging output. +- Fixed an issue where `304 NOT_MODIFIED` responses to SDK polling mode requests would be considered error responses. This could cause the completion on a `identify` request to not complete, and gave erroneous connection information data and logging output. - Fixed a crash when attempting to cache flag data containing variation JSON values containing a JSON `null` value nested within a JSON array. ## [5.4.2] - 2021-06-17 diff --git a/LaunchDarkly.podspec b/LaunchDarkly.podspec index c0417369..001a59fd 100644 --- a/LaunchDarkly.podspec +++ b/LaunchDarkly.podspec @@ -2,7 +2,7 @@ Pod::Spec.new do |ld| ld.name = "LaunchDarkly" - ld.version = "5.4.4" + ld.version = "5.4.5" ld.summary = "iOS SDK for LaunchDarkly" ld.description = <<-DESC @@ -35,6 +35,6 @@ Pod::Spec.new do |ld| ld.swift_version = '5.0' ld.subspec 'Core' do |es| - es.dependency 'LDSwiftEventSource', '1.3.0' + es.dependency 'LDSwiftEventSource', '1.3.1' end end diff --git a/LaunchDarkly.xcodeproj/project.pbxproj b/LaunchDarkly.xcodeproj/project.pbxproj index dae24c38..d43b8410 100644 --- a/LaunchDarkly.xcodeproj/project.pbxproj +++ b/LaunchDarkly.xcodeproj/project.pbxproj @@ -1583,7 +1583,7 @@ GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - MARKETING_VERSION = 5.4.4; + MARKETING_VERSION = 5.4.5; MODULEMAP_FILE = ""; PRODUCT_BUNDLE_IDENTIFIER = "com.launchdarkly.Darkly-tvOS"; PRODUCT_NAME = LaunchDarkly_tvOS; @@ -1606,7 +1606,7 @@ GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - MARKETING_VERSION = 5.4.4; + MARKETING_VERSION = 5.4.5; MODULEMAP_FILE = ""; PRODUCT_BUNDLE_IDENTIFIER = "com.launchdarkly.Darkly-tvOS"; PRODUCT_NAME = LaunchDarkly_tvOS; @@ -1629,7 +1629,7 @@ GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - MARKETING_VERSION = 5.4.4; + MARKETING_VERSION = 5.4.5; PRODUCT_BUNDLE_IDENTIFIER = "com.launchdarkly.Darkly-macOS"; PRODUCT_NAME = LaunchDarkly_macOS; SDKROOT = macosx; @@ -1650,7 +1650,7 @@ GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - MARKETING_VERSION = 5.4.4; + MARKETING_VERSION = 5.4.5; PRODUCT_BUNDLE_IDENTIFIER = "com.launchdarkly.Darkly-macOS"; PRODUCT_NAME = LaunchDarkly_macOS; SDKROOT = macosx; @@ -1694,7 +1694,7 @@ CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; DYLIB_COMPATIBILITY_VERSION = 5.4.0; - DYLIB_CURRENT_VERSION = 5.4.4; + DYLIB_CURRENT_VERSION = 5.4.5; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; FRAMEWORK_VERSION = B; @@ -1765,7 +1765,7 @@ CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DYLIB_COMPATIBILITY_VERSION = 5.4.0; - DYLIB_CURRENT_VERSION = 5.4.4; + DYLIB_CURRENT_VERSION = 5.4.5; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; FRAMEWORK_VERSION = B; @@ -1804,7 +1804,7 @@ INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)"; - MARKETING_VERSION = 5.4.4; + MARKETING_VERSION = 5.4.5; MODULEMAP_FILE = "$(PROJECT_DIR)/Framework/module.modulemap"; PRODUCT_BUNDLE_IDENTIFIER = com.launchdarkly.Darkly; PRODUCT_NAME = LaunchDarkly; @@ -1824,7 +1824,7 @@ INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)"; - MARKETING_VERSION = 5.4.4; + MARKETING_VERSION = 5.4.5; MODULEMAP_FILE = "$(PROJECT_DIR)/Framework/module.modulemap"; PRODUCT_BUNDLE_IDENTIFIER = com.launchdarkly.Darkly; PRODUCT_NAME = LaunchDarkly; @@ -1866,7 +1866,7 @@ GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - MARKETING_VERSION = 5.4.4; + MARKETING_VERSION = 5.4.5; PRODUCT_BUNDLE_IDENTIFIER = "com.launchdarkly.Darkly-watchOS"; PRODUCT_NAME = LaunchDarkly_watchOS; SDKROOT = watchos; @@ -1888,7 +1888,7 @@ GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - MARKETING_VERSION = 5.4.4; + MARKETING_VERSION = 5.4.5; PRODUCT_BUNDLE_IDENTIFIER = "com.launchdarkly.Darkly-watchOS"; PRODUCT_NAME = LaunchDarkly_watchOS; SDKROOT = watchos; @@ -1962,7 +1962,7 @@ repositoryURL = "https://github.com/LaunchDarkly/swift-eventsource.git"; requirement = { kind = exactVersion; - version = 1.3.0; + version = 1.3.1; }; }; B4903D9624BD61B200F087C4 /* XCRemoteSwiftPackageReference "OHHTTPStubs" */ = { diff --git a/LaunchDarkly/LaunchDarkly/ServiceObjects/EnvironmentReporter.swift b/LaunchDarkly/LaunchDarkly/ServiceObjects/EnvironmentReporter.swift index c1ddb285..7eb83e50 100644 --- a/LaunchDarkly/LaunchDarkly/ServiceObjects/EnvironmentReporter.swift +++ b/LaunchDarkly/LaunchDarkly/ServiceObjects/EnvironmentReporter.swift @@ -135,7 +135,7 @@ struct EnvironmentReporter: EnvironmentReporting { var shouldThrottleOnlineCalls: Bool { true } #endif - let sdkVersion = "5.4.4" + let sdkVersion = "5.4.5" // Unfortunately, the following does not function in certain configurations, such as when included through SPM // var sdkVersion: String { // Bundle(for: LDClient.self).infoDictionary?["CFBundleShortVersionString"] as? String ?? "5.x" diff --git a/Package.swift b/Package.swift index 79631e0f..30d74f3b 100644 --- a/Package.swift +++ b/Package.swift @@ -19,7 +19,7 @@ let package = Package( .package(url: "https://github.com/AliSoftware/OHHTTPStubs.git", .exact("9.1.0")), .package(url: "https://github.com/Quick/Quick.git", .exact("4.0.0")), .package(url: "https://github.com/Quick/Nimble.git", .exact("9.2.1")), - .package(name: "LDSwiftEventSource", url: "https://github.com/LaunchDarkly/swift-eventsource.git", .exact("1.3.0")) + .package(name: "LDSwiftEventSource", url: "https://github.com/LaunchDarkly/swift-eventsource.git", .exact("1.3.1")) ], targets: [ .target( diff --git a/README.md b/README.md index 7242126c..54afd70f 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ To include LaunchDarkly in a Swift package, simply add it to the dependencies se ```swift dependencies: [ - .package(url: "https://github.com/launchdarkly/ios-client-sdk.git", .upToNextMinor(from: "5.4.4")) + .package(url: "https://github.com/launchdarkly/ios-client-sdk.git", .upToNextMinor(from: "5.4.5")) ] ```