-
Notifications
You must be signed in to change notification settings - Fork 32
[Feature Request] Support for Expo Config Plugins #110
Comments
Hello @leggomuhgreggo, thank you for the feature request! While we are currently focusing on fixing some of the issues reported for React Native, we will discuss this and give you an update afterward. |
Thanks @louis-launchdarkly I wonder if, in the mean time, you might be able to offer clarification on the question:
🙏 |
Hello @leggomuhgreggo, that is a good question - based on the documentation React Native and JavaScript for React, the key difference that is supported in React Native but not React are mobile specific features. The two that I know of are Monitor SDK Status and Offline Mode |
* 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>
* 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>
* 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>
@louis-launchdarkly - Any update on this? We also need this in my team. |
* 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>
Any news on this? |
Hello @yvan33 and @erisvaldojunior, thank you for checking. Unfortunately, we are not getting to this yet, and this is still an open enhancement request in the backlog. I should have asked earlier - is there anyone interested in making a contribution to implement this? Engineers who are familiar with the Expo will likely implement this better than us, who are not familiar with the Expo framework. |
@louis-launchdarkly I got it. Update, judging by the lack of native configuration (just Podfile) in the installation instructions on LaunchDarkly, I'm unsure if this would even require a configuration plugin at all. In contrast, when I created the ridafkih/expo-fullstory there were configuration accommodations I had to make for various In this case, since the configuration happens at runtime, there should be no problem simply installing and building your client with EAS. In short, this would mean that for Expo users, the installation would be similar to any other non-native configured package. Installation Steps
At that point, you should be able to use LaunchDarkly's SDK like normal. TL;DRPart of EAS builds' build steps is installing Cocoapods, so installing the module using If there's something I'm missing, I implore anyone here to let me know and I can create a configuration plugin to accommodate those needs. @erisvaldojunior @yvan33 @leggomuhgreggo |
* 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>
* 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>
* 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>
* 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>
* 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>
My team is in the same predicament... we have landed on LaunchDarkly as a feature flagging solution within a cross-platform Expo application. We would prefer not to have to eject from the Expo managed workflow at this stage in our development process. We are looking at a native modules approach to solve for this issue, but I came across this discussion and wanted to see if anyone was able to get a working solution together per @ridafkih's suggestion? cc @leggomuhgreggo @erisvaldojunior @yvan33 Thank you |
@neilgamb - We were able to install I believe this ticket can be closed. |
The docs should be updated to reflect this, currently it says you can't use LaunchDarkly with Expo, @louis-launchdarkly. We're moving off Xamarin / MAUI to Expo, we'll do some testing and report back as well and hopefully confirm what @yvan33 said! |
@yvan33 So, LD worked out of the box for you with a managed Expo application? I've tried following the steps you provided and have been on a bit of a windy hike trying to find where to go next. I've tried it out with My main error seems to be reported here #166 : I'm getting an error throw when trying to init LD: Code: useEffect(() => {
async function initLD() {
try {
// Create a new instance of the LDClient and configure it with your mobile-specific SDK key and user.
const client = new LDClient();
const config: ld.LDConfig = {
mobileKey: 'API_KEY_XYZ'
};
const context: ld.LDContext = {
key: 'user-key-123abc',
kind: 'user'
};
client.configure(config, context, 5);
await client.configure(config, context);
// store client in state
setLdClient(client);
} catch (err) {
console.error(err);
}
}
initLD();
}, []); Error: @mjphillips-sg Did you have any luck? Thanks for any input, folks! |
@teesloane - Yes it worked out of the box using EAS to build the application (since it installs the native dependencies using Cocoapods). For development, that also mean you need to build a custom dev client instead of using Expo go. |
Thanks @yvan33 , I'll give this a shot; I had missed |
@louis-launchdarkly can you please confirm if you guys are planning to continue support expo development builds, like the developers here are mentioning that its working? |
Hello @YishaiGr, thank you for the question. To be accurate, with the current project, it seems that the community figures out a way to make Expo work, and there is no plan to intentionally break things. However, there is no Expo internal testing right now either, we only have testing to ensure the RN SDK still works correctly for Android and iOS. There is a plan to work on a mostly JS-based RN SDK, and LaunchDarkly will look into supporting Expo in a better capacity then (when the installation of the LaunchDarkly RN SDK becomes simpler). |
Expo GoExpo Go is downloaded from the app store, and allows you to run Expo applications on servers or local machines by scanning the QR code, or typing the "update URL" into the Expo Go application. Since the Expo Go application is a pre-built binary, it comes pre-loaded with certain native dependencies, configurations, etc. This means that if you want to make native customizations with Expo Go like installing the native Pods required for this library, you simply cannot. If you are stuck using Expo Go, find another solution. Expo Development BuildExpo has changed a lot in the past few years, and by pairing an Expo Managed Workflow with a development build, it allows you to build what is essentially your own version of the Expo Go application featuring all the customized native code, files, dependencies, and configurations your heart desires! One of the build steps for your development build is to install Pods. This is automatically done in the managed workflow with the development build. This means as long as you have this package installed in a managed workflow with the development build, you're good to go. Get Started with Managed Workflow & Development BuildIf you want to get started with the managed workflow and development builds, here is information from the Expo documentation. By using this pairing, you can begin using LaunchDarkly in your Expo application. |
Hey everyone just a heads up we managed to implement Launchdarkly successfully with Expo. Essentially there were no extra steps needed for our product that is using a Development build via
|
I am still struggling with Android, see #227 (comment) |
We have taken the request in mind for the development of the next LaunchDarkly React Native SDK - https://github.com/launchdarkly/js-core/tree/main/packages/sdk/react-native is currently in alpha, written in pure JavaScript, and supports Expo 49/RN 0.72.x. If you are interested, we would love to get some feedback before moving this 10.x SDK to GA. Because the 10.x written in pure JavaScript, which should remove the need to have Expo Config Plugin. Please let us know if there are other reasons that this plugin will still be desirable in the next version. |
Would this support web? |
The react-native SDK has been re-written and released. The new version v10 is purely in TypeScript and supports Expo. At this time we support iOS and Android only. Please consider upgrading to that new version to fix this issue. Thank you for your patience. |
This issue is marked as stale because it has been open for 30 days without activity. Remove the stale label or comment, or this will be closed in 7 days. |
I am on a team that's fixin to start work on a cross-platform Expo app, intended to replace our three legacy clients. Wanted to inquire whether y'all would consider adding support for Config Plugins, so this library can be used with the Expo Managed Workflow (i.e. without ejecting)
Thanks for your consideration!
Feature Context
Over the past several months Expo has introduced features which enable apps to use external native modules, without ejecting Expo's managed workflow.
The customizations to the iOS and Android code that are required by a given native module are automated, using an AST-based API that Expo provides through "Config Plugins" feature.
These automations (called "mods") are executed during a new "Prebuild" phase, in which boilerplate ios and android directories are created — and then their respective files are altered, based on the instructions in a given modules config plugin. The end result is essentially the same as if you ejected and manually changed the ios/android files.
Here's the Expo blog post announcing Config Plugins and the associated feature-set.
Overview of Proposed Implementation
The process for creating a Config Plugin is detailed here:
https://docs.expo.io/guides/config-plugins/#creating-a-plugin
There are a few different "recipes" for how to implement — but the gist of it is:
app.plugin.js
file, at the project root — which serves as a standard entrypoint where expo can resolve the plugin code. [ex:expo-camera
]withFeature
) which accepts aconfig
object that can be used, along with@expo/config-plugins
methods, to implement mods for each platform's native code. [ex:withCamera
]Additional Question
Are there specific feature in the RN SDK, that aren't supported in the standard React SDK? I've been trying to parse the docs a little bit but it's not totally clear to me. Thanks!
The text was updated successfully, but these errors were encountered: