Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

prepare 8.3.0 release #306

Merged
merged 152 commits into from
Sep 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
6628d30
Add xcode compatibility information to readme (#93)
bwoskow-ld Apr 24, 2020
f2fc6e8
Merge branch 'v4' of https://github.com/launchdarkly/ios-client-sdk
torchhound May 27, 2020
e3fe153
Merge branch 'v4' of https://github.com/launchdarkly/ios-client-sdk
torchhound Jun 4, 2020
0391739
Merge branch 'v5'
gwhelanLD Jul 23, 2020
9e0a614
Merge branch 'v5'
gwhelanLD Jul 23, 2020
c7f03af
Merge branch 'v5'
gwhelanLD Aug 4, 2020
d02a80d
Merge branch 'v5' of github.com:launchdarkly/ios-client-sdk
gwhelanLD Oct 9, 2020
bf3f8ac
Merge branch 'v5'
gwhelanLD Nov 6, 2020
988bcfc
Merge branch 'v5'
gwhelanLD Dec 17, 2020
7deb14a
Removed the guides link
bwoskow-ld Feb 3, 2021
35cbb28
Merge branch 'v5'
gwhelanLD Feb 11, 2021
f9c62c0
Merge branch 'v5'
gwhelanLD Feb 26, 2021
6cd5eec
Merge branch 'v5' of https://github.com/launchdarkly/ios-client-sdk i…
torchhound Apr 7, 2021
503cb8e
[ch110317] Replace `class` with equivalent `AnyObject` as the prior i…
gwhelanLD Jun 11, 2021
f544bff
Merge remote-tracking branch 'public/v5'
gwhelanLD Jun 11, 2021
2d9acce
Update dependencies. (#155)
gwhelanLD Jun 17, 2021
2dd2aa5
Merge branch 'v5'
gwhelanLD Jun 17, 2021
bb22146
Restore compatibility with Swift 5.2 (#156)
gwhelanLD Jun 17, 2021
54aef07
Merge branch 'v5'
gwhelanLD Jun 18, 2021
5de6afc
Merge branch 'v5'
gwhelanLD Jun 18, 2021
b9d04c6
Update Sourcery and SwiftLint. (#157)
gwhelanLD Jun 22, 2021
8ea40ad
[ch115624] Fixes for polling mode (#158)
gwhelanLD Aug 9, 2021
f4a74cc
Merge branch 'v5'
gwhelanLD Aug 13, 2021
5c04f08
[ch115552] Filter deep nulls in flag data. (#159)
gwhelanLD Aug 13, 2021
2c8db33
Merge branch 'v5'
gwhelanLD Aug 13, 2021
a2bf12b
Add CI job for Xcode 13. (#160)
gwhelanLD Oct 1, 2021
d2e99bd
Remove Cartfile that specifies redundant framework dependency on LDSw…
gwhelanLD Nov 19, 2021
be3ff00
Fix CircleCI and improve build time of documentation step (#163)
gwhelanLD Dec 8, 2021
bfe48df
Permit additional fields on delete dictionary. (#164)
gwhelanLD Dec 28, 2021
22f1aff
Cleanup error notifier (#165)
gwhelanLD Dec 28, 2021
425154e
Remove oldest deprecated caches.
gwhelanLD Jan 6, 2022
15949b6
Remove LDFlagBaseTypeConvertible we never used.
gwhelanLD Jan 6, 2022
302a5d5
Break out variaiton methods from LDClient.swift.
gwhelanLD Jan 6, 2022
a97c363
Remove FlagStore from within LDUser.
gwhelanLD Jan 6, 2022
15d68fa
Simplify cache load in identify.
gwhelanLD Jan 9, 2022
000ca61
Improvements to LDTimer and Throttler cleanup. (#170)
gwhelanLD Jan 12, 2022
53799f2
Remove variation methods that allowed optional default values, and im…
gwhelanLD Jan 18, 2022
b732e7a
Update LDSwiftEventSource version and test dependencies. (#172)
gwhelanLD Jan 19, 2022
2f24471
Merge branch 'v5'
louis-launchdarkly Jan 19, 2022
822703a
(v6) Remove oldest deprecated caches. (#166)
gwhelanLD Jan 19, 2022
79a30b7
Merge branch 'v6' into gw/remove-base-type-convertible
gwhelanLD Jan 19, 2022
ca6a45d
Merge branch 'gw/remove-base-type-convertible' into gw/break-up-client
gwhelanLD Jan 19, 2022
66df0fb
Merge branch 'gw/break-up-client' into gw/remove-user-flag-store
gwhelanLD Jan 19, 2022
3ab332b
Merge pull request #167 from launchdarkly/gw/remove-base-type-convert…
gwhelanLD Jan 20, 2022
d36d2d6
Merge pull request #168 from launchdarkly/gw/break-up-client
gwhelanLD Jan 20, 2022
ecefd76
Merge pull request #169 from launchdarkly/gw/remove-user-flag-store
gwhelanLD Jan 20, 2022
216f929
Merge pull request #171 from launchdarkly/gw/remove-optional-variation
gwhelanLD Jan 20, 2022
dcce03e
Use CircleCI macOS Gen2 resource class. (#173)
gwhelanLD Feb 4, 2022
b90ff4a
Merge branch 'master' into v6
gwhelanLD Feb 4, 2022
e4073ad
Remove ErrorNotifier and file headers.
gwhelanLD Mar 7, 2022
e67ee30
(V6) Remove ErrorNotifier and file headers (#174)
gwhelanLD Mar 9, 2022
916c185
(V6) Remove Date extensions, isWithin and isEarlierThan. (#175)
gwhelanLD Mar 9, 2022
466d2a8
(V6) Remove test helper and tests for test helper that was not used. …
gwhelanLD Mar 9, 2022
cebd6f2
Remove functionality of privatizing all custom attributes with the pr…
gwhelanLD Mar 10, 2022
1cb2067
Simplify event reporting complete callback to not include published d…
gwhelanLD Mar 10, 2022
096ad3e
Add UserAttribute class.
gwhelanLD Mar 10, 2022
99256d5
Remove Dictionary initializer for LDUser.
gwhelanLD Mar 10, 2022
bd239e7
Merge pull request #177 from launchdarkly/gw/lduser-simplification
gwhelanLD Mar 11, 2022
a4231b0
Merge pull request #178 from launchdarkly/gw/simplify-event-reporting…
gwhelanLD Mar 11, 2022
a98286f
Merge pull request #179 from launchdarkly/gw/add-user-attribute
gwhelanLD Mar 11, 2022
ec8c2cd
Merge pull request #180 from launchdarkly/gw/remove-lduser-dict-init
gwhelanLD Mar 11, 2022
121eda5
Use LDValue for LDUser custom attributes and add Encodable implementa…
gwhelanLD Mar 11, 2022
9fb18b6
Bump LDSwiftEventSource to 1.3.1 to fix race condition. (#182)
gwhelanLD Mar 11, 2022
2be5569
Merge branch 'v5'
gwhelanLD Mar 11, 2022
dd7cfc4
Merge branch 'master' into v6
gwhelanLD Mar 14, 2022
b67929f
Merge branch 'v6' into gw/sc-144834/lduser-ldvalue
gwhelanLD Mar 14, 2022
61f92be
Silence warning so CI validation passes.
gwhelanLD Mar 14, 2022
8f4d721
Use LDValue for Event fields and summarization.
gwhelanLD Mar 15, 2022
f6ebd86
Use Encodable instances for Event serialization.
gwhelanLD Mar 16, 2022
79705a2
Break up Event model into multiple SubEvent models.
gwhelanLD Mar 16, 2022
f537121
Clean up EventReporterSpec.
gwhelanLD Mar 16, 2022
1aceb27
Use LDValue for LDChangedFlag.
gwhelanLD Mar 18, 2022
782f828
Use LDValue to simplify DiagnosticEventSpec encoding tests.
gwhelanLD Mar 18, 2022
0b7539c
Remove unused import.
gwhelanLD Mar 18, 2022
95d9005
Remove unused LDUser code.
gwhelanLD Mar 18, 2022
26cef81
Make trackEvents and trackReason non-optional in FeatureFlag and spec…
gwhelanLD Mar 21, 2022
ac0fda3
Merge pull request #181 from launchdarkly/gw/sc-144834/lduser-ldvalue
gwhelanLD Mar 21, 2022
b40e3d2
Merge pull request #183 from launchdarkly/gw/sc-144831/ldavlue-for-ev…
gwhelanLD Mar 21, 2022
6e67675
Merge pull request #184 from launchdarkly/gw/sc-144845/encodable-events
gwhelanLD Mar 21, 2022
b3397cb
Merge pull request #185 from launchdarkly/gw/sc-144844/break-up-event
gwhelanLD Mar 21, 2022
ca3ddc4
Merge pull request #186 from launchdarkly/gw/event-reporter-spec-cleanup
gwhelanLD Mar 22, 2022
d83ad6e
Merge pull request #188 from launchdarkly/gw/use-ldvalue-for-ldchange…
gwhelanLD Mar 22, 2022
d70421f
Merge pull request #189 from launchdarkly/gw/simplify-diagnosticevent…
gwhelanLD Mar 22, 2022
85d2c27
Merge pull request #190 from launchdarkly/gw/remove-unused-lduser-code
gwhelanLD Mar 22, 2022
257550e
Merge pull request #191 from launchdarkly/gw/non-optional-tracking-fl…
gwhelanLD Mar 22, 2022
c6201c5
(V6) Add Codable instance for FeatureFlag. (#192)
gwhelanLD Mar 25, 2022
18c3c9b
(V6) LDValue for flags (#193)
gwhelanLD Apr 21, 2022
979bf7f
Update LDUser to use default equatable instance rather than custom on…
gwhelanLD Apr 22, 2022
ade9499
(V6) Objective-C bridging (#196)
gwhelanLD May 2, 2022
a0e04ec
(V6) Bring back some ObjcLDUser attribute* constants (#198)
gwhelanLD May 4, 2022
ccc5702
master -> main
keelerm84 May 4, 2022
7a0d0ea
Merge branch 'v6'
keelerm84 May 4, 2022
ad8836a
Merge branch 'public-v6'
keelerm84 May 4, 2022
25d315b
Remove very old migration guide for SDK 4.0. (#200)
gwhelanLD May 5, 2022
ad32dec
Merge branch 'v6' of github.com:launchdarkly/ios-client-sdk
louis-launchdarkly May 6, 2022
0fcfece
Track optionality of isAnonymous property. (#201)
gwhelanLD May 17, 2022
79d2cda
Merge branch 'v6'
gwhelanLD May 17, 2022
a212925
Add SDK contract tests (#199)
keelerm84 May 18, 2022
5bd1b2f
Add support for application tags (#197)
keelerm84 May 19, 2022
e2abc45
Remove unsupported alias functionality (#202)
keelerm84 May 19, 2022
a3a0e8a
Add initial structure for context and reference (#203)
keelerm84 May 25, 2022
c668796
Support context JSON conversions (#204)
keelerm84 May 31, 2022
b1a443b
Update events from users to contexts (#206)
keelerm84 Jun 1, 2022
456548b
Fix majority of tests (#207)
keelerm84 Jun 1, 2022
04520ba
Adding a new Circle CI test case for the newer Xcode 13.3.1 (#205)
louis-launchdarkly Jun 2, 2022
258f146
Update cache to use new hashing key format (#208)
keelerm84 Jun 9, 2022
cf83047
Add tombstone support (#209)
keelerm84 Jun 9, 2022
c25f75c
Update with main (#211)
keelerm84 Jun 15, 2022
790603f
Update Objective C bindings to work with contexts (#213)
keelerm84 Jun 22, 2022
da4cd17
Expand documentation to include context classes (#210)
keelerm84 Jun 22, 2022
5a6748b
Add some missing JSON handling tests (#212)
keelerm84 Jun 24, 2022
fe1aa6f
Updates URLs
ember-stevens Jun 28, 2022
ed2686b
Merge pull request #215 from launchdarkly/emberstevens/sc-158241/upda…
ember-stevens Jun 28, 2022
a8bc65f
Favor anonymous over transient (#216)
keelerm84 Jul 1, 2022
2f20293
Generate stable context keys per kind (#218)
keelerm84 Jul 11, 2022
f2e6e49
Remove legacy LDUser classes (#214)
keelerm84 Jul 18, 2022
61a99d9
Remove restriction on setting attribute names (#219)
keelerm84 Jul 18, 2022
4481b28
Update xcode image version (#217)
keelerm84 Jul 18, 2022
8bed2c8
Update LDSwiftEventSource to v2.0.0 (#220)
keelerm84 Aug 30, 2022
ca3a68f
Merge branch 'public-v6'
keelerm84 Sep 2, 2022
8117f41
Merge branch 'main' into v7
keelerm84 Sep 2, 2022
68294a0
Remove array indexing reference support (#221)
keelerm84 Oct 3, 2022
b8257d8
Raise minimum OS versions (#222)
keelerm84 Oct 12, 2022
b487e97
Merge remote-tracking branch 'public/v7'
keelerm84 Oct 12, 2022
dcf45dd
Merge branch 'main' into v8
keelerm84 Oct 12, 2022
6ca052d
Add Objective C bindings for application info (#223)
keelerm84 Oct 28, 2022
1f4922f
Remove support for secondary attribute (#224)
keelerm84 Nov 2, 2022
69fec37
Merge branch 'v7' into private-main
keelerm84 Nov 8, 2022
d404f02
Merge branch 'main' into v8
keelerm84 Nov 8, 2022
094f141
Add support for legacy LDUser (#225)
keelerm84 Nov 20, 2022
c3f098e
Rlamb/sc 178317/remove seconary non nullable anonymous (#227)
kinyoklion Dec 5, 2022
8cdb539
Add user type tests (#228)
keelerm84 Dec 5, 2022
2fc6d1d
Expand code doc in preparation for u2c release (#226)
keelerm84 Dec 6, 2022
ef1faca
Final updates for u2c release (#229)
keelerm84 Dec 6, 2022
28341ea
Merge branch 'v8' into private-v8
keelerm84 Dec 7, 2022
e52d9bf
fix: Remove privateAttributes from the event payload (#230)
louis-launchdarkly Feb 28, 2023
0eb3322
Merge branch 'v8' of github.com:launchdarkly/ios-client-sdk
louis-launchdarkly Feb 28, 2023
b23c87a
Merge branch 'v8' of github.com:launchdarkly/ios-client-sdk
louis-launchdarkly Mar 23, 2023
68bb930
Merge branch 'v8' of github.com:launchdarkly/ios-client-sdk
louis-launchdarkly Apr 11, 2023
73bcda6
fix: Updating trySet to allow kind to be changed. (#231)
tanderson-ld May 5, 2023
eb47584
feat: Specify TLS v1.2 as required minimum (#232)
keelerm84 Jun 5, 2023
c520a09
Merge branch 'v8' into private-main
keelerm84 Jun 6, 2023
ab8058f
Updates daily flag count
ember-stevens Jun 8, 2023
81a0b32
[sc-205159] Update README with current number of flags served (#233)
ember-stevens Jun 8, 2023
e0bffba
chore: Bump event source to 3.1.1 (#234)
keelerm84 Jun 12, 2023
ae55369
Add file CODEOWNERS
ld-repository-standards[bot] Jun 26, 2023
fe6ac02
Add file CODEOWNERS (#235)
kparkinson-ld Jun 26, 2023
9c3989e
feat: Deprecate LDUser related functionality (#238)
keelerm84 Jul 21, 2023
1214b70
Ta/merging public v8 to private (#248)
tanderson-ld Aug 2, 2023
5570cc2
Merge remote-tracking branch 'public/v8'
tanderson-ld Aug 2, 2023
a34a460
feat: Introduce new int-based LDValue.init method (#253)
keelerm84 Sep 8, 2023
d27410d
preparing release 8.3.0
keelerm84 Sep 8, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 3 additions & 17 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -163,21 +163,7 @@ workflows:
xcode-version: '14.0.1'
ios-sim: 'platform=iOS Simulator,name=iPhone 14,OS=16.0'
- build:
name: Xcode 13.3 - Swift 5.6
xcode-version: '13.3.1'
ios-sim: 'platform=iOS Simulator,name=iPhone 13,OS=15.4'
- build:
name: Xcode 13.1 - Swift 5.5
xcode-version: '13.1.0'
ios-sim: 'platform=iOS Simulator,name=iPhone 11,OS=15.0'
build-doc: true
run-lint: true
- build:
name: Xcode 12.5 - Swift 5.4
xcode-version: '12.5.1'
ios-sim: 'platform=iOS Simulator,name=iPhone 8,OS=14.5'
- build:
name: Xcode 11.7 - Swift 5.2
xcode-version: '11.7.0'
ios-sim: 'platform=iOS Simulator,name=iPhone 8,OS=12.4'
name: Xcode 13.4.1 - Swift 5.6
xcode-version: '13.4.1'
ios-sim: 'platform=iOS Simulator,name=iPhone 13,OS=15.5'
- contract-tests
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).

## [8.3.0] - 2023-09-08
### Changed:
- Deprecated `LDValue.init(integerLiteral: Double)` as this method signature is misleading. A new `LDValue.init(integerLiteral: Int)` signature has been added for clarity.

## [8.2.0] - 2023-08-02
### Changed:
- Deprecated LDUser and related functionality. Use LDContext instead. To learn more, read https://docs.launchdarkly.com/home/contexts.
Expand Down
2 changes: 1 addition & 1 deletion LaunchDarkly.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Pod::Spec.new do |ld|

ld.name = "LaunchDarkly"
ld.version = "8.2.0"
ld.version = "8.3.0"
ld.summary = "iOS SDK for LaunchDarkly"

ld.description = <<-DESC
Expand Down
20 changes: 10 additions & 10 deletions LaunchDarkly.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1503,7 +1503,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
MARKETING_VERSION = 8.2.0;
MARKETING_VERSION = 8.3.0;
MODULEMAP_FILE = "";
PRODUCT_BUNDLE_IDENTIFIER = "com.launchdarkly.Darkly-tvOS";
PRODUCT_NAME = LaunchDarkly_tvOS;
Expand All @@ -1526,7 +1526,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
MARKETING_VERSION = 8.2.0;
MARKETING_VERSION = 8.3.0;
MODULEMAP_FILE = "";
PRODUCT_BUNDLE_IDENTIFIER = "com.launchdarkly.Darkly-tvOS";
PRODUCT_NAME = LaunchDarkly_tvOS;
Expand All @@ -1549,7 +1549,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
MARKETING_VERSION = 8.2.0;
MARKETING_VERSION = 8.3.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.launchdarkly.Darkly-macOS";
PRODUCT_NAME = LaunchDarkly_macOS;
SDKROOT = macosx;
Expand All @@ -1570,7 +1570,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
MARKETING_VERSION = 8.2.0;
MARKETING_VERSION = 8.3.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.launchdarkly.Darkly-macOS";
PRODUCT_NAME = LaunchDarkly_macOS;
SDKROOT = macosx;
Expand Down Expand Up @@ -1614,7 +1614,7 @@
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DYLIB_COMPATIBILITY_VERSION = 8.0.0;
DYLIB_CURRENT_VERSION = 8.2.0;
DYLIB_CURRENT_VERSION = 8.3.0;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
FRAMEWORK_VERSION = E;
Expand Down Expand Up @@ -1685,7 +1685,7 @@
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DYLIB_COMPATIBILITY_VERSION = 8.0.0;
DYLIB_CURRENT_VERSION = 8.2.0;
DYLIB_CURRENT_VERSION = 8.3.0;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_VERSION = E;
Expand Down Expand Up @@ -1724,7 +1724,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 = 8.2.0;
MARKETING_VERSION = 8.3.0;
MODULEMAP_FILE = "$(PROJECT_DIR)/Framework/module.modulemap";
PRODUCT_BUNDLE_IDENTIFIER = com.launchdarkly.Darkly;
PRODUCT_NAME = LaunchDarkly;
Expand All @@ -1744,7 +1744,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 = 8.2.0;
MARKETING_VERSION = 8.3.0;
MODULEMAP_FILE = "$(PROJECT_DIR)/Framework/module.modulemap";
PRODUCT_BUNDLE_IDENTIFIER = com.launchdarkly.Darkly;
PRODUCT_NAME = LaunchDarkly;
Expand Down Expand Up @@ -1786,7 +1786,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
MARKETING_VERSION = 8.2.0;
MARKETING_VERSION = 8.3.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.launchdarkly.Darkly-watchOS";
PRODUCT_NAME = LaunchDarkly_watchOS;
SDKROOT = watchos;
Expand All @@ -1808,7 +1808,7 @@
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = "$(PROJECT_DIR)/LaunchDarkly/LaunchDarkly/Support/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
MARKETING_VERSION = 8.2.0;
MARKETING_VERSION = 8.3.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.launchdarkly.Darkly-watchOS";
PRODUCT_NAME = LaunchDarkly_watchOS;
SDKROOT = watchos;
Expand Down
15 changes: 15 additions & 0 deletions LaunchDarkly/LaunchDarkly/LDCommon.swift
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,25 @@ public enum LDValue: Codable,
self = .bool(booleanLiteral)
}

/// Create an LDValue representation from the provided Double value.
///
/// This method DOES NOT truncate the provided Double. As JSON numeric
/// values are always treated as double-precision, this method will
/// store the given Double as it.
@available(*, deprecated, message: "Use LDValue.init(integerLiteral: Int) or LDValue.init(floatLiteral: Double)")
public init(integerLiteral: Double) {
self = .number(integerLiteral)
}

/// Create an LDValue representation from the provided Int.
///
/// All JSON numeric types are represented as double-precision so the
/// provided Int will be cast to a Double.
public init(integerLiteral: Int) {
self = .number(Double(integerLiteral))
}

/// Create an LDValue representation from the provided Double.
public init(floatLiteral: Double) {
self = .number(floatLiteral)
}
Expand Down
45 changes: 33 additions & 12 deletions LaunchDarkly/LaunchDarkly/Models/LDUser.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ public struct LDUser: Encodable, Equatable {

static let storedIdKey: String = "ldDeviceIdentifier"

/// Client app defined string that uniquely identifies the user. If the client app does not define a key, the SDK will assign an identifier associated with the anonymous user. The key cannot be made private.
/// Client app defined string that uniquely identifies the user. If the client app does not define a key, the SDK
/// will assign an identifier associated with the anonymous user. The key cannot be made private.
public var key: String
/// Client app defined name for the user. (Default: nil)
public var name: String?
Expand All @@ -29,33 +30,47 @@ public struct LDUser: Encodable, Equatable {
public var email: String?
/// Client app defined avatar for the user. (Default: nil)
public var avatar: String?
/// Client app defined dictionary for the user. The client app may declare top level dictionary items as private, see `privateAttributes` for details. (Default: [:])
/// Client app defined dictionary for the user. The client app may declare top level dictionary items as private,
/// see `privateAttributes` for details. (Default: [:])
public var custom: [String: LDValue]
/// Client app defined isAnonymous for the user. If the client app does not define isAnonymous, the SDK will use the `key` to set this attribute. isAnonymous cannot be made private. (Default: false)
/// Client app defined isAnonymous for the user. If the client app does not define isAnonymous, the SDK will use the
/// `key` to set this attribute. isAnonymous cannot be made private. (Default: false)
public var isAnonymous: Bool

/**
Client app defined privateAttributes for the user.
The SDK will not include private attribute values in analytics events, but private attribute names will be sent.
This attribute is ignored if `LDConfig.allUserAttributesPrivate` is true. Combined with `LDConfig.privateUserAttributes`. The SDK considers attributes appearing in either list as private. Client apps may define most built-in attributes and all top level `custom` dictionary keys here. (Default: []])

This attribute is ignored if `LDConfig.allUserAttributesPrivate` is true. Combined with
`LDConfig.privateUserAttributes`. The SDK considers attributes appearing in either list as private. Client apps may
define most built-in attributes and all top level `custom` dictionary keys here. (Default: []])

See Also: `LDConfig.allUserAttributesPrivate` and `LDConfig.privateUserAttributes`.
*/
public var privateAttributes: [UserAttribute]

var contextKind: String { isAnonymous ? "anonymousUser" : "user" }

/**
Initializer to create a LDUser. Client configurable attributes each have an optional parameter to facilitate setting user information into the LDUser. The SDK will automatically set `key`, `device`, `operatingSystem`, and `isAnonymous` attributes if the client does not provide them. The SDK embeds `device` and `operatingSystem` into the `custom` dictionary for transmission to LaunchDarkly.
- parameter key: String that uniquely identifies the user. If the client app does not define a key, the SDK will assign an identifier associated with the anonymous user.
Initializer to create a LDUser. Client configurable attributes each have an optional parameter to facilitate
setting user information into the LDUser. The SDK will automatically set `key`, `device`, `operatingSystem`, and
`isAnonymous` attributes if the client does not provide them. The SDK embeds `device` and `operatingSystem` into
the `custom` dictionary for transmission to LaunchDarkly.

- parameter key: String that uniquely identifies the user. If the client app does not define a key, the SDK will
assign an identifier associated with the anonymous user.
- parameter name: Client app defined name for the user. (Default: nil)
- parameter firstName: Client app defined first name for the user. (Default: nil)
- parameter lastName: Client app defined last name for the user. (Default: nil)
- parameter country: Client app defined country for the user. (Default: nil)
- parameter ipAddress: Client app defined ipAddress for the user. (Default: nil)
- parameter email: Client app defined email address for the user. (Default: nil)
- parameter avatar: Client app defined avatar for the user. (Default: nil)
- parameter custom: Client app defined dictionary for the user. The client app may declare top level dictionary items as private. If the client app defines custom as private, the SDK considers the dictionary private except for device & operatingSystem (which cannot be made private). See `privateAttributes` for details. (Default: nil)
- parameter isAnonymous: Client app defined isAnonymous for the user. If the client app does not define isAnonymous, the SDK will use the `key` to set this attribute. (Default: nil)
- parameter custom: Client app defined dictionary for the user. The client app may declare top level dictionary
items as private. If the client app defines custom as private, the SDK considers the dictionary private except for
device & operatingSystem (which cannot be made private). See `privateAttributes` for details. (Default: nil)
- parameter isAnonymous: Client app defined isAnonymous for the user. If the client app does not define
isAnonymous, the SDK will use the `key` to set this attribute. (Default: nil)
- parameter privateAttributes: Client app defined privateAttributes for the user. (Default: nil)
*/
public init(key: String? = nil,
Expand Down Expand Up @@ -113,7 +128,8 @@ public struct LDUser: Encodable, Equatable {
/**
Internal helper method to convert an LDUser to an LDContext.

Ideally we would do this as the LDUser was being built. However, the LDUser properties are publicly accessible, which makes that approach problematic.
Ideally we would do this as the LDUser was being built. However, the LDUser properties are publicly accessible,
which makes that approach problematic.
*/
internal func toContext() -> Result<LDContext, ContextBuilderError> {
var contextBuilder = LDContextBuilder(key: key)
Expand Down Expand Up @@ -200,11 +216,16 @@ public struct LDUser: Encodable, Equatable {
}
}

/// Default key is the LDUser.key the SDK provides when any intializer is called without defining the key. The key should be constant with respect to the client app installation on a specific device. (The key may change if the client app is uninstalled and then reinstalled on the same device.)
/// - parameter environmentReporter: The environmentReporter provides selected information that varies between OS regarding how it's determined
/// Default key is the LDUser.key the SDK provides when any intializer is called without defining the key. The key
/// should be constant with respect to the client app installation on a specific device. (The key may change if the
/// client app is uninstalled and then reinstalled on the same device.)
///
/// - parameter environmentReporter: The environmentReporter provides selected information that varies between OS
/// regarding how it's determined
static func defaultKey(environmentReporter: EnvironmentReporting) -> String {
// For iOS & tvOS, this should be UIDevice.current.identifierForVendor.UUIDString
// For macOS & watchOS, this should be a UUID that the sdk creates and stores so that the value returned here should be always the same
// For macOS & watchOS, this should be a UUID that the sdk creates and stores so that the value returned here
// should be always the same
if let vendorUUID = environmentReporter.vendorUUID {
return vendorUUID
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ struct EnvironmentReporter: EnvironmentReporting {
#endif

var shouldThrottleOnlineCalls: Bool { !isDebugBuild }
let sdkVersion = "8.2.0"
let sdkVersion = "8.3.0"
// 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"
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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: "8.2.0"))
.package(url: "https://github.com/launchdarkly/ios-client-sdk.git", .upToNextMinor(from: "8.3.0"))
]
```

Expand All @@ -60,7 +60,7 @@ To use the [CocoaPods](https://cocoapods.org) dependency manager to integrate La
```ruby
use_frameworks!
target 'YourTargetName' do
pod 'LaunchDarkly', '~> 8.2'
pod 'LaunchDarkly', '~> 8.3'
end
```

Expand All @@ -71,7 +71,7 @@ To use the [Carthage](https://github.com/Carthage/Carthage) dependency manager t
To integrate LaunchDarkly into your Xcode project using Carthage, specify it in your `Cartfile`:

```ogdl
github "launchdarkly/ios-client-sdk" ~> 8.2
github "launchdarkly/ios-client-sdk" ~> 8.3
```

### Manual installation
Expand Down