Open
Conversation
PR MASTER TO DEV
Code review to remove build warnings for Android
PR MASTER to DEV
PR MASTER TO DEV
### 🎉 Features & Fixes * **iOS:** Fixed critical crashes caused by unsafe data handling, significantly improving plugin stability. * **iOS:** Modernized native code to ensure compatibility with recent APIs and iOS 13+. * **iOS:** Resolved Swift compilation errors and refactored the codebase for improved quality and maintainability.
Release 8.9.0
Code change to allow custom URL configuration per Operating System
## 8.10.0 ### 🎉 Features Improved the API URL configuration by moving to a platform-specific setup. - Added key `apiUrlAndroid` in `branch-config.json` to configure the API URL for the Android platform. - Added key `apiUrlIOS` in `branch-config.json` to configure the API URL for the iOS platform. This allows developers to define different API endpoints (or keep the SDK default) for Android and iOS within the `branch-config.json` file. ### 🗑️ Removals -⚠️ The `apiUrl` key has been removed from `branch-config.json`. Please update your configuration to use the new platform-specific keys.
## 8.10.0 ### 🎉 Features **Introduced platform-specific API URL configuration.** This allows developers to define different API endpoints for Android and iOS in `branch-config.json`. - Added key `apiUrlAndroid` in `branch-config.json` to configure the API URL for the Android platform. - Added key `apiUrlIOS` in `branch-config.json` to configure the API URL for the iOS platform. ### 🗑️ Removals -⚠️ The generic `apiUrl` key has been removed from `branch-config.json`. Please update your configuration to use the new platform-specific keys (`apiUrlAndroid` and `apiUrlIOS`).
feat: Add platform logging stream and log level configuration - Introduced `FlutterBranchSdk.platformLogs` stream for real-time log messages from the Branch SDK. - Added `logLevel` configuration to `branch-config.json` for controlling log verbosity. - Updated documentation to include examples for logging configuration in different environments. - Enhanced Android and iOS implementations to support logging levels and stream handling. - Updated README and CHANGELOG to reflect new features and usage instructions.
- Enhanced FlutterBranchSdkPlugin registration to clean up existing channels and handlers to prevent duplicates. - Added deinitialization logic to remove stream handlers and channels when the plugin instance is deallocated. - Refactored FlutterBranchSdkMethodChannel to use static channels and added initialization checks to prevent method calls before SDK initialization. - Improved error handling and validation in method calls to ensure proper SDK usage.
Introduced a private _validateUrl method in FlutterBranchSdkMethodChannel to enforce stricter URL validation for handleDeepLink. Updated related tests to cover validation scenarios and improved debug logging in home_page.dart to include timestamps.
Refactored the URL validation logic to remove unnecessary null checks for host and path, relying on empty string checks instead.
- Added buffer size limits and dropped message warnings to log stream handlers on Android and iOS to prevent unbounded memory usage. - Updated iOS plugin to prioritize JSON config for logging, and improved debug output formatting. - Clarified in documentation and web implementation that platform logs are only available on iOS and Android, not on Web. - Updated iOS example project configuration for better deep linking and plugin registration.
**New Platform Logging Stream**
- Added `FlutterBranchSdk.platformLogs` stream to receive Branch SDK log messages in real-time
- Enable logging via `branch-config.json` (`enableLogging` and `logLevel` keys) or programmatically through `FlutterBranchSdk.init()`
- Supports log levels: `VERBOSE`, `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `NONE`
- Example usage:
```dart
FlutterBranchSdk.platformLogs.listen((logMessage) {
debugPrint('Branch Log: $logMessage');
});
```
…ts, and enhance iOS UISceneDelegate support
###⚠️ BREAKING CHANGES - **Minimum Flutter version**: 3.38.0 (was 3.19.0) - **Minimum Dart SDK**: 3.10.0 (was 3.3.0) - **Minimum iOS version : 13 ### 🎉 Features **iOS UISceneDelegate Support (iOS 13+)** [Fluuter UISceneDelegate adoption](https://docs.flutter.dev/release/breaking-changes/uiscenedelegate) - Added full support for iOS 13+ UISceneDelegate lifecycle - Maintains full backward compatibility with UIApplicationDelegate for apps not using scenes
### 🔧 Native SDK Updates * Updated included iOS SDK to 3.14.0 - [iOS Version History](https://github.com/BranchMetrics/ios-branch-deep-linking-attribution/releases) * Improved log output from enableBranchLogging with more detailed information. ### 🐛 Fixes **iOS** - Fixed duplicate Branch session initialization in scene-based apps (iOS 13+): added guard to prevent `initSession` from being called twice when both App Delegate and Scene Delegate lifecycles are active
### 🔧 Native SDK Updates * Updated included iOS SDK to 3.14.0 - [iOS Version History](https://github.com/BranchMetrics/ios-branch-deep-linking-attribution/releases) * Improved log output from enableBranchLogging with more detailed information. ### 🐛 Fixes **iOS** - Fixed duplicate Branch session initialization in scene-based apps (iOS 13+): added guard to prevent `initSession` from being called twice when both App Delegate and Scene Delegate lifecycles are active
… to prevent double execution on iOS 13+
### 🔧 Native SDK Updates * Updated included iOS SDK to 3.14.0 - [iOS Version History](https://github.com/BranchMetrics/ios-branch-deep-linking-attribution/releases) ### 🎉 Features * Improved log output from `platformLogs` with more detailed information. ### 🐛 Bug Fixes * **iOS:** Fixed double execution of `configureBranchSDK()` on iOS 13+ with Scene Delegate support. The method was being called from both `application(_:didFinishLaunchingWithOptions:)` and `scene(_:willConnectTo:options:)`, causing duplicate logging callback registration and other redundant SDK initialization. Added idempotency guard with `isSdkConfigured` flag to prevent re-execution.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
👑 An automated PR