open_cdp_flutter_sdk 2.0.0
open_cdp_flutter_sdk: ^2.0.0 copied to clipboard
A Flutter SDK for integrating with the OpenCDP platform. Track user events, screen views, and device attributes with automatic lifecycle tracking and dual write to Customer.io.
Changelog #
2.0.0 - 2025-12-30 #
Bug Fixes #
- Fixed iOS build errors when using push notification tracking with notification service extensions
- Resolved "Undefined symbol" linker errors that prevented iOS apps from building
Breaking Changes #
-
iOS Notification Service Extension setup required update
- If you're using push notification tracking with an iOS notification service extension, you must update your configuration:
Update your
Podfile:target 'NotificationService' do use_frameworks! pod 'open_cdp_push_extension', :path => '.symlinks/plugins/open_cdp_flutter_sdk/ios' endUpdate your
NotificationService.swift:import UserNotifications import OpenCdpPushExtension // Changed from: import open_cdp_flutter_sdk-
After updating, run:
cd ios rm -rf Pods Podfile.lock pod install -
See the README.md for complete setup instructions
1.2.1 - 2025-11-13 #
- Updated
identify()method to not accept email as identifier- Use the new
customerIoIdparameter if you need to use email as Id for Customer.io
- Use the new
- Added
customerIoIdparameter toidentify()method for dual-write support- Use this when you need different identifiers for OpenCDP and Customer.io
- Added
throwErrorsBackoption toOpenCDPConfigfor configurable error handling- Default (
false): Errors are logged but don't throw exceptions - your app won't crash - Set to
true: Catch and handleCDPValidationExceptionandCDPExceptionyourself - Choose based on your app's error handling strategy
- Default (
- Enhanced input validation with helpful error messages
Usage Examples #
Basic Usage (with non-email identifier):
await OpenCDPSDK.instance.identify(
identifier: 'user_123',
properties: {'name': 'John Doe'}
);
Dual-Write Usage (with Customer.io email ID):
await OpenCDPSDK.instance.identify(
identifier: 'user_123', // Non-email ID for OpenCDP
customerIoId: '[email protected]', // Email ID for Customer.io
properties: {'name': 'John Doe'}
);
1.2.0 - 2025-10-26 #
-
Breaking Changes
- Updated minimum Android SDK version to 24
- Updated compileSdk to 36 for Android
-
Updated dependencies
-
Updated Kotlin version to 2.1.0
-
Updated Android Gradle plugin to 8.9.1
1.1.0 #
- Push notification tracking and deliverability improvements
- Enhanced support for push notification handling in iOS app extensions using the specified app group
- Ensures proper tracking of notifications received in app extensions
- Android push notification tracking improvements
- Updated README with clearer instructions for push notification setup
1.0.5 #
- Breaking: Removed
OpenCDPSDK.update(user properties update)- This method existed in 1.0.4 and earlier; it has now been removed from the public API
- Migration: use
identify(identifier: ..., properties: {...})to update traits - Related internal update method and example/test code have been removed/commented accordingly
- Updated CDP API endpoints
- Base URL
- No changes required in your integration—requests are routed automatically
1.0.4 #
- Updated the SDK to use the new OpenCDP API endpoint
- No changes required in your integration—your app will now automatically connect to the latest, more reliable OpenCDP service.
- Ensures continued access to data and improved service stability.
1.0.3 #
- SDK now handles errors gracefully without crashing your app
- No more try-catch blocks required in your code
- Network failures and validation errors are logged but don't break functionality
- App continues to work even when tracking operations fail
- Clear error messages when SDK is not properly initialized
- Helps developers identify missing initialization calls
- App remains stable even without proper SDK setup
- Better error messages and logging when debug mode is enabled
1.0.2 #
- Added offline request queue support
- Failed requests are automatically queued
- Queued requests are retried after successful requests
- Queue persists between app restarts
- Removed unused meta package dependency
- Code cleanup and improvements
1.0.1 #
- Removed Customer.io push notification token registration from this SDK. For push notification setup with Customer.io, please follow their official documentation.
1.0.0 #
- Initial release
- User identification and tracking
- Event tracking with different types (custom, screen view, lifecycle)
- Device registration and push notification support
- Automatic screen tracking
- Application lifecycle tracking
- Customer.io integration
- Device attributes tracking