Skip to content
This repository has been archived by the owner on Oct 29, 2024. It is now read-only.

iOS Crash LeanplumRequest.m line 116 #57

Closed
alexanderjarvis opened this issue Sep 6, 2020 · 3 comments
Closed

iOS Crash LeanplumRequest.m line 116 #57

alexanderjarvis opened this issue Sep 6, 2020 · 3 comments
Labels
bug Something isn't working

Comments

@alexanderjarvis
Copy link

alexanderjarvis commented Sep 6, 2020

Describe the bug
There's a crash that's been present for 6 months or more.

I think it's caused by the RN client not calling the SDK on the right thread / queue (see logs).

To reproduce
Too hard to reproduce.

Expected behavior
The SDK to not crash.

Logs
+[LeanplumRequest generateUUID]

Crashed: NSOperationQueue 0x280c2f020 (QOS: UNSPECIFIED)
0  libobjc.A.dylib                0x19139b530 objc_msgSend + 16
1  Foundation                     0x192bf6830 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 700
2  Foundation                     0x192b49c58 -[NSObject(NSKeyValueObservingPrivate) _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:] + 648
3  CoreFoundation                 0x1920a524c -[CFPrefsSource forEachObserver:] + 260
4  CoreFoundation                 0x1920a6cb0 -[CFPrefsSource _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:] + 76
5  CoreFoundation                 0x1921e6ffc ___CFPrefsDeliverPendingKVONotificationsGuts_block_invoke + 408
6  CoreFoundation                 0x192107e10 __CFDictionaryApplyFunction_block_invoke + 24
7  CoreFoundation                 0x1921d18dc CFBasicHashApply + 116
8  CoreFoundation                 0x192107dec CFDictionaryApplyFunction + 168
9  CoreFoundation                 0x1921e0710 _CFPrefsDeliverPendingKVONotificationsGuts + 260
10 CoreFoundation                 0x192126d70 __108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke + 304
11 CoreFoundation                 0x192126794 normalizeQuintuplet + 340
12 CoreFoundation                 0x192094e74 -[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:] + 108
13 CoreFoundation                 0x192097e8c -[_CFXPreferences setValue:forKey:appIdentifier:container:configurationURL:] + 92
14 CoreFoundation                 0x1921e5460 _CFPreferencesSetAppValueWithContainerAndConfiguration + 132
15 Foundation                     0x192b44a08 -[NSUserDefaults(NSUserDefaults) setObject:forKey:] + 64
16 Leanplum                       0x103747fd4 +[LeanplumRequest generateUUID] + 116 (LeanplumRequest.m:116)
17 Leanplum                       0x103748d50 __32-[LeanplumRequest sendRequests:]_block_invoke + 261 (LeanplumRequest.m:261)
18 Foundation                     0x192c0def8 __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 16
19 Foundation                     0x192b1a3e0 -[NSBlockOperation main] + 72
20 Foundation                     0x192b198c8 -[__NSOperationInternal _start:] + 740
21 Foundation                     0x192c0fc7c __NSOQSchedule_f + 272
22 libdispatch.dylib              0x191be8a38 _dispatch_call_block_and_release + 24
23 libdispatch.dylib              0x191be97d4 _dispatch_client_callout + 16
24 libdispatch.dylib              0x191b8e018 _dispatch_continuation_pop$VARIANT$mp + 412
25 libdispatch.dylib              0x191b8d6dc _dispatch_async_redirect_invoke + 600
26 libdispatch.dylib              0x191b9a02c _dispatch_root_queue_drain + 372
27 libdispatch.dylib              0x191b9a8d0 _dispatch_worker_thread2 + 128
28 libsystem_pthread.dylib        0x191dc91b4 _pthread_wqthread + 464
29 libsystem_pthread.dylib        0x191dcbcd4 start_wqthread + 4

SDK version
3.1.1

Language version, developer tools
n/a

OS/platform
iOS 12.3.1

Additional context
It's definitely an issue where the RN bridge uses an operation queue that's not compatible with the SDK or Foundation APIs. This is usually resolved by dispatching to the main thread for example.

@alexanderjarvis alexanderjarvis changed the title iOS Crash generateUUID iOS Crash LeanplumRequest.m line 116 Sep 6, 2020
@torchhound
Copy link
Contributor

Hi @alexanderjarvis thanks for reporting this bug.

Filed internally as 88890.

@torchhound torchhound added the bug Something isn't working label Sep 8, 2020
@torchhound
Copy link
Contributor

Hi @alexanderjarvis! I don't see anything in the stack trace that refers to LaunchDarkly only to Leanplum, is there some additional information that leads you to believe our SDK is crashing? Any additional information or insight you can provide will help us diagnose and fix this bug more quickly.

@alexanderjarvis
Copy link
Author

@torchhound ah sorry I reported to the wrong repo!

LaunchDarklyCI pushed a commit that referenced this issue Apr 1, 2021
* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Added accessor methods for ConnectionInformation (#64)

* Added ConnectionInformation accessors

* Fixes from manual testing

* PR feedback

* Fix allUserAttributesPrivate

* Improve typescript docs

* Minor fixes (#66)

Fixes `floatVariation` to keep double precision and fix build warnings.

* Fix track metricValue on iOS (#67)

* Remove CI checkout for release

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
LaunchDarklyCI pushed a commit that referenced this issue May 19, 2021
* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Add protocol

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

* Fix minor PR feedback

* Update index.d.ts

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* Added secondaryMobileKeys and getForMobileKey

* Added primaryEnvironmentName constant

* Fix Android build errors

* Fix build errors

* Fix Android config error

* CI test fixes

* Catch LD exception without crashing

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Multi environment works in Android, fixed bad config type

* Fix allUserAttributesPrivate

* Fix typescript test

* No StringSet for wrapper, change to ldClient for isInitialized

* Forgot nil check

* environment param

* Select environment via method parameter

* Check for environment undefined in JS

* iOS error fixes

* Fix iOS bridge, add missing param and try to Android

* Remove v4.0 branch hello rn for CI

* Fixed all flags and better long conversion

* A bunch of let to const, change default to test in multi env ts test, remove ldClient var from iOS

* Remove internal comments from Android

* Added back 2 Android comments, Double to NSNumber reversion, var to let reversion, ternary to function

* Get default environment name from underlying SDKs

* Cast NSNumber to Double to fix compilation error

* getVersion public, remove ldClient from Android

* Use get()

* Remove unnecessary get()

* Try instead of null check

* as! Double to doubleValue, toIntExact to intValue, change Android env name, improve try

* Fix listeners in multiple environments, change continue to comment in Android try/catch init

* Add semicolon in between environment and flagKey or listenerId string concat

* Environment concatenation function

* Swift param labels

* Added self, remove conditional cast to Any

* Remove unnecessary nil coalescing

* Capitalize ldClient

* getForMobileKey Android

* Removed unnecessary try, added final keyword

* Revert some nonnull and Double types

* Inline primaryEnvironmentName iOS

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
LaunchDarklyReleaseBot added a commit that referenced this issue Mar 18, 2022
* Removed the guides link

* V4.0 (#68)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Added accessor methods for ConnectionInformation (#64)

* Added ConnectionInformation accessors

* Fixes from manual testing

* PR feedback

* Fix allUserAttributesPrivate

* Improve typescript docs

* Minor fixes (#66)

Fixes `floatVariation` to keep double precision and fix build warnings.

* Fix track metricValue on iOS (#67)

* Remove CI checkout for release

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>

* Update iOS SDK dependency to fix Throttler behavior (#69)

* V4.1.0 (#72)

* Bump react native to 0.64 (#70)

* Remove unnecessary React peer dependency (#71)

* Fixed jsonVariationDetail parsing on Android and fixed a typo in jsonVariationDetailNone (#73)

* Releasing version 4.0.2

* Removes Typescript enums and replaces them with types that extend string (#74)

* Added ts flag for testing

* Testing bwoskow typescript enum patch

* Remove todo

* Releasing version 4.0.3

* Multi Environment  (#65)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Add protocol

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

* Fix minor PR feedback

* Update index.d.ts

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* Added secondaryMobileKeys and getForMobileKey

* Added primaryEnvironmentName constant

* Fix Android build errors

* Fix build errors

* Fix Android config error

* CI test fixes

* Catch LD exception without crashing

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Multi environment works in Android, fixed bad config type

* Fix allUserAttributesPrivate

* Fix typescript test

* No StringSet for wrapper, change to ldClient for isInitialized

* Forgot nil check

* environment param

* Select environment via method parameter

* Check for environment undefined in JS

* iOS error fixes

* Fix iOS bridge, add missing param and try to Android

* Remove v4.0 branch hello rn for CI

* Fixed all flags and better long conversion

* A bunch of let to const, change default to test in multi env ts test, remove ldClient var from iOS

* Remove internal comments from Android

* Added back 2 Android comments, Double to NSNumber reversion, var to let reversion, ternary to function

* Get default environment name from underlying SDKs

* Cast NSNumber to Double to fix compilation error

* getVersion public, remove ldClient from Android

* Use get()

* Remove unnecessary get()

* Try instead of null check

* as! Double to doubleValue, toIntExact to intValue, change Android env name, improve try

* Fix listeners in multiple environments, change continue to comment in Android try/catch init

* Add semicolon in between environment and flagKey or listenerId string concat

* Environment concatenation function

* Swift param labels

* Added self, remove conditional cast to Any

* Remove unnecessary nil coalescing

* Capitalize ldClient

* getForMobileKey Android

* Removed unnecessary try, added final keyword

* Revert some nonnull and Double types

* Inline primaryEnvironmentName iOS

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Add secondary user attribute (#76)

* Fix multi environment on restwrapper (#77)

* remove platform specific default env name

* Replace function with ternary

* Remove _getEnvironment

* [ch109800] Await Android client initialization. (#78)

Handle promise from `isInitialized` during configuration. Update iOS `isInitialized` to reject when not configured to match Android implementation. Improve Android `allFlags` to reject promise when non-existent environment is used or other exception, and allow calling `allFlags` before client initialization completes.

* Update iOS method signature to match implementation (#79)

* Releasing version 4.0.4

* [ch110474] Fixes for undeclared variables and other callback issues. (#81)

* Changes for Android 3. (#82)

* Add unit tests for JS native bridge wrapper. (#83)

* Docs improvements (#84)

* [ch94513] Add aliasing support (#85)

* Requiring default values to be specified. Remove intVariation. (#86)

* Safer and cleaner configuration on iOS (#87)

* Cleanup Android variation implementation (#88)

* Use latest iOS and Android SDKs (#89)

* Fix issue with numeric variation calls. (#90)

* Add consumer Proguard file to Android build configuration. (#91)

* Update Android SDK to 3.1.1 (#92)

* Fix for absolute paths in cocoapods generated build files by running pod install in CI. (#93)

* Re-introduce compatibility for React Native 0.63 (#94)

* Updates docs URLs

* Add configuration option `inlineUsersInEvents` and typescript definition for `autoAliasingOptOut`. (#96)

* minor doc improvement (#97)

* Update version in README to match what version we'll actually be releasing with (#98)

* Invert isOffline on iOS. (#99)

* Fixes and improvements for CI configuration (#100)

* [SC-130395] Allow native SDKs to generate anonymous user when user key is not provided. (#101)

* See will this work without adding the mavenCentral

* Adding MavenCentral

* Fix RN0.63 builds

* Fix outdated sed CI expression preventing actually testing against the current SDK version correctly (#103)

* Update Android native SDK dependency and gradle config. (#104)

* Update iOS SDK native dependency in podspec. (#105)

* [sc-139041] Fix releaser typedoc generation (#106)

* Have podspec retrieve version from package.json to allow using default releaser version script. (#107)

* Fix iOS jsonVariation and jsonVariationDetail when using array default value. (#108)

* Completely rework CI build to not use hello-react-native (#109)

* Include manual testing application in repo (#110)

* Adding the addListener and removeListeners method to silence the warning

* Add privateAttributeNames to TypeScript and iOS wrapper implementation. (#112)

* Bump to latest Android SDK release (#114)

* Fix ownership handling for all flags and connection mode listeners on iOS. (#113)

* Update iOS SDK to latest 5.4.5 release. (#115)

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Joe Cieslik <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com>
Co-authored-by: Louis Chan <lchan@launchdarkly.com>
Co-authored-by: Louis Chan <91093020+louis-launchdarkly@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this issue Mar 25, 2022
* Removed the guides link

* V4.0 (#68)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Added accessor methods for ConnectionInformation (#64)

* Added ConnectionInformation accessors

* Fixes from manual testing

* PR feedback

* Fix allUserAttributesPrivate

* Improve typescript docs

* Minor fixes (#66)

Fixes `floatVariation` to keep double precision and fix build warnings.

* Fix track metricValue on iOS (#67)

* Remove CI checkout for release

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>

* Update iOS SDK dependency to fix Throttler behavior (#69)

* V4.1.0 (#72)

* Bump react native to 0.64 (#70)

* Remove unnecessary React peer dependency (#71)

* Fixed jsonVariationDetail parsing on Android and fixed a typo in jsonVariationDetailNone (#73)

* Releasing version 4.0.2

* Removes Typescript enums and replaces them with types that extend string (#74)

* Added ts flag for testing

* Testing bwoskow typescript enum patch

* Remove todo

* Releasing version 4.0.3

* Multi Environment  (#65)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Add protocol

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

* Fix minor PR feedback

* Update index.d.ts

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* Added secondaryMobileKeys and getForMobileKey

* Added primaryEnvironmentName constant

* Fix Android build errors

* Fix build errors

* Fix Android config error

* CI test fixes

* Catch LD exception without crashing

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Multi environment works in Android, fixed bad config type

* Fix allUserAttributesPrivate

* Fix typescript test

* No StringSet for wrapper, change to ldClient for isInitialized

* Forgot nil check

* environment param

* Select environment via method parameter

* Check for environment undefined in JS

* iOS error fixes

* Fix iOS bridge, add missing param and try to Android

* Remove v4.0 branch hello rn for CI

* Fixed all flags and better long conversion

* A bunch of let to const, change default to test in multi env ts test, remove ldClient var from iOS

* Remove internal comments from Android

* Added back 2 Android comments, Double to NSNumber reversion, var to let reversion, ternary to function

* Get default environment name from underlying SDKs

* Cast NSNumber to Double to fix compilation error

* getVersion public, remove ldClient from Android

* Use get()

* Remove unnecessary get()

* Try instead of null check

* as! Double to doubleValue, toIntExact to intValue, change Android env name, improve try

* Fix listeners in multiple environments, change continue to comment in Android try/catch init

* Add semicolon in between environment and flagKey or listenerId string concat

* Environment concatenation function

* Swift param labels

* Added self, remove conditional cast to Any

* Remove unnecessary nil coalescing

* Capitalize ldClient

* getForMobileKey Android

* Removed unnecessary try, added final keyword

* Revert some nonnull and Double types

* Inline primaryEnvironmentName iOS

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Add secondary user attribute (#76)

* Fix multi environment on restwrapper (#77)

* remove platform specific default env name

* Replace function with ternary

* Remove _getEnvironment

* [ch109800] Await Android client initialization. (#78)

Handle promise from `isInitialized` during configuration. Update iOS `isInitialized` to reject when not configured to match Android implementation. Improve Android `allFlags` to reject promise when non-existent environment is used or other exception, and allow calling `allFlags` before client initialization completes.

* Update iOS method signature to match implementation (#79)

* Releasing version 4.0.4

* [ch110474] Fixes for undeclared variables and other callback issues. (#81)

* Changes for Android 3. (#82)

* Add unit tests for JS native bridge wrapper. (#83)

* Docs improvements (#84)

* [ch94513] Add aliasing support (#85)

* Requiring default values to be specified. Remove intVariation. (#86)

* Safer and cleaner configuration on iOS (#87)

* Cleanup Android variation implementation (#88)

* Use latest iOS and Android SDKs (#89)

* Fix issue with numeric variation calls. (#90)

* Add consumer Proguard file to Android build configuration. (#91)

* Update Android SDK to 3.1.1 (#92)

* Fix for absolute paths in cocoapods generated build files by running pod install in CI. (#93)

* Re-introduce compatibility for React Native 0.63 (#94)

* Updates docs URLs

* Add configuration option `inlineUsersInEvents` and typescript definition for `autoAliasingOptOut`. (#96)

* minor doc improvement (#97)

* Update version in README to match what version we'll actually be releasing with (#98)

* Invert isOffline on iOS. (#99)

* Fixes and improvements for CI configuration (#100)

* [SC-130395] Allow native SDKs to generate anonymous user when user key is not provided. (#101)

* See will this work without adding the mavenCentral

* Adding MavenCentral

* Fix RN0.63 builds

* Fix outdated sed CI expression preventing actually testing against the current SDK version correctly (#103)

* Update Android native SDK dependency and gradle config. (#104)

* Update iOS SDK native dependency in podspec. (#105)

* [sc-139041] Fix releaser typedoc generation (#106)

* Have podspec retrieve version from package.json to allow using default releaser version script. (#107)

* Fix iOS jsonVariation and jsonVariationDetail when using array default value. (#108)

* Completely rework CI build to not use hello-react-native (#109)

* Include manual testing application in repo (#110)

* Adding the addListener and removeListeners method to silence the warning

* Add privateAttributeNames to TypeScript and iOS wrapper implementation. (#112)

* Bump to latest Android SDK release (#114)

* Fix ownership handling for all flags and connection mode listeners on iOS. (#113)

* Update iOS SDK to latest 5.4.5 release. (#115)

* Update Android SDK to latest patch release. (#116)

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Joe Cieslik <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com>
Co-authored-by: Louis Chan <lchan@launchdarkly.com>
Co-authored-by: Louis Chan <91093020+louis-launchdarkly@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this issue Apr 14, 2022
* Removed the guides link

* V4.0 (#68)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Added accessor methods for ConnectionInformation (#64)

* Added ConnectionInformation accessors

* Fixes from manual testing

* PR feedback

* Fix allUserAttributesPrivate

* Improve typescript docs

* Minor fixes (#66)

Fixes `floatVariation` to keep double precision and fix build warnings.

* Fix track metricValue on iOS (#67)

* Remove CI checkout for release

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>

* Update iOS SDK dependency to fix Throttler behavior (#69)

* V4.1.0 (#72)

* Bump react native to 0.64 (#70)

* Remove unnecessary React peer dependency (#71)

* Fixed jsonVariationDetail parsing on Android and fixed a typo in jsonVariationDetailNone (#73)

* Releasing version 4.0.2

* Removes Typescript enums and replaces them with types that extend string (#74)

* Added ts flag for testing

* Testing bwoskow typescript enum patch

* Remove todo

* Releasing version 4.0.3

* Multi Environment  (#65)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Add protocol

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

* Fix minor PR feedback

* Update index.d.ts

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* Added secondaryMobileKeys and getForMobileKey

* Added primaryEnvironmentName constant

* Fix Android build errors

* Fix build errors

* Fix Android config error

* CI test fixes

* Catch LD exception without crashing

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Multi environment works in Android, fixed bad config type

* Fix allUserAttributesPrivate

* Fix typescript test

* No StringSet for wrapper, change to ldClient for isInitialized

* Forgot nil check

* environment param

* Select environment via method parameter

* Check for environment undefined in JS

* iOS error fixes

* Fix iOS bridge, add missing param and try to Android

* Remove v4.0 branch hello rn for CI

* Fixed all flags and better long conversion

* A bunch of let to const, change default to test in multi env ts test, remove ldClient var from iOS

* Remove internal comments from Android

* Added back 2 Android comments, Double to NSNumber reversion, var to let reversion, ternary to function

* Get default environment name from underlying SDKs

* Cast NSNumber to Double to fix compilation error

* getVersion public, remove ldClient from Android

* Use get()

* Remove unnecessary get()

* Try instead of null check

* as! Double to doubleValue, toIntExact to intValue, change Android env name, improve try

* Fix listeners in multiple environments, change continue to comment in Android try/catch init

* Add semicolon in between environment and flagKey or listenerId string concat

* Environment concatenation function

* Swift param labels

* Added self, remove conditional cast to Any

* Remove unnecessary nil coalescing

* Capitalize ldClient

* getForMobileKey Android

* Removed unnecessary try, added final keyword

* Revert some nonnull and Double types

* Inline primaryEnvironmentName iOS

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Add secondary user attribute (#76)

* Fix multi environment on restwrapper (#77)

* remove platform specific default env name

* Replace function with ternary

* Remove _getEnvironment

* [ch109800] Await Android client initialization. (#78)

Handle promise from `isInitialized` during configuration. Update iOS `isInitialized` to reject when not configured to match Android implementation. Improve Android `allFlags` to reject promise when non-existent environment is used or other exception, and allow calling `allFlags` before client initialization completes.

* Update iOS method signature to match implementation (#79)

* Releasing version 4.0.4

* [ch110474] Fixes for undeclared variables and other callback issues. (#81)

* Changes for Android 3. (#82)

* Add unit tests for JS native bridge wrapper. (#83)

* Docs improvements (#84)

* [ch94513] Add aliasing support (#85)

* Requiring default values to be specified. Remove intVariation. (#86)

* Safer and cleaner configuration on iOS (#87)

* Cleanup Android variation implementation (#88)

* Use latest iOS and Android SDKs (#89)

* Fix issue with numeric variation calls. (#90)

* Add consumer Proguard file to Android build configuration. (#91)

* Update Android SDK to 3.1.1 (#92)

* Fix for absolute paths in cocoapods generated build files by running pod install in CI. (#93)

* Re-introduce compatibility for React Native 0.63 (#94)

* Updates docs URLs

* Add configuration option `inlineUsersInEvents` and typescript definition for `autoAliasingOptOut`. (#96)

* minor doc improvement (#97)

* Update version in README to match what version we'll actually be releasing with (#98)

* Invert isOffline on iOS. (#99)

* Fixes and improvements for CI configuration (#100)

* [SC-130395] Allow native SDKs to generate anonymous user when user key is not provided. (#101)

* See will this work without adding the mavenCentral

* Adding MavenCentral

* Fix RN0.63 builds

* Fix outdated sed CI expression preventing actually testing against the current SDK version correctly (#103)

* Update Android native SDK dependency and gradle config. (#104)

* Update iOS SDK native dependency in podspec. (#105)

* [sc-139041] Fix releaser typedoc generation (#106)

* Have podspec retrieve version from package.json to allow using default releaser version script. (#107)

* Fix iOS jsonVariation and jsonVariationDetail when using array default value. (#108)

* Completely rework CI build to not use hello-react-native (#109)

* Include manual testing application in repo (#110)

* Adding the addListener and removeListeners method to silence the warning

* Add privateAttributeNames to TypeScript and iOS wrapper implementation. (#112)

* Bump to latest Android SDK release (#114)

* Fix ownership handling for all flags and connection mode listeners on iOS. (#113)

* Update iOS SDK to latest 5.4.5 release. (#115)

* Update Android SDK to latest patch release. (#116)

* Update to the correct variation method

* Add RN 0.68 CI and expand RN version bounds in package definition. (#117)

* Update supported RN versions in readme.

* [sc-149512] Android reason fixes (#120)

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Joe Cieslik <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com>
Co-authored-by: Louis Chan <lchan@launchdarkly.com>
Co-authored-by: Louis Chan <91093020+louis-launchdarkly@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this issue May 17, 2022
* Removed the guides link

* V4.0 (#68)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Added accessor methods for ConnectionInformation (#64)

* Added ConnectionInformation accessors

* Fixes from manual testing

* PR feedback

* Fix allUserAttributesPrivate

* Improve typescript docs

* Minor fixes (#66)

Fixes `floatVariation` to keep double precision and fix build warnings.

* Fix track metricValue on iOS (#67)

* Remove CI checkout for release

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>

* Update iOS SDK dependency to fix Throttler behavior (#69)

* V4.1.0 (#72)

* Bump react native to 0.64 (#70)

* Remove unnecessary React peer dependency (#71)

* Fixed jsonVariationDetail parsing on Android and fixed a typo in jsonVariationDetailNone (#73)

* Releasing version 4.0.2

* Removes Typescript enums and replaces them with types that extend string (#74)

* Added ts flag for testing

* Testing bwoskow typescript enum patch

* Remove todo

* Releasing version 4.0.3

* Multi Environment  (#65)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Add protocol

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

* Fix minor PR feedback

* Update index.d.ts

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* Added secondaryMobileKeys and getForMobileKey

* Added primaryEnvironmentName constant

* Fix Android build errors

* Fix build errors

* Fix Android config error

* CI test fixes

* Catch LD exception without crashing

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Multi environment works in Android, fixed bad config type

* Fix allUserAttributesPrivate

* Fix typescript test

* No StringSet for wrapper, change to ldClient for isInitialized

* Forgot nil check

* environment param

* Select environment via method parameter

* Check for environment undefined in JS

* iOS error fixes

* Fix iOS bridge, add missing param and try to Android

* Remove v4.0 branch hello rn for CI

* Fixed all flags and better long conversion

* A bunch of let to const, change default to test in multi env ts test, remove ldClient var from iOS

* Remove internal comments from Android

* Added back 2 Android comments, Double to NSNumber reversion, var to let reversion, ternary to function

* Get default environment name from underlying SDKs

* Cast NSNumber to Double to fix compilation error

* getVersion public, remove ldClient from Android

* Use get()

* Remove unnecessary get()

* Try instead of null check

* as! Double to doubleValue, toIntExact to intValue, change Android env name, improve try

* Fix listeners in multiple environments, change continue to comment in Android try/catch init

* Add semicolon in between environment and flagKey or listenerId string concat

* Environment concatenation function

* Swift param labels

* Added self, remove conditional cast to Any

* Remove unnecessary nil coalescing

* Capitalize ldClient

* getForMobileKey Android

* Removed unnecessary try, added final keyword

* Revert some nonnull and Double types

* Inline primaryEnvironmentName iOS

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Add secondary user attribute (#76)

* Fix multi environment on restwrapper (#77)

* remove platform specific default env name

* Replace function with ternary

* Remove _getEnvironment

* [ch109800] Await Android client initialization. (#78)

Handle promise from `isInitialized` during configuration. Update iOS `isInitialized` to reject when not configured to match Android implementation. Improve Android `allFlags` to reject promise when non-existent environment is used or other exception, and allow calling `allFlags` before client initialization completes.

* Update iOS method signature to match implementation (#79)

* Releasing version 4.0.4

* [ch110474] Fixes for undeclared variables and other callback issues. (#81)

* Changes for Android 3. (#82)

* Add unit tests for JS native bridge wrapper. (#83)

* Docs improvements (#84)

* [ch94513] Add aliasing support (#85)

* Requiring default values to be specified. Remove intVariation. (#86)

* Safer and cleaner configuration on iOS (#87)

* Cleanup Android variation implementation (#88)

* Use latest iOS and Android SDKs (#89)

* Fix issue with numeric variation calls. (#90)

* Add consumer Proguard file to Android build configuration. (#91)

* Update Android SDK to 3.1.1 (#92)

* Fix for absolute paths in cocoapods generated build files by running pod install in CI. (#93)

* Re-introduce compatibility for React Native 0.63 (#94)

* Updates docs URLs

* Add configuration option `inlineUsersInEvents` and typescript definition for `autoAliasingOptOut`. (#96)

* minor doc improvement (#97)

* Update version in README to match what version we'll actually be releasing with (#98)

* Invert isOffline on iOS. (#99)

* Fixes and improvements for CI configuration (#100)

* [SC-130395] Allow native SDKs to generate anonymous user when user key is not provided. (#101)

* See will this work without adding the mavenCentral

* Adding MavenCentral

* Fix RN0.63 builds

* Fix outdated sed CI expression preventing actually testing against the current SDK version correctly (#103)

* Update Android native SDK dependency and gradle config. (#104)

* Update iOS SDK native dependency in podspec. (#105)

* [sc-139041] Fix releaser typedoc generation (#106)

* Have podspec retrieve version from package.json to allow using default releaser version script. (#107)

* Fix iOS jsonVariation and jsonVariationDetail when using array default value. (#108)

* Completely rework CI build to not use hello-react-native (#109)

* Include manual testing application in repo (#110)

* Adding the addListener and removeListeners method to silence the warning

* Add privateAttributeNames to TypeScript and iOS wrapper implementation. (#112)

* Bump to latest Android SDK release (#114)

* Fix ownership handling for all flags and connection mode listeners on iOS. (#113)

* Update iOS SDK to latest 5.4.5 release. (#115)

* Update Android SDK to latest patch release. (#116)

* Update to the correct variation method

* Add RN 0.68 CI and expand RN version bounds in package definition. (#117)

* Update supported RN versions in readme.

* [sc-149512] Android reason fixes (#120)

* Changes for iOS V6. (#122)

* Use iOS 6.1.0 and new `LDUser.isAnonymousNullable` property (#123)

* Fix automatically setting user as anonymous when both key and anonymous are unspecified (#124)

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Joe Cieslik <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com>
Co-authored-by: Louis Chan <lchan@launchdarkly.com>
Co-authored-by: Louis Chan <91093020+louis-launchdarkly@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this issue Aug 2, 2022
* Removed the guides link

* V4.0 (#68)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Added accessor methods for ConnectionInformation (#64)

* Added ConnectionInformation accessors

* Fixes from manual testing

* PR feedback

* Fix allUserAttributesPrivate

* Improve typescript docs

* Minor fixes (#66)

Fixes `floatVariation` to keep double precision and fix build warnings.

* Fix track metricValue on iOS (#67)

* Remove CI checkout for release

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>

* Update iOS SDK dependency to fix Throttler behavior (#69)

* V4.1.0 (#72)

* Bump react native to 0.64 (#70)

* Remove unnecessary React peer dependency (#71)

* Fixed jsonVariationDetail parsing on Android and fixed a typo in jsonVariationDetailNone (#73)

* Releasing version 4.0.2

* Removes Typescript enums and replaces them with types that extend string (#74)

* Added ts flag for testing

* Testing bwoskow typescript enum patch

* Remove todo

* Releasing version 4.0.3

* Multi Environment  (#65)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Add protocol

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

* Fix minor PR feedback

* Update index.d.ts

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* Added secondaryMobileKeys and getForMobileKey

* Added primaryEnvironmentName constant

* Fix Android build errors

* Fix build errors

* Fix Android config error

* CI test fixes

* Catch LD exception without crashing

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Multi environment works in Android, fixed bad config type

* Fix allUserAttributesPrivate

* Fix typescript test

* No StringSet for wrapper, change to ldClient for isInitialized

* Forgot nil check

* environment param

* Select environment via method parameter

* Check for environment undefined in JS

* iOS error fixes

* Fix iOS bridge, add missing param and try to Android

* Remove v4.0 branch hello rn for CI

* Fixed all flags and better long conversion

* A bunch of let to const, change default to test in multi env ts test, remove ldClient var from iOS

* Remove internal comments from Android

* Added back 2 Android comments, Double to NSNumber reversion, var to let reversion, ternary to function

* Get default environment name from underlying SDKs

* Cast NSNumber to Double to fix compilation error

* getVersion public, remove ldClient from Android

* Use get()

* Remove unnecessary get()

* Try instead of null check

* as! Double to doubleValue, toIntExact to intValue, change Android env name, improve try

* Fix listeners in multiple environments, change continue to comment in Android try/catch init

* Add semicolon in between environment and flagKey or listenerId string concat

* Environment concatenation function

* Swift param labels

* Added self, remove conditional cast to Any

* Remove unnecessary nil coalescing

* Capitalize ldClient

* getForMobileKey Android

* Removed unnecessary try, added final keyword

* Revert some nonnull and Double types

* Inline primaryEnvironmentName iOS

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Add secondary user attribute (#76)

* Fix multi environment on restwrapper (#77)

* remove platform specific default env name

* Replace function with ternary

* Remove _getEnvironment

* [ch109800] Await Android client initialization. (#78)

Handle promise from `isInitialized` during configuration. Update iOS `isInitialized` to reject when not configured to match Android implementation. Improve Android `allFlags` to reject promise when non-existent environment is used or other exception, and allow calling `allFlags` before client initialization completes.

* Update iOS method signature to match implementation (#79)

* Releasing version 4.0.4

* [ch110474] Fixes for undeclared variables and other callback issues. (#81)

* Changes for Android 3. (#82)

* Add unit tests for JS native bridge wrapper. (#83)

* Docs improvements (#84)

* [ch94513] Add aliasing support (#85)

* Requiring default values to be specified. Remove intVariation. (#86)

* Safer and cleaner configuration on iOS (#87)

* Cleanup Android variation implementation (#88)

* Use latest iOS and Android SDKs (#89)

* Fix issue with numeric variation calls. (#90)

* Add consumer Proguard file to Android build configuration. (#91)

* Update Android SDK to 3.1.1 (#92)

* Fix for absolute paths in cocoapods generated build files by running pod install in CI. (#93)

* Re-introduce compatibility for React Native 0.63 (#94)

* Updates docs URLs

* Add configuration option `inlineUsersInEvents` and typescript definition for `autoAliasingOptOut`. (#96)

* minor doc improvement (#97)

* Update version in README to match what version we'll actually be releasing with (#98)

* Invert isOffline on iOS. (#99)

* Fixes and improvements for CI configuration (#100)

* [SC-130395] Allow native SDKs to generate anonymous user when user key is not provided. (#101)

* See will this work without adding the mavenCentral

* Adding MavenCentral

* Fix RN0.63 builds

* Fix outdated sed CI expression preventing actually testing against the current SDK version correctly (#103)

* Update Android native SDK dependency and gradle config. (#104)

* Update iOS SDK native dependency in podspec. (#105)

* [sc-139041] Fix releaser typedoc generation (#106)

* Have podspec retrieve version from package.json to allow using default releaser version script. (#107)

* Fix iOS jsonVariation and jsonVariationDetail when using array default value. (#108)

* Completely rework CI build to not use hello-react-native (#109)

* Include manual testing application in repo (#110)

* Adding the addListener and removeListeners method to silence the warning

* Add privateAttributeNames to TypeScript and iOS wrapper implementation. (#112)

* Bump to latest Android SDK release (#114)

* Fix ownership handling for all flags and connection mode listeners on iOS. (#113)

* Update iOS SDK to latest 5.4.5 release. (#115)

* Update Android SDK to latest patch release. (#116)

* Update to the correct variation method

* Add RN 0.68 CI and expand RN version bounds in package definition. (#117)

* Update supported RN versions in readme.

* [sc-149512] Android reason fixes (#120)

* Changes for iOS V6. (#122)

* Use iOS 6.1.0 and new `LDUser.isAnonymousNullable` property (#123)

* Fix automatically setting user as anonymous when both key and anonymous are unspecified (#124)

* Bump Android SDK to 3.1.6

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Joe Cieslik <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com>
Co-authored-by: Louis Chan <lchan@launchdarkly.com>
Co-authored-by: Louis Chan <91093020+louis-launchdarkly@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this issue Aug 16, 2022
* Removed the guides link

* V4.0 (#68)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Added accessor methods for ConnectionInformation (#64)

* Added ConnectionInformation accessors

* Fixes from manual testing

* PR feedback

* Fix allUserAttributesPrivate

* Improve typescript docs

* Minor fixes (#66)

Fixes `floatVariation` to keep double precision and fix build warnings.

* Fix track metricValue on iOS (#67)

* Remove CI checkout for release

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>

* Update iOS SDK dependency to fix Throttler behavior (#69)

* V4.1.0 (#72)

* Bump react native to 0.64 (#70)

* Remove unnecessary React peer dependency (#71)

* Fixed jsonVariationDetail parsing on Android and fixed a typo in jsonVariationDetailNone (#73)

* Releasing version 4.0.2

* Removes Typescript enums and replaces them with types that extend string (#74)

* Added ts flag for testing

* Testing bwoskow typescript enum patch

* Remove todo

* Releasing version 4.0.3

* Multi Environment  (#65)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Add protocol

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

* Fix minor PR feedback

* Update index.d.ts

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* Added secondaryMobileKeys and getForMobileKey

* Added primaryEnvironmentName constant

* Fix Android build errors

* Fix build errors

* Fix Android config error

* CI test fixes

* Catch LD exception without crashing

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Multi environment works in Android, fixed bad config type

* Fix allUserAttributesPrivate

* Fix typescript test

* No StringSet for wrapper, change to ldClient for isInitialized

* Forgot nil check

* environment param

* Select environment via method parameter

* Check for environment undefined in JS

* iOS error fixes

* Fix iOS bridge, add missing param and try to Android

* Remove v4.0 branch hello rn for CI

* Fixed all flags and better long conversion

* A bunch of let to const, change default to test in multi env ts test, remove ldClient var from iOS

* Remove internal comments from Android

* Added back 2 Android comments, Double to NSNumber reversion, var to let reversion, ternary to function

* Get default environment name from underlying SDKs

* Cast NSNumber to Double to fix compilation error

* getVersion public, remove ldClient from Android

* Use get()

* Remove unnecessary get()

* Try instead of null check

* as! Double to doubleValue, toIntExact to intValue, change Android env name, improve try

* Fix listeners in multiple environments, change continue to comment in Android try/catch init

* Add semicolon in between environment and flagKey or listenerId string concat

* Environment concatenation function

* Swift param labels

* Added self, remove conditional cast to Any

* Remove unnecessary nil coalescing

* Capitalize ldClient

* getForMobileKey Android

* Removed unnecessary try, added final keyword

* Revert some nonnull and Double types

* Inline primaryEnvironmentName iOS

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Add secondary user attribute (#76)

* Fix multi environment on restwrapper (#77)

* remove platform specific default env name

* Replace function with ternary

* Remove _getEnvironment

* [ch109800] Await Android client initialization. (#78)

Handle promise from `isInitialized` during configuration. Update iOS `isInitialized` to reject when not configured to match Android implementation. Improve Android `allFlags` to reject promise when non-existent environment is used or other exception, and allow calling `allFlags` before client initialization completes.

* Update iOS method signature to match implementation (#79)

* Releasing version 4.0.4

* [ch110474] Fixes for undeclared variables and other callback issues. (#81)

* Changes for Android 3. (#82)

* Add unit tests for JS native bridge wrapper. (#83)

* Docs improvements (#84)

* [ch94513] Add aliasing support (#85)

* Requiring default values to be specified. Remove intVariation. (#86)

* Safer and cleaner configuration on iOS (#87)

* Cleanup Android variation implementation (#88)

* Use latest iOS and Android SDKs (#89)

* Fix issue with numeric variation calls. (#90)

* Add consumer Proguard file to Android build configuration. (#91)

* Update Android SDK to 3.1.1 (#92)

* Fix for absolute paths in cocoapods generated build files by running pod install in CI. (#93)

* Re-introduce compatibility for React Native 0.63 (#94)

* Updates docs URLs

* Add configuration option `inlineUsersInEvents` and typescript definition for `autoAliasingOptOut`. (#96)

* minor doc improvement (#97)

* Update version in README to match what version we'll actually be releasing with (#98)

* Invert isOffline on iOS. (#99)

* Fixes and improvements for CI configuration (#100)

* [SC-130395] Allow native SDKs to generate anonymous user when user key is not provided. (#101)

* See will this work without adding the mavenCentral

* Adding MavenCentral

* Fix RN0.63 builds

* Fix outdated sed CI expression preventing actually testing against the current SDK version correctly (#103)

* Update Android native SDK dependency and gradle config. (#104)

* Update iOS SDK native dependency in podspec. (#105)

* [sc-139041] Fix releaser typedoc generation (#106)

* Have podspec retrieve version from package.json to allow using default releaser version script. (#107)

* Fix iOS jsonVariation and jsonVariationDetail when using array default value. (#108)

* Completely rework CI build to not use hello-react-native (#109)

* Include manual testing application in repo (#110)

* Adding the addListener and removeListeners method to silence the warning

* Add privateAttributeNames to TypeScript and iOS wrapper implementation. (#112)

* Bump to latest Android SDK release (#114)

* Fix ownership handling for all flags and connection mode listeners on iOS. (#113)

* Update iOS SDK to latest 5.4.5 release. (#115)

* Update Android SDK to latest patch release. (#116)

* Update to the correct variation method

* Add RN 0.68 CI and expand RN version bounds in package definition. (#117)

* Update supported RN versions in readme.

* [sc-149512] Android reason fixes (#120)

* Changes for iOS V6. (#122)

* Use iOS 6.1.0 and new `LDUser.isAnonymousNullable` property (#123)

* Fix automatically setting user as anonymous when both key and anonymous are unspecified (#124)

* Add the new React Native version and the latest non-beta xcode version

* Add exclusion to the old RN with new xcode and new RN with old xcode

* Update the Readme

* Update package files

* RN 0.69.1 is available

* Code Review Comment to remove xcode 12.2

* Try to install jest first to get past the error

* Try to pin the RN version when using with npx

* Bump Android SDK to 3.1.6

* Print more about circle CI

* Use a separate working director for the new project

* Update the relative path

* CircleCI need to have -p for mkdir

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Joe Cieslik <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com>
Co-authored-by: Louis Chan <lchan@launchdarkly.com>
Co-authored-by: Louis Chan <91093020+louis-launchdarkly@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this issue Sep 29, 2022
* Removed the guides link

* V4.0 (#68)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Added accessor methods for ConnectionInformation (#64)

* Added ConnectionInformation accessors

* Fixes from manual testing

* PR feedback

* Fix allUserAttributesPrivate

* Improve typescript docs

* Minor fixes (#66)

Fixes `floatVariation` to keep double precision and fix build warnings.

* Fix track metricValue on iOS (#67)

* Remove CI checkout for release

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>

* Update iOS SDK dependency to fix Throttler behavior (#69)

* V4.1.0 (#72)

* Bump react native to 0.64 (#70)

* Remove unnecessary React peer dependency (#71)

* Fixed jsonVariationDetail parsing on Android and fixed a typo in jsonVariationDetailNone (#73)

* Releasing version 4.0.2

* Removes Typescript enums and replaces them with types that extend string (#74)

* Added ts flag for testing

* Testing bwoskow typescript enum patch

* Remove todo

* Releasing version 4.0.3

* Multi Environment  (#65)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Add protocol

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

* Fix minor PR feedback

* Update index.d.ts

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* Added secondaryMobileKeys and getForMobileKey

* Added primaryEnvironmentName constant

* Fix Android build errors

* Fix build errors

* Fix Android config error

* CI test fixes

* Catch LD exception without crashing

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Multi environment works in Android, fixed bad config type

* Fix allUserAttributesPrivate

* Fix typescript test

* No StringSet for wrapper, change to ldClient for isInitialized

* Forgot nil check

* environment param

* Select environment via method parameter

* Check for environment undefined in JS

* iOS error fixes

* Fix iOS bridge, add missing param and try to Android

* Remove v4.0 branch hello rn for CI

* Fixed all flags and better long conversion

* A bunch of let to const, change default to test in multi env ts test, remove ldClient var from iOS

* Remove internal comments from Android

* Added back 2 Android comments, Double to NSNumber reversion, var to let reversion, ternary to function

* Get default environment name from underlying SDKs

* Cast NSNumber to Double to fix compilation error

* getVersion public, remove ldClient from Android

* Use get()

* Remove unnecessary get()

* Try instead of null check

* as! Double to doubleValue, toIntExact to intValue, change Android env name, improve try

* Fix listeners in multiple environments, change continue to comment in Android try/catch init

* Add semicolon in between environment and flagKey or listenerId string concat

* Environment concatenation function

* Swift param labels

* Added self, remove conditional cast to Any

* Remove unnecessary nil coalescing

* Capitalize ldClient

* getForMobileKey Android

* Removed unnecessary try, added final keyword

* Revert some nonnull and Double types

* Inline primaryEnvironmentName iOS

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Add secondary user attribute (#76)

* Fix multi environment on restwrapper (#77)

* remove platform specific default env name

* Replace function with ternary

* Remove _getEnvironment

* [ch109800] Await Android client initialization. (#78)

Handle promise from `isInitialized` during configuration. Update iOS `isInitialized` to reject when not configured to match Android implementation. Improve Android `allFlags` to reject promise when non-existent environment is used or other exception, and allow calling `allFlags` before client initialization completes.

* Update iOS method signature to match implementation (#79)

* Releasing version 4.0.4

* [ch110474] Fixes for undeclared variables and other callback issues. (#81)

* Changes for Android 3. (#82)

* Add unit tests for JS native bridge wrapper. (#83)

* Docs improvements (#84)

* [ch94513] Add aliasing support (#85)

* Requiring default values to be specified. Remove intVariation. (#86)

* Safer and cleaner configuration on iOS (#87)

* Cleanup Android variation implementation (#88)

* Use latest iOS and Android SDKs (#89)

* Fix issue with numeric variation calls. (#90)

* Add consumer Proguard file to Android build configuration. (#91)

* Update Android SDK to 3.1.1 (#92)

* Fix for absolute paths in cocoapods generated build files by running pod install in CI. (#93)

* Re-introduce compatibility for React Native 0.63 (#94)

* Updates docs URLs

* Add configuration option `inlineUsersInEvents` and typescript definition for `autoAliasingOptOut`. (#96)

* minor doc improvement (#97)

* Update version in README to match what version we'll actually be releasing with (#98)

* Invert isOffline on iOS. (#99)

* Fixes and improvements for CI configuration (#100)

* [SC-130395] Allow native SDKs to generate anonymous user when user key is not provided. (#101)

* See will this work without adding the mavenCentral

* Adding MavenCentral

* Fix RN0.63 builds

* Fix outdated sed CI expression preventing actually testing against the current SDK version correctly (#103)

* Update Android native SDK dependency and gradle config. (#104)

* Update iOS SDK native dependency in podspec. (#105)

* [sc-139041] Fix releaser typedoc generation (#106)

* Have podspec retrieve version from package.json to allow using default releaser version script. (#107)

* Fix iOS jsonVariation and jsonVariationDetail when using array default value. (#108)

* Completely rework CI build to not use hello-react-native (#109)

* Include manual testing application in repo (#110)

* Adding the addListener and removeListeners method to silence the warning

* Add privateAttributeNames to TypeScript and iOS wrapper implementation. (#112)

* Bump to latest Android SDK release (#114)

* Fix ownership handling for all flags and connection mode listeners on iOS. (#113)

* Update iOS SDK to latest 5.4.5 release. (#115)

* Update Android SDK to latest patch release. (#116)

* Update to the correct variation method

* Add RN 0.68 CI and expand RN version bounds in package definition. (#117)

* Update supported RN versions in readme.

* [sc-149512] Android reason fixes (#120)

* Changes for iOS V6. (#122)

* Use iOS 6.1.0 and new `LDUser.isAnonymousNullable` property (#123)

* Fix automatically setting user as anonymous when both key and anonymous are unspecified (#124)

* Add the new React Native version and the latest non-beta xcode version

* Add exclusion to the old RN with new xcode and new RN with old xcode

* Update the Readme

* Update package files

* RN 0.69.1 is available

* Code Review Comment to remove xcode 12.2

* Try to install jest first to get past the error

* Try to pin the RN version when using with npx

* Bump Android SDK to 3.1.6

* Print more about circle CI

* Use a separate working director for the new project

* Update the relative path

* CircleCI need to have -p for mkdir

* Upgrade Native Android SDK to 3.1.7

* Try to bump Android SDK to 3.2.0

* The null check logic for isInitialized

* Fix spacing

* Support React Native 0.70. (#129)

* Add RN 0.70.1 and Xcode 14.0.1 to the CircleCI test config

* Add the exclusion for RN 0.64 and 0.65 for Xcode 14.0.1

* More update to the Android isInitialized logic (#130)

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Joe Cieslik <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com>
Co-authored-by: Louis Chan <lchan@launchdarkly.com>
Co-authored-by: Louis Chan <91093020+louis-launchdarkly@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this issue Oct 6, 2022
* Removed the guides link

* V4.0 (#68)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Added accessor methods for ConnectionInformation (#64)

* Added ConnectionInformation accessors

* Fixes from manual testing

* PR feedback

* Fix allUserAttributesPrivate

* Improve typescript docs

* Minor fixes (#66)

Fixes `floatVariation` to keep double precision and fix build warnings.

* Fix track metricValue on iOS (#67)

* Remove CI checkout for release

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>

* Update iOS SDK dependency to fix Throttler behavior (#69)

* V4.1.0 (#72)

* Bump react native to 0.64 (#70)

* Remove unnecessary React peer dependency (#71)

* Fixed jsonVariationDetail parsing on Android and fixed a typo in jsonVariationDetailNone (#73)

* Releasing version 4.0.2

* Removes Typescript enums and replaces them with types that extend string (#74)

* Added ts flag for testing

* Testing bwoskow typescript enum patch

* Remove todo

* Releasing version 4.0.3

* Multi Environment  (#65)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Add protocol

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

* Fix minor PR feedback

* Update index.d.ts

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* Added secondaryMobileKeys and getForMobileKey

* Added primaryEnvironmentName constant

* Fix Android build errors

* Fix build errors

* Fix Android config error

* CI test fixes

* Catch LD exception without crashing

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Multi environment works in Android, fixed bad config type

* Fix allUserAttributesPrivate

* Fix typescript test

* No StringSet for wrapper, change to ldClient for isInitialized

* Forgot nil check

* environment param

* Select environment via method parameter

* Check for environment undefined in JS

* iOS error fixes

* Fix iOS bridge, add missing param and try to Android

* Remove v4.0 branch hello rn for CI

* Fixed all flags and better long conversion

* A bunch of let to const, change default to test in multi env ts test, remove ldClient var from iOS

* Remove internal comments from Android

* Added back 2 Android comments, Double to NSNumber reversion, var to let reversion, ternary to function

* Get default environment name from underlying SDKs

* Cast NSNumber to Double to fix compilation error

* getVersion public, remove ldClient from Android

* Use get()

* Remove unnecessary get()

* Try instead of null check

* as! Double to doubleValue, toIntExact to intValue, change Android env name, improve try

* Fix listeners in multiple environments, change continue to comment in Android try/catch init

* Add semicolon in between environment and flagKey or listenerId string concat

* Environment concatenation function

* Swift param labels

* Added self, remove conditional cast to Any

* Remove unnecessary nil coalescing

* Capitalize ldClient

* getForMobileKey Android

* Removed unnecessary try, added final keyword

* Revert some nonnull and Double types

* Inline primaryEnvironmentName iOS

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Add secondary user attribute (#76)

* Fix multi environment on restwrapper (#77)

* remove platform specific default env name

* Replace function with ternary

* Remove _getEnvironment

* [ch109800] Await Android client initialization. (#78)

Handle promise from `isInitialized` during configuration. Update iOS `isInitialized` to reject when not configured to match Android implementation. Improve Android `allFlags` to reject promise when non-existent environment is used or other exception, and allow calling `allFlags` before client initialization completes.

* Update iOS method signature to match implementation (#79)

* Releasing version 4.0.4

* [ch110474] Fixes for undeclared variables and other callback issues. (#81)

* Changes for Android 3. (#82)

* Add unit tests for JS native bridge wrapper. (#83)

* Docs improvements (#84)

* [ch94513] Add aliasing support (#85)

* Requiring default values to be specified. Remove intVariation. (#86)

* Safer and cleaner configuration on iOS (#87)

* Cleanup Android variation implementation (#88)

* Use latest iOS and Android SDKs (#89)

* Fix issue with numeric variation calls. (#90)

* Add consumer Proguard file to Android build configuration. (#91)

* Update Android SDK to 3.1.1 (#92)

* Fix for absolute paths in cocoapods generated build files by running pod install in CI. (#93)

* Re-introduce compatibility for React Native 0.63 (#94)

* Updates docs URLs

* Add configuration option `inlineUsersInEvents` and typescript definition for `autoAliasingOptOut`. (#96)

* minor doc improvement (#97)

* Update version in README to match what version we'll actually be releasing with (#98)

* Invert isOffline on iOS. (#99)

* Fixes and improvements for CI configuration (#100)

* [SC-130395] Allow native SDKs to generate anonymous user when user key is not provided. (#101)

* See will this work without adding the mavenCentral

* Adding MavenCentral

* Fix RN0.63 builds

* Fix outdated sed CI expression preventing actually testing against the current SDK version correctly (#103)

* Update Android native SDK dependency and gradle config. (#104)

* Update iOS SDK native dependency in podspec. (#105)

* [sc-139041] Fix releaser typedoc generation (#106)

* Have podspec retrieve version from package.json to allow using default releaser version script. (#107)

* Fix iOS jsonVariation and jsonVariationDetail when using array default value. (#108)

* Completely rework CI build to not use hello-react-native (#109)

* Include manual testing application in repo (#110)

* Adding the addListener and removeListeners method to silence the warning

* Add privateAttributeNames to TypeScript and iOS wrapper implementation. (#112)

* Bump to latest Android SDK release (#114)

* Fix ownership handling for all flags and connection mode listeners on iOS. (#113)

* Update iOS SDK to latest 5.4.5 release. (#115)

* Update Android SDK to latest patch release. (#116)

* Update to the correct variation method

* Add RN 0.68 CI and expand RN version bounds in package definition. (#117)

* Update supported RN versions in readme.

* [sc-149512] Android reason fixes (#120)

* Changes for iOS V6. (#122)

* Use iOS 6.1.0 and new `LDUser.isAnonymousNullable` property (#123)

* Fix automatically setting user as anonymous when both key and anonymous are unspecified (#124)

* Add the new React Native version and the latest non-beta xcode version

* Add exclusion to the old RN with new xcode and new RN with old xcode

* Update the Readme

* Update package files

* RN 0.69.1 is available

* Code Review Comment to remove xcode 12.2

* Try to install jest first to get past the error

* Try to pin the RN version when using with npx

* Bump Android SDK to 3.1.6

* Print more about circle CI

* Use a separate working director for the new project

* Update the relative path

* CircleCI need to have -p for mkdir

* Upgrade Native Android SDK to 3.1.7

* Try to bump Android SDK to 3.2.0

* The null check logic for isInitialized

* Fix spacing

* Support React Native 0.70. (#129)

* Add RN 0.70.1 and Xcode 14.0.1 to the CircleCI test config

* Add the exclusion for RN 0.64 and 0.65 for Xcode 14.0.1

* More update to the Android isInitialized logic (#130)

* Revert the isInitialized change and fix package.json (#131)

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Joe Cieslik <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com>
Co-authored-by: Louis Chan <lchan@launchdarkly.com>
Co-authored-by: Louis Chan <91093020+louis-launchdarkly@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this issue Jan 30, 2023
* Removed the guides link

* V4.0 (#68)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Added accessor methods for ConnectionInformation (#64)

* Added ConnectionInformation accessors

* Fixes from manual testing

* PR feedback

* Fix allUserAttributesPrivate

* Improve typescript docs

* Minor fixes (#66)

Fixes `floatVariation` to keep double precision and fix build warnings.

* Fix track metricValue on iOS (#67)

* Remove CI checkout for release

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>

* Update iOS SDK dependency to fix Throttler behavior (#69)

* V4.1.0 (#72)

* Bump react native to 0.64 (#70)

* Remove unnecessary React peer dependency (#71)

* Fixed jsonVariationDetail parsing on Android and fixed a typo in jsonVariationDetailNone (#73)

* Releasing version 4.0.2

* Removes Typescript enums and replaces them with types that extend string (#74)

* Added ts flag for testing

* Testing bwoskow typescript enum patch

* Remove todo

* Releasing version 4.0.3

* Multi Environment  (#65)

* Update to iOS 5.4.0 (#48)

* Bump iOS SDK version to 5.4.0

* Replace shared with get()

* Replace old method names

* Provide default values for EvaluationDetail

* Fixed defaultValue for detail value

* Changed individual nil coalesce to NSNull

* Remove isDisableBackgroundPolling method (#52)

* Update iOS base url (#49)

* Update iOS base url

* Add protocol

* Added wrapper name and version to iOS and Android config (#50)

* Added wrapper name and version to iOS and Android config

* V4 not 5

* Rename wrapper

* Add getVersion method (#51)

* Added getVersion method

* Revert package.json version bump

* Fix version case

* Fix minor PR feedback

* Update index.d.ts

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* Rename fallback to defaultValue (#53)

* Rename fallback to defaultValue

* Fix awkward wording defaultValue value

* Fix defaultValue value line breaks

* Improved resiliency when running in Android (#54)

* Add new config values (#55)

* Added new config values to iOS and Android

* Added typescript config

* PR feedback

* Fix millis, add default doc

* fix common build + add tests for recent introductions (#56)

* Added secondaryMobileKeys and getForMobileKey

* Added primaryEnvironmentName constant

* Fix Android build errors

* Fix build errors

* Fix Android config error

* CI test fixes

* Catch LD exception without crashing

* fix: start background thread for identify rather than running it (#66)

* Bump Android SDK version to 2.14.1 (#59)

* Update Android to 2.14.1, change setBaseUri to setPollUri, change floatVariation to doubleVariation

* Fix float to double

* Doublevalue on non detail

* Run CI against v4.0

* URL fix iOS

* Add isInitialized to iOS, check initialization in configure (#60)

* Added isInitialized to iOS

* Add init check to configure

* Base url iOS fix, v4.0 ci

* Var not func iOS, remove getMap

* disable auto-alias in iOS (#61)

* Add configureWithTimeout method (#58)

* Added configureTimeout method

* Fix timeout type on iOS

* Simplify timeout nil check

* Added param labels, Java syntax fixes

* Small fixes

* Make timeout final

* Remove unnecessary catch

* Fix baseUrl

* Fix Android config error

* Test against v4.0 hello branch

* Fix tests

* timeout never nil inside check

* Convert Int to TimeInterval

* Fixed iOS startWaitSeconds

* Catch LDException

* Fix merge conflict in iOS bridge

* Fix merge conflict in index.js

* PR feedback

* Fix unused timeoutClient

* Remove unnecessary ConfigEntryType

* Remove StringSet

* If let in timeout check

* Configure method now takes optional timeout parameter instead of separate method

* Renames for consistency (#62)

* up-leveling the override for the default polling uri so it affects android too (#63)

* Added ip, avatar, and allUserAttributesPrivate (#57)

* Added ip, avatar, and allUserAttributesPrivate

* Updated test-types.ts, fix case typo

* Special case allUserAttributesPrivate

* Fix ReadableMap loading of all private

* CI fix

* Fix string to URL baseUrl

* Change to non-default values in test, combine lines in config.yml

* Simplify allAttrsPrivate if

* resolve breakage with latest merge

Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Multi environment works in Android, fixed bad config type

* Fix allUserAttributesPrivate

* Fix typescript test

* No StringSet for wrapper, change to ldClient for isInitialized

* Forgot nil check

* environment param

* Select environment via method parameter

* Check for environment undefined in JS

* iOS error fixes

* Fix iOS bridge, add missing param and try to Android

* Remove v4.0 branch hello rn for CI

* Fixed all flags and better long conversion

* A bunch of let to const, change default to test in multi env ts test, remove ldClient var from iOS

* Remove internal comments from Android

* Added back 2 Android comments, Double to NSNumber reversion, var to let reversion, ternary to function

* Get default environment name from underlying SDKs

* Cast NSNumber to Double to fix compilation error

* getVersion public, remove ldClient from Android

* Use get()

* Remove unnecessary get()

* Try instead of null check

* as! Double to doubleValue, toIntExact to intValue, change Android env name, improve try

* Fix listeners in multiple environments, change continue to comment in Android try/catch init

* Add semicolon in between environment and flagKey or listenerId string concat

* Environment concatenation function

* Swift param labels

* Added self, remove conditional cast to Any

* Remove unnecessary nil coalescing

* Capitalize ldClient

* getForMobileKey Android

* Removed unnecessary try, added final keyword

* Revert some nonnull and Double types

* Inline primaryEnvironmentName iOS

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>

* Add secondary user attribute (#76)

* Fix multi environment on restwrapper (#77)

* remove platform specific default env name

* Replace function with ternary

* Remove _getEnvironment

* [ch109800] Await Android client initialization. (#78)

Handle promise from `isInitialized` during configuration. Update iOS `isInitialized` to reject when not configured to match Android implementation. Improve Android `allFlags` to reject promise when non-existent environment is used or other exception, and allow calling `allFlags` before client initialization completes.

* Update iOS method signature to match implementation (#79)

* Releasing version 4.0.4

* [ch110474] Fixes for undeclared variables and other callback issues. (#81)

* Changes for Android 3. (#82)

* Add unit tests for JS native bridge wrapper. (#83)

* Docs improvements (#84)

* [ch94513] Add aliasing support (#85)

* Requiring default values to be specified. Remove intVariation. (#86)

* Safer and cleaner configuration on iOS (#87)

* Cleanup Android variation implementation (#88)

* Use latest iOS and Android SDKs (#89)

* Fix issue with numeric variation calls. (#90)

* Add consumer Proguard file to Android build configuration. (#91)

* Update Android SDK to 3.1.1 (#92)

* Fix for absolute paths in cocoapods generated build files by running pod install in CI. (#93)

* Re-introduce compatibility for React Native 0.63 (#94)

* Updates docs URLs

* Add configuration option `inlineUsersInEvents` and typescript definition for `autoAliasingOptOut`. (#96)

* minor doc improvement (#97)

* Update version in README to match what version we'll actually be releasing with (#98)

* Invert isOffline on iOS. (#99)

* Fixes and improvements for CI configuration (#100)

* [SC-130395] Allow native SDKs to generate anonymous user when user key is not provided. (#101)

* See will this work without adding the mavenCentral

* Adding MavenCentral

* Fix RN0.63 builds

* Fix outdated sed CI expression preventing actually testing against the current SDK version correctly (#103)

* Update Android native SDK dependency and gradle config. (#104)

* Update iOS SDK native dependency in podspec. (#105)

* [sc-139041] Fix releaser typedoc generation (#106)

* Have podspec retrieve version from package.json to allow using default releaser version script. (#107)

* Fix iOS jsonVariation and jsonVariationDetail when using array default value. (#108)

* Completely rework CI build to not use hello-react-native (#109)

* Include manual testing application in repo (#110)

* Adding the addListener and removeListeners method to silence the warning

* Add privateAttributeNames to TypeScript and iOS wrapper implementation. (#112)

* Bump to latest Android SDK release (#114)

* Fix ownership handling for all flags and connection mode listeners on iOS. (#113)

* Update iOS SDK to latest 5.4.5 release. (#115)

* Update Android SDK to latest patch release. (#116)

* Update to the correct variation method

* Add RN 0.68 CI and expand RN version bounds in package definition. (#117)

* Update supported RN versions in readme.

* [sc-149512] Android reason fixes (#120)

* Changes for iOS V6. (#122)

* Use iOS 6.1.0 and new `LDUser.isAnonymousNullable` property (#123)

* Fix automatically setting user as anonymous when both key and anonymous are unspecified (#124)

* Add the new React Native version and the latest non-beta xcode version

* Add exclusion to the old RN with new xcode and new RN with old xcode

* Update the Readme

* Update package files

* RN 0.69.1 is available

* Code Review Comment to remove xcode 12.2

* Try to install jest first to get past the error

* Try to pin the RN version when using with npx

* Bump Android SDK to 3.1.6

* Print more about circle CI

* Use a separate working director for the new project

* Update the relative path

* CircleCI need to have -p for mkdir

* Upgrade Native Android SDK to 3.1.7

* Try to bump Android SDK to 3.2.0

* The null check logic for isInitialized

* Fix spacing

* Support React Native 0.70. (#129)

* Add RN 0.70.1 and Xcode 14.0.1 to the CircleCI test config

* Add the exclusion for RN 0.64 and 0.65 for Xcode 14.0.1

* More update to the Android isInitialized logic (#130)

* Revert the isInitialized change and fix package.json (#131)

* Initial commit

* Update README.md

* yarn inside test app as well initially

* Create CODEOWNERS

* Add jcenter as repo source to solve unknown facebook imports. Remove redundant yarn install.

* Update to gradle 7.2

* Remove lock files and ignore them

* Update README.md

* Revert "Remove lock files and ignore them"

This reverts commit 7ea62cd.

* Added react-native to dev dep to fix jest failing to run due to some rn version issue.

* Attempt to fix android 0.64 minCompileSdk build error

* Rollback jcenter and resolution changes

* Increase compile version to fix rn 0.64.3 build errors

* Update config.yml

* Rollback to main version

* Initial commit

* Update .prettierrc.js

* Prettify code

* Ran prettier on js and json files

* Update App.js

* Update ios sdk version

* Disable autoCaps

* Corrected autoCapitalize from false to none

* Update App.js

* Fixed bug where podspec and LICENCE files are not copied to test app's node modules

* Create lefthook.yml

* Added ios ApplicationInfo support. Split modd file. Update ios sdk version.

* Update LaunchdarklyReactNativeClient.swift

* Create modd-ios.conf

* Split modd configs into ios and android. Update readme.

* Update LaunchdarklyReactNativeClient.swift

* Fix bug where version is incorrectly set

* Delete lefthook.yml

* Bumped min ios deployment target

* Rolled bak xcode proj change and set min ios sdk version in podspec

* Update project.pbxproj

* Hack template Podfile to support minimum ios 11

* More ios 11 patch hacks

* Update config.yml

* Hack 0.64.x build.gradle to use minSdkVersion 30

* Update config.yml

* Force rn android binaries to be downloaded from facebook. Update gradle.

* Remove accidentally committed yarn.lock. Update manual test app's gradle versions.

* Hack circleci config to speed up build

* Update build.gradle

* Update build.gradle

* Update build.gradle

* Update config.yml

* Restore circleci config, updating 0.64.3 to 0.64.4

* Update config.yml

* Create modd.conf

* Added Application types

---------

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Joe Cieslik <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Ed Costello <orthanc@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com>
Co-authored-by: Louis Chan <lchan@launchdarkly.com>
Co-authored-by: Louis Chan <91093020+louis-launchdarkly@users.noreply.github.com>
Co-authored-by: Yusinto Ngadiman <yusinto@gmail.com>
Co-authored-by: Yusinto Ngadiman <yus@launchdarkly.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants