Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

feat: createClient "storePersistor" option #549

Conversation

509dave16
Copy link
Contributor

Summary

The gist of this PR is that it allows for a storePersistor client option to be specified in the createClient function call. Currently @segment/sovran-react-native, the store that backs @segment/analytics-react-native, uses AsyncStorage as the default persistor. However with this changeset, the new client option allows for Segment clients to leverage a storage mechanism other than AsyncStorage.

Use Case

Gopuff's app uses MMKV for key/value storage. And the Consumer Platform Team required that MMKV be the storage mechanism for @segment/analytics-react-native's stores. Hopefully this enhancement will be beneficial to other Segment client as well.

Documentation

Updated README.md's section on Client Options. Hopefully that was sufficient. Please let me know if additional documentation is required.

Unit Tests

Updated sovranStorage.test.ts to also perform assertions on a SovranStorage instance that's using a CustomPersistor(i.e. in-memory) instead of the default AsyncStoragePersistor.

NOTE: I did not add additional assertions for the events and userInfo stores that the SovranStorage class creates. Please let me know if you would like assertions added for those.

References

509dave16 added 2 commits May 19, 2022 12:30
documented new store persistor client option
@oscb
Copy link
Contributor

oscb commented May 23, 2022

This looks great, thanks for taking the time to make these changes!
If CI looks good I'll merge and put it in the next release

@509dave16
Copy link
Contributor Author

This looks great, thanks for taking the time to make these changes! If CI looks good I'll merge and put it in the next release

Thank you so much for taking the time to look at my PR, Oscar! Fingers crossed that the CI passes!!

@oscb oscb merged commit 4b70e99 into segmentio:master May 23, 2022
jezallan pushed a commit to uswitch/analytics-react-native that referenced this pull request Jun 29, 2022
## @uswitch/analytics-react-native-v1.0.0 (2022-06-29)

### ⚠ BREAKING CHANGES

* We've improved iOS support for non-Cocoapods users. You do not need to follow these steps if you are using Cocoapods.

### Migration instructions

- Remove `Analytics.framework` from your Xcode project
- Remove `Analytics.framework` from `Embedded Binaries`
- Follow [Current instructions](#current-instructions)

### Current instructions
* **client:** We've dropped the chained configuration for an object one instead. This will make Analytics blend even better with tools like Prettier.

Before:
```js
analytics
    .configure()
        .using(Mixpanel, GoogleAnalytics)
        .recordScreenViews()
        .trackAppLifecycleEvents()
        .trackAttributionData()
        .android()
            .flushInterval(60)
            .disableDevicedId()
        .ios()
            .trackAdvertising()
            .trackDeepLinks()
    .setup("writeKey")
    .then(() =>
        console.log('Analytics is ready')
    )
    .catch(err =>
        console.error('Something went wrong', err)
    )
```

Now:
```js
analytics
    .setup('writeKey', {
        using: [Mixpanel, GoogleAnalytics],
        recordScreenViews: true,
        trackAppLifecycleEvents: true,
        trackAttributionData: true,

        android: {
            flushInterval: 60,
            collectDeviceId: false
        },
        ios: {
            trackAdvertising: true,
            trackDeepLinks: true
        }
    })
    .then(() =>
        console.log('Analytics is ready')
    )
    .catch(err =>
        console.error('Something went wrong', err)
    )
```

### Features

* Add AdvertisingId Plugin ([segmentio#574](https://github.com/uswitch/analytics-react-native/issues/574)) ([9f47e67](9f47e67))
* add analytics 2.0 ([segmentio#360](https://github.com/uswitch/analytics-react-native/issues/360)) ([829fc80](829fc80))
* add anonymousId logic to reset ([segmentio#475](https://github.com/uswitch/analytics-react-native/issues/475)) ([23baab4](23baab4))
* add deeplink referral application data ([segmentio#454](https://github.com/uswitch/analytics-react-native/issues/454)) ([dbfc267](dbfc267))
* add reset to plugins ([segmentio#490](https://github.com/uswitch/analytics-react-native/issues/490)) ([686f73f](686f73f))
* added destination metadata and internal timeline processing for destinatio plugins ([segmentio#477](https://github.com/uswitch/analytics-react-native/issues/477)) ([8b1df55](8b1df55))
* **android:** allow opt-out for new lifecycle methods ([segmentio#256](https://github.com/uswitch/analytics-react-native/issues/256)) ([8dbadad](8dbadad))
* **android:** allow passing integration options ([segmentio#184](https://github.com/uswitch/analytics-react-native/issues/184)) ([6845c67](6845c67))
* **anonymousid:** add a method to retrieve the anonymousId ([988f382](988f382))
* **client:** use object-based configuration ([segmentio#7](https://github.com/uswitch/analytics-react-native/issues/7)) ([6a281f4](6a281f4))
* **core:** add middlewares ([9aeafa3](9aeafa3))
* **core:** add native configuration method ([19c4fae](19c4fae))
* **core:** export TypeScript public interfaces ([9978cd7](9978cd7))
* **core:** http proxying via setup configuration ([segmentio#202](https://github.com/uswitch/analytics-react-native/issues/202)) ([40a3f5a](40a3f5a))
* Create Client Proxy Option ([segmentio#570](https://github.com/uswitch/analytics-react-native/issues/570)) ([eaeb940](eaeb940))
* createClient "storePersistor" option ([segmentio#549](https://github.com/uswitch/analytics-react-native/issues/549)) ([4b70e99](4b70e99))
* **integrations:** allow setting integration options ([13b663e](13b663e))
* **ios:** make idfa for ios external to analytics ([segmentio#210](https://github.com/uswitch/analytics-react-native/issues/210)) ([35f96a0](35f96a0))
* **ios:** set trackAdvertising=true by default on ios ([segmentio#82](https://github.com/uswitch/analytics-react-native/issues/82)) ([09e997b](09e997b))
* new onContextLoad events and awaitable context updates ([segmentio#532](https://github.com/uswitch/analytics-react-native/issues/532)) ([4508ad4](4508ad4)), closes [segmentio#524](https://github.com/uswitch/analytics-react-native/issues/524) [segmentio#527](https://github.com/uswitch/analytics-react-native/issues/527)
* plugins can now disable integrations by marking them as false in the event.integrations ([segmentio#496](https://github.com/uswitch/analytics-react-native/issues/496)) ([65c2371](65c2371))
* replacing redux with sovran ([segmentio#422](https://github.com/uswitch/analytics-react-native/issues/422)) ([2d69cc1](2d69cc1))

### Bug Fixes

* add fix for deviceId on android builds ([segmentio#405](https://github.com/uswitch/analytics-react-native/issues/405)) ([92c1fc0](92c1fc0))
* add override fix to ios modules ([segmentio#404](https://github.com/uswitch/analytics-react-native/issues/404)) ([8e47eb6](8e47eb6))
* **android:** bump android dependency ([segmentio#214](https://github.com/uswitch/analytics-react-native/issues/214)) ([acd0f2f](acd0f2f))
* **android:** bump deps and fix config issues ([segmentio#298](https://github.com/uswitch/analytics-react-native/issues/298)) ([5a2ed9b](5a2ed9b))
* **android:** defaultKotlinVersion ([segmentio#159](https://github.com/uswitch/analytics-react-native/issues/159)) ([54e90a3](54e90a3))
* **android:** fix crash when promise resolves in debug mode ([segmentio#267](https://github.com/uswitch/analytics-react-native/issues/267)) ([a0e21d9](a0e21d9))
* **android:** fixed context not passing thru ([segmentio#147](https://github.com/uswitch/analytics-react-native/issues/147)) ([cb1b412](cb1b412))
* **android:** parse android specific options correctly ([segmentio#187](https://github.com/uswitch/analytics-react-native/issues/187)) ([49e4815](49e4815))
* **android:** pull android tool versions from root project ([segmentio#12](https://github.com/uswitch/analytics-react-native/issues/12)) ([3f1eb3c](3f1eb3c)), closes [/github.com/frostney/react-native-create-library/blob/master/templates/android.js#L28](https://github.com/uswitch//github.com/frostney/react-native-create-library/blob/master/templates/android.js/issues/L28)
* appsflyer attribution ([segmentio#547](https://github.com/uswitch/analytics-react-native/issues/547)) ([494df24](494df24))
* **bridge:** fix duplicated analytics client improving errors ([segmentio#162](https://github.com/uswitch/analytics-react-native/issues/162)) ([28a981d](28a981d))
* **bridge:** fix p(r)omise typo ([segmentio#168](https://github.com/uswitch/analytics-react-native/issues/168)) ([d9794db](d9794db))
* **bridge:** improve missing native module error ([segmentio#5](https://github.com/uswitch/analytics-react-native/issues/5)) ([0a03617](0a03617))
* change React dependency to React-Core ([segmentio#254](https://github.com/uswitch/analytics-react-native/issues/254)) ([c51e689](c51e689))
* **client:** copy package with version ([2c223dd](2c223dd))
* **config:** pass user-supplied context for analytics calls ([segmentio#188](https://github.com/uswitch/analytics-react-native/issues/188)) ([7429567](7429567))
* **context:** fix `context` `name` and `version` ([09f0b28](09f0b28))
* **core:** fix duplicate client error in dev mode ([segmentio#51](https://github.com/uswitch/analytics-react-native/issues/51)) ([cb66749](cb66749)), closes [segmentio#16](https://github.com/uswitch/analytics-react-native/issues/16) [segmentio#15](https://github.com/uswitch/analytics-react-native/issues/15)
* **core:** fix TypeScript typings ([fe7933c](fe7933c)), closes [segmentio#11](https://github.com/uswitch/analytics-react-native/issues/11)
* **core:** React-Native 0.59 Support ([segmentio#50](https://github.com/uswitch/analytics-react-native/issues/50)) ([a78c94e](a78c94e)), closes [segmentio#46](https://github.com/uswitch/analytics-react-native/issues/46) [segmentio#44](https://github.com/uswitch/analytics-react-native/issues/44)
* custom event integrations override support, refactor integration merge logic ([segmentio#379](https://github.com/uswitch/analytics-react-native/issues/379)) ([d0b8fbf](d0b8fbf))
* deepmerge device context on update ([segmentio#543](https://github.com/uswitch/analytics-react-native/issues/543)) ([5878043](5878043))
* don't call stringValue of strings ([segmentio#253](https://github.com/uswitch/analytics-react-native/issues/253)) ([226a9e4](226a9e4))
* fix bundle unbundled logic ([segmentio#521](https://github.com/uswitch/analytics-react-native/issues/521)) ([9e080b1](9e080b1))
* fixes missing context in first launch event after install ([segmentio#451](https://github.com/uswitch/analytics-react-native/issues/451)) ([efb2805](efb2805))
* fixing scheduling of flush intervals ([segmentio#457](https://github.com/uswitch/analytics-react-native/issues/457)) ([1b86cfc](1b86cfc))
* format integration settings correctly in the event integrations ([9e7d62d](9e7d62d))
* generating a UUID for anonymousID initial value, refactor userId replacement ([segmentio#440](https://github.com/uswitch/analytics-react-native/issues/440)) ([ef297ee](ef297ee))
* **ios:** bump ios dependency ([segmentio#217](https://github.com/uswitch/analytics-react-native/issues/217)) ([4848bbd](4848bbd))
* **ios:** fix `trackAppLifecycleEvents` ([50c4b09](50c4b09))
* **ios:** fixes for building for newer rn ([segmentio#206](https://github.com/uswitch/analytics-react-native/issues/206)) ([ecce14c](ecce14c))
* match identify and reset client methods arguments, add token to context ([segmentio#533](https://github.com/uswitch/analytics-react-native/issues/533)) ([f865d48](f865d48))
* merge context to preserve plugin injected properties ([segmentio#487](https://github.com/uswitch/analytics-react-native/issues/487)) ([9586a7a](9586a7a))
* **package:** missing repo info ([segmentio#268](https://github.com/uswitch/analytics-react-native/issues/268)) ([6a2a93b](6a2a93b))
* persist user traits across events ([segmentio#581](https://github.com/uswitch/analytics-react-native/issues/581)) ([d48ac83](d48ac83))
* prevent events mutating state on empty removes ([133b821](133b821))
* re-add logic for tracking lifecycle events ([segmentio#328](https://github.com/uswitch/analytics-react-native/issues/328)) ([92194f3](92194f3))
* refactor getDeviceID to use DRM, remove AndroidID ([segmentio#567](https://github.com/uswitch/analytics-react-native/issues/567)) ([f2616aa](f2616aa))
* refactoring redux event subscriptions and locking upload ([segmentio#376](https://github.com/uswitch/analytics-react-native/issues/376)) ([a302215](a302215))
* remove console.warning when sending events ([segmentio#413](https://github.com/uswitch/analytics-react-native/issues/413)) ([954ece1](954ece1))
* remove import cycle in DestinationMetadataEnrichment ([segmentio#505](https://github.com/uswitch/analytics-react-native/issues/505)) ([9d51d3f](9d51d3f))
* reset anonymousId for users who have persisted incorrect value ([segmentio#445](https://github.com/uswitch/analytics-react-native/issues/445)) ([37aeb81](37aeb81))
* setting minSDK to > 21 for Android and updating to sovran 0.2.2 ([segmentio#430](https://github.com/uswitch/analytics-react-native/issues/430)) ([4c6e977](4c6e977))
* upgrade sovran to v0.2.3, move RN to peerDeps ([segmentio#437](https://github.com/uswitch/analytics-react-native/issues/437)) ([b76739a](b76739a))

* Improve iOS support for users without Cocoapods  (segmentio#27) ([e90a58c](e90a58c)), closes [segmentio#27](https://github.com/uswitch/analytics-react-native/issues/27) [segmentio/analytics-ios#3](segmentio/analytics-ios#3)
jezallan pushed a commit to uswitch/analytics-react-native that referenced this pull request Jun 29, 2022
## @uswitch/analytics-react-native-v1.0.0 (2022-06-29)

### ⚠ BREAKING CHANGES

* We've improved iOS support for non-Cocoapods users. You do not need to follow these steps if you are using Cocoapods.

### Migration instructions

- Remove `Analytics.framework` from your Xcode project
- Remove `Analytics.framework` from `Embedded Binaries`
- Follow [Current instructions](#current-instructions)

### Current instructions
* **client:** We've dropped the chained configuration for an object one instead. This will make Analytics blend even better with tools like Prettier.

Before:
```js
analytics
    .configure()
        .using(Mixpanel, GoogleAnalytics)
        .recordScreenViews()
        .trackAppLifecycleEvents()
        .trackAttributionData()
        .android()
            .flushInterval(60)
            .disableDevicedId()
        .ios()
            .trackAdvertising()
            .trackDeepLinks()
    .setup("writeKey")
    .then(() =>
        console.log('Analytics is ready')
    )
    .catch(err =>
        console.error('Something went wrong', err)
    )
```

Now:
```js
analytics
    .setup('writeKey', {
        using: [Mixpanel, GoogleAnalytics],
        recordScreenViews: true,
        trackAppLifecycleEvents: true,
        trackAttributionData: true,

        android: {
            flushInterval: 60,
            collectDeviceId: false
        },
        ios: {
            trackAdvertising: true,
            trackDeepLinks: true
        }
    })
    .then(() =>
        console.log('Analytics is ready')
    )
    .catch(err =>
        console.error('Something went wrong', err)
    )
```

### Features

* Add AdvertisingId Plugin ([segmentio#574](https://github.com/uswitch/analytics-react-native/issues/574)) ([9f47e67](9f47e67))
* add analytics 2.0 ([segmentio#360](https://github.com/uswitch/analytics-react-native/issues/360)) ([829fc80](829fc80))
* add anonymousId logic to reset ([segmentio#475](https://github.com/uswitch/analytics-react-native/issues/475)) ([23baab4](23baab4))
* add deeplink referral application data ([segmentio#454](https://github.com/uswitch/analytics-react-native/issues/454)) ([dbfc267](dbfc267))
* add reset to plugins ([segmentio#490](https://github.com/uswitch/analytics-react-native/issues/490)) ([686f73f](686f73f))
* added destination metadata and internal timeline processing for destinatio plugins ([segmentio#477](https://github.com/uswitch/analytics-react-native/issues/477)) ([8b1df55](8b1df55))
* **android:** allow opt-out for new lifecycle methods ([segmentio#256](https://github.com/uswitch/analytics-react-native/issues/256)) ([8dbadad](8dbadad))
* **android:** allow passing integration options ([segmentio#184](https://github.com/uswitch/analytics-react-native/issues/184)) ([6845c67](6845c67))
* **anonymousid:** add a method to retrieve the anonymousId ([988f382](988f382))
* **client:** use object-based configuration ([segmentio#7](https://github.com/uswitch/analytics-react-native/issues/7)) ([6a281f4](6a281f4))
* **core:** add middlewares ([9aeafa3](9aeafa3))
* **core:** add native configuration method ([19c4fae](19c4fae))
* **core:** export TypeScript public interfaces ([9978cd7](9978cd7))
* **core:** http proxying via setup configuration ([segmentio#202](https://github.com/uswitch/analytics-react-native/issues/202)) ([40a3f5a](40a3f5a))
* Create Client Proxy Option ([segmentio#570](https://github.com/uswitch/analytics-react-native/issues/570)) ([eaeb940](eaeb940))
* createClient "storePersistor" option ([segmentio#549](https://github.com/uswitch/analytics-react-native/issues/549)) ([4b70e99](4b70e99))
* **integrations:** allow setting integration options ([13b663e](13b663e))
* **ios:** make idfa for ios external to analytics ([segmentio#210](https://github.com/uswitch/analytics-react-native/issues/210)) ([35f96a0](35f96a0))
* **ios:** set trackAdvertising=true by default on ios ([segmentio#82](https://github.com/uswitch/analytics-react-native/issues/82)) ([09e997b](09e997b))
* new onContextLoad events and awaitable context updates ([segmentio#532](https://github.com/uswitch/analytics-react-native/issues/532)) ([4508ad4](4508ad4)), closes [segmentio#524](https://github.com/uswitch/analytics-react-native/issues/524) [segmentio#527](https://github.com/uswitch/analytics-react-native/issues/527)
* plugins can now disable integrations by marking them as false in the event.integrations ([segmentio#496](https://github.com/uswitch/analytics-react-native/issues/496)) ([65c2371](65c2371))
* replacing redux with sovran ([segmentio#422](https://github.com/uswitch/analytics-react-native/issues/422)) ([2d69cc1](2d69cc1))

### Bug Fixes

* add fix for deviceId on android builds ([segmentio#405](https://github.com/uswitch/analytics-react-native/issues/405)) ([92c1fc0](92c1fc0))
* add override fix to ios modules ([segmentio#404](https://github.com/uswitch/analytics-react-native/issues/404)) ([8e47eb6](8e47eb6))
* **android:** bump android dependency ([segmentio#214](https://github.com/uswitch/analytics-react-native/issues/214)) ([acd0f2f](acd0f2f))
* **android:** bump deps and fix config issues ([segmentio#298](https://github.com/uswitch/analytics-react-native/issues/298)) ([5a2ed9b](5a2ed9b))
* **android:** defaultKotlinVersion ([segmentio#159](https://github.com/uswitch/analytics-react-native/issues/159)) ([54e90a3](54e90a3))
* **android:** fix crash when promise resolves in debug mode ([segmentio#267](https://github.com/uswitch/analytics-react-native/issues/267)) ([a0e21d9](a0e21d9))
* **android:** fixed context not passing thru ([segmentio#147](https://github.com/uswitch/analytics-react-native/issues/147)) ([cb1b412](cb1b412))
* **android:** parse android specific options correctly ([segmentio#187](https://github.com/uswitch/analytics-react-native/issues/187)) ([49e4815](49e4815))
* **android:** pull android tool versions from root project ([segmentio#12](https://github.com/uswitch/analytics-react-native/issues/12)) ([3f1eb3c](3f1eb3c)), closes [/github.com/frostney/react-native-create-library/blob/master/templates/android.js#L28](https://github.com/uswitch//github.com/frostney/react-native-create-library/blob/master/templates/android.js/issues/L28)
* appsflyer attribution ([segmentio#547](https://github.com/uswitch/analytics-react-native/issues/547)) ([494df24](494df24))
* **bridge:** fix duplicated analytics client improving errors ([segmentio#162](https://github.com/uswitch/analytics-react-native/issues/162)) ([28a981d](28a981d))
* **bridge:** fix p(r)omise typo ([segmentio#168](https://github.com/uswitch/analytics-react-native/issues/168)) ([d9794db](d9794db))
* **bridge:** improve missing native module error ([segmentio#5](https://github.com/uswitch/analytics-react-native/issues/5)) ([0a03617](0a03617))
* change React dependency to React-Core ([segmentio#254](https://github.com/uswitch/analytics-react-native/issues/254)) ([c51e689](c51e689))
* **client:** copy package with version ([2c223dd](2c223dd))
* **config:** pass user-supplied context for analytics calls ([segmentio#188](https://github.com/uswitch/analytics-react-native/issues/188)) ([7429567](7429567))
* **context:** fix `context` `name` and `version` ([09f0b28](09f0b28))
* **core:** fix duplicate client error in dev mode ([segmentio#51](https://github.com/uswitch/analytics-react-native/issues/51)) ([cb66749](cb66749)), closes [segmentio#16](https://github.com/uswitch/analytics-react-native/issues/16) [segmentio#15](https://github.com/uswitch/analytics-react-native/issues/15)
* **core:** fix TypeScript typings ([fe7933c](fe7933c)), closes [segmentio#11](https://github.com/uswitch/analytics-react-native/issues/11)
* **core:** React-Native 0.59 Support ([segmentio#50](https://github.com/uswitch/analytics-react-native/issues/50)) ([a78c94e](a78c94e)), closes [segmentio#46](https://github.com/uswitch/analytics-react-native/issues/46) [segmentio#44](https://github.com/uswitch/analytics-react-native/issues/44)
* custom event integrations override support, refactor integration merge logic ([segmentio#379](https://github.com/uswitch/analytics-react-native/issues/379)) ([d0b8fbf](d0b8fbf))
* deepmerge device context on update ([segmentio#543](https://github.com/uswitch/analytics-react-native/issues/543)) ([5878043](5878043))
* don't call stringValue of strings ([segmentio#253](https://github.com/uswitch/analytics-react-native/issues/253)) ([226a9e4](226a9e4))
* fix bundle unbundled logic ([segmentio#521](https://github.com/uswitch/analytics-react-native/issues/521)) ([9e080b1](9e080b1))
* fixes missing context in first launch event after install ([segmentio#451](https://github.com/uswitch/analytics-react-native/issues/451)) ([efb2805](efb2805))
* fixing scheduling of flush intervals ([segmentio#457](https://github.com/uswitch/analytics-react-native/issues/457)) ([1b86cfc](1b86cfc))
* format integration settings correctly in the event integrations ([9e7d62d](9e7d62d))
* generating a UUID for anonymousID initial value, refactor userId replacement ([segmentio#440](https://github.com/uswitch/analytics-react-native/issues/440)) ([ef297ee](ef297ee))
* **ios:** bump ios dependency ([segmentio#217](https://github.com/uswitch/analytics-react-native/issues/217)) ([4848bbd](4848bbd))
* **ios:** fix `trackAppLifecycleEvents` ([50c4b09](50c4b09))
* **ios:** fixes for building for newer rn ([segmentio#206](https://github.com/uswitch/analytics-react-native/issues/206)) ([ecce14c](ecce14c))
* match identify and reset client methods arguments, add token to context ([segmentio#533](https://github.com/uswitch/analytics-react-native/issues/533)) ([f865d48](f865d48))
* merge context to preserve plugin injected properties ([segmentio#487](https://github.com/uswitch/analytics-react-native/issues/487)) ([9586a7a](9586a7a))
* **package:** missing repo info ([segmentio#268](https://github.com/uswitch/analytics-react-native/issues/268)) ([6a2a93b](6a2a93b))
* persist user traits across events ([segmentio#581](https://github.com/uswitch/analytics-react-native/issues/581)) ([d48ac83](d48ac83))
* prevent events mutating state on empty removes ([133b821](133b821))
* re-add logic for tracking lifecycle events ([segmentio#328](https://github.com/uswitch/analytics-react-native/issues/328)) ([92194f3](92194f3))
* refactor getDeviceID to use DRM, remove AndroidID ([segmentio#567](https://github.com/uswitch/analytics-react-native/issues/567)) ([f2616aa](f2616aa))
* refactoring redux event subscriptions and locking upload ([segmentio#376](https://github.com/uswitch/analytics-react-native/issues/376)) ([a302215](a302215))
* remove console.warning when sending events ([segmentio#413](https://github.com/uswitch/analytics-react-native/issues/413)) ([954ece1](954ece1))
* remove import cycle in DestinationMetadataEnrichment ([segmentio#505](https://github.com/uswitch/analytics-react-native/issues/505)) ([9d51d3f](9d51d3f))
* reset anonymousId for users who have persisted incorrect value ([segmentio#445](https://github.com/uswitch/analytics-react-native/issues/445)) ([37aeb81](37aeb81))
* setting minSDK to > 21 for Android and updating to sovran 0.2.2 ([segmentio#430](https://github.com/uswitch/analytics-react-native/issues/430)) ([4c6e977](4c6e977))
* upgrade sovran to v0.2.3, move RN to peerDeps ([segmentio#437](https://github.com/uswitch/analytics-react-native/issues/437)) ([b76739a](b76739a))

* Improve iOS support for users without Cocoapods  (segmentio#27) ([e90a58c](e90a58c)), closes [segmentio#27](https://github.com/uswitch/analytics-react-native/issues/27) [segmentio/analytics-ios#3](segmentio/analytics-ios#3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants