Skip to content

Releases/6.x.x/6.17.x/6.17.9 rc1#437

Closed
Kobikg78 wants to merge 68 commits intomasterfrom
releases/6.x.x/6.17.x/6.17.9-rc1
Closed

Releases/6.x.x/6.17.x/6.17.9 rc1#437
Kobikg78 wants to merge 68 commits intomasterfrom
releases/6.x.x/6.17.x/6.17.9-rc1

Conversation

@Kobikg78
Copy link
Copy Markdown
Collaborator

Summary

This release contains two changes: a native SDK version bump and a P1 bug fix for iOS deep linking on
Flutter 3.41+.


  1. Version Bump
  • Plugin: 6.17.8 → 6.17.9
  • Android SDK (af-android-sdk): 6.17.5 → 6.17.6
  • iOS SDK (AppsFlyerFramework): 6.17.8 → 6.17.9
  • iOS Purchase Connector: 6.17.8 → 6.17.9

Updated across all required files: pubspec.yaml, ios/appsflyer_sdk.podspec, android/build.gradle,
CHANGELOG.md, README.md, and the PLUGIN_VERSION constant in Dart, Android Java, and iOS header.


  1. Fix: UIScene Lifecycle Support (DELIVERY-114618)

Problem

Flutter 3.41 auto-migrates apps to UIScene by default. When UIScene is active, UIKit routes deep links
through the scene delegate (scene:openURLContexts:, scene:willConnectToSession:options:) rather than the
traditional AppDelegate methods (application:openURL:options:). The plugin only implemented the AppDelegate
path, causing deep links to be silently dropped on iOS apps running Flutter 3.41+.

Fix

AppsflyerSdkPlugin now conforms to FlutterSceneLifeCycleDelegate and registers via [registrar
addSceneDelegate:instance] (iOS 13+). Three new methods were added:

  • scene:willConnectToSession:options: — handles cold-start URI-scheme deep links
  • scene:openURLContexts: — handles warm-start URI-scheme deep links
  • scene:continueUserActivity: — handles Universal Links via UIScene

No app-side changes required. The fix works at the plugin level regardless of how the app's SceneDelegate
is configured.


Testing

Reproduction

Confirmed the bug on iOS 18.4 simulator + Flutter 3.41.4: with UIScene active and no custom URL forwarding,
application:openURL:options: was never called. System log showed "Failed to handle route information in
Flutter" — the URL arrived via the scene but was never routed to the plugin. onDeepLinking only resolved
via the native SDK's DDL network fallback, not through the plugin delegate chain.

Verification

After the fix, scene:willConnectToSession:options: fires at app launch (before startSDK), handleOpenUrl is
called directly, and onDeepLinking Status.FOUND is delivered correctly without relying on the DDL fallback.

Full E2E on releases/6.x.x/6.17.x/6.17.9-rc1 — 40/40 checks passed

  • Android Phase 1 — Smoke (SDK init, events, callbacks): ✅ PASS
  • Android Phase 2 — Background deep link (onDeepLinking FOUND): ✅ PASS
  • Android Phase 3 — Foreground deep link (onDeepLinking FOUND): ✅ PASS
  • iOS 18.4 Phase 1 — Smoke (SDK init, events, callbacks): ✅ PASS
  • iOS 18.4 Phase 2 — Background deep link (onDeepLinking FOUND): ✅ PASS
  • iOS 18.4 Phase 3 — Foreground deep link (onDeepLinking FOUND): ✅ PASS

pazlavi and others added 30 commits June 13, 2024 16:24
- added a usage example of the api for testing.
…n-network-value-fix

Fixed the issue with MediationNetwork enums on Android
…null-pointer-exception

This should fix the NullPointerException
* bumped up PC versions

* set back ios version
commit fa71c23
Merge: f420460 4f4ee27
Author: Dani-Koza-AF <dani.ko@appsflyer.com>
Date:   Thu Oct 31 15:16:50 2024 +0200

    Merge remote-tracking branch 'origin/development' into development

commit f420460
Author: Dani Koza <103039399+Dani-Koza-AF@users.noreply.github.com>
Date:   Wed Oct 30 15:50:41 2024 +0200

    Releases/6.x.x/6.15.x/6.15.2 rc1 (#358)

    * fixed the issue with MediationNetwork enums on Android

    * Added a usage example of the logAdRevenue api for testing.

    * Fix to the NullPointerException some clients face.

    * Versioning and change log

commit 4f4ee27
Merge: a58a49b 25fb530
Author: Dani Koza <103039399+Dani-Koza-AF@users.noreply.github.com>
Date:   Wed Oct 30 14:47:17 2024 +0200

    Merge pull request #357 from AppsFlyerSDK/DELIVERY-63011/fix-android-null-pointer-exception

    This should fix the NullPointerException

commit 25fb530
Author: Dani-Koza-AF <dani.ko@appsflyer.com>
Date:   Wed Oct 30 14:26:26 2024 +0200

    This should fix the NullPointerException

commit a58a49b
Merge: 6213341 b85b1a4
Author: Dani-Koza-AF <dani.ko@appsflyer.com>
Date:   Mon Oct 28 12:30:10 2024 +0200

    Merge remote-tracking branch 'origin/development' into development

commit b85b1a4
Merge: 82764a4 6529458
Author: Dani Koza <103039399+Dani-Koza-AF@users.noreply.github.com>
Date:   Mon Oct 28 12:15:32 2024 +0200

    Merge pull request #353 from AppsFlyerSDK/dev/DELIVERY-71973/mediation-network-value-fix

    Fixed the issue with MediationNetwork enums on Android

commit 6529458
Author: Dani-Koza-AF <dani.ko@appsflyer.com>
Date:   Sun Oct 27 17:47:00 2024 +0200

    fixed the issue with MediationNetwork enums on Android

    - added a usage example of the api for testing.

commit 6213341
Merge: 3272d7e 82764a4
Author: Dani-Koza-AF <103039399+Dani-Koza-AF@users.noreply.github.com>
Date:   Wed Sep 4 15:51:28 2024 +0300

    Merge pull request #338 from AppsFlyerSDK/releases/6.x.x/6.15.x/6.15.1-rc1

    Releases/6.x.x/6.15.x/6.15.1 rc1

commit 82764a4
Merge: 3272d7e 6b76d63
Author: Dani-Koza-AF <103039399+Dani-Koza-AF@users.noreply.github.com>
Date:   Wed Sep 4 15:15:03 2024 +0300

    Merge pull request #337 from AppsFlyerSDK/dev/DELIVERY-67805/Update-Plugin-to-v6.15.1

    Update plugin to v6.15.1

commit 6b76d63
Author: Dani-Koza-AF <dani.ko@appsflyer.com>
Date:   Wed Sep 4 15:13:04 2024 +0300

    Added missing info in docs

commit e7d4dc6
Author: Dani-Koza-AF <dani.ko@appsflyer.com>
Date:   Wed Sep 4 14:17:28 2024 +0300

    Added documentation

commit 9f90c8e
Author: Dani-Koza-AF <dani.ko@appsflyer.com>
Date:   Tue Sep 3 17:48:33 2024 +0300

    Improvement of Android side impl

commit 079ccad
Author: Dani-Koza-AF <dani.ko@appsflyer.com>
Date:   Tue Sep 3 17:22:48 2024 +0300

    iOS side impl

    - Helper func to get the correct enum properly.
    - requireNonNullArgumentWithCall to make sure we actually get the arguments.
    - Lots of null safety checks due to testing failures encountered.

commit 4a3a0d6
Author: Dani-Koza-AF <dani.ko@appsflyer.com>
Date:   Mon Sep 2 14:48:30 2024 +0300

    Android side impl

    - Flutter didn't like the fact that we pass enums, had to change mediation network to String, handled later on native side.
    - Added an helper method to ensure null safety,  hopefully will be embraced by other method in the future.

commit d74054e
Author: Dani-Koza-AF <dani.ko@appsflyer.com>
Date:   Sun Sep 1 16:43:24 2024 +0300

    flutter side impl

    - New Enum introduced.
    - New API logAdRevenue.
    - New AdRevenueData class.
    - Upgraded Dart SDK versions limits a bit to start from 2.17.0 .

commit 3272d7e
Merge: 95a4348 248dcf5
Author: liaz-af <61788924+liaz-af@users.noreply.github.com>
Date:   Mon Aug 19 22:35:24 2024 +0300

    Merge pull request #336 from dori-af/dori/udl-note

    Deep link UDL - added a note

commit 248dcf5
Author: Dori Frost <dori.frost@appsflyer.com>
Date:   Sun Aug 18 16:35:07 2024 +0300

    Deep link UDL - added a note

    Per Slack: https://appsflyer.slack.com/archives/C5RDRS58X/p1723186908673099
Aligned Flutter's Android compileOptions to AppsFlyer's Android SDK.
* updated BasicIntegration.md

* docs: updated push notification API's
New consent api and more
- setConsentData is now deprecated.
- setConsentDataV2 is the new and recommended way to set manual user consent.
- Add getVersionNumber api, returns the plugin version.
- version bumps.
- typos fix.
- doc updates.
- bug fix.
Dani-Koza-AF and others added 27 commits October 15, 2025 12:35
* test: verify CI workflow

* fixed Flutter Version determination

* flutter analyze fixes

* more flutter analyze fixes for example app

* updated flutter analyze command

* format code with dart format

* Fix iOS CI order and increase gradle heap size

* putting back important file for build testing with iOS

* example project update Podfile
fix in example project only
…deDLFix

moved the init to the right place
* podspec must be plain X.Y.Z

* fixing the CI mistake

* CI changes

* adding a dry run option
…ing (#429)

* SDK updates deprecate V1 purchase validation, improve iOS error handling

SDK Version Updates:
- Update Android SDK from 6.17.4 to 6.17.5
- Update iOS SDK from 6.17.7 to 6.17.8
- Update iOS Purchase Connector from 6.17.7 to 6.17.8
- Bump plugin version to 6.17.8 across all platforms

API Changes:
- Deprecate validateAndLogInAppAndroidPurchase (V1)
- Deprecate validateAndLogInAppIosPurchase (V1)
- Enhance iOS error handling for validateAndLogInAppPurchaseV2 with NSError parsing (code, domain, userInfo)

Documentation Updates:
- Remove "Beta" label from validateAndLogInAppPurchaseV2 API
- Mark V1 purchase validation APIs as Deprecated
- Add comprehensive PlatformException error handling examples
- Add iOS token format explanation for uninstall measurement
- Add cross-platform Firebase Messaging example for uninstall tokens

* lint

* CHANGELOG update

* fix implementation for validateAndLogInAppPurchaseV2
- Remove auto-merge (not allowed by org rules)
- Instead, update release branch to remove -rc suffix BEFORE merge
- Human manually merges after version is cleaned up
- Production release triggers on PR merge as before
GitHub Actions doesn't allow secrets in if conditions. Using
continue-on-error instead to gracefully handle missing webhook.
…upport

The plugin only implemented AppDelegate-based lifecycle methods for deep
linking. Since Flutter 3.41 auto-migrates apps to UIScene by default,
UIKit no longer calls application:openURL:options: or
application:continueUserActivity: — routing everything through the scene
delegate instead. This caused deep links to be silently dropped on iOS
apps using Flutter 3.41+.

Fix:
- Adopt FlutterSceneLifeCycleDelegate in AppsflyerSdkPlugin
- Register via [registrar addSceneDelegate:instance] (iOS 13+)
- Add scene:openURLContexts: for warm-start URI-scheme deep links
- Add scene:willConnectToSession:options: for cold-start URI-scheme deep links
- Add scene:continueUserActivity: for Universal Links via UIScene

Verified on iOS 18.4 simulator with Flutter 3.41.4. Both cold-start and
warm-start deep link callbacks now reach the plugin correctly without
requiring any app-side workaround.

Fixes: DELIVERY-114618

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Plugin version: 6.17.8 → 6.17.9 (pubspec.yaml, podspec, CHANGELOG)
- Android SDK: com.appsflyer:af-android-sdk 6.17.5 → 6.17.6
- iOS SDK: AppsFlyerFramework 6.17.8 → 6.17.9
- iOS PurchaseConnector: 6.17.8 → 6.17.9
- PLUGIN_VERSION constant updated across Dart, Android, and iOS layers
- README SDK version table updated
- .gitignore: exclude .claude/, scripts/, example/ from plugin releases

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Resolved conflicts in favour of release branch versions (6.17.9).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Kobikg78 Kobikg78 requested a review from Dani-Koza-AF March 25, 2026 12:11
@Kobikg78
Copy link
Copy Markdown
Collaborator Author

Closing — wrong base branch. Will create a proper fix branch from development instead.

@Kobikg78 Kobikg78 closed this Mar 25, 2026
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.

4 participants