Skip to content

Commit 8ef6791

Browse files
Dani-Koza-AFpazlavigithub-actions[bot]
authored
Releases/6.x.x/6.17.x/6.17.7+1 rc1 (#426)
* Purchase connector for flutter * runOnUi * Nullable * handle callbacks * ui thread callback * swift bridge file * register callback * docs * fixed the issue with MediationNetwork enums on Android - added a usage example of the api for testing. * This should fix the NullPointerException * Delivery 76214/update purchase connector version (#363) * bumped up PC versions * set back ios version * adding a note on the supported StoreKit to docs * typo fix * Squashed commit of the following: 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 * closing potential memory leaks * removed duplicated declarations = * updated example project dependencies Aligned Flutter's Android compileOptions to AppsFlyer's Android SDK. * Push notification data collection documentation updates (#381) * updated BasicIntegration.md * docs: updated push notification API's * reverting addition of PC * post revert fixes * lint * Fixes of tests and typos * Dev/update manual consent api (#383) 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. * fixed Locale issue by forcing toUpperCase(Locale.ENGLISH) (#395) - Expanded the unit–tests to verify not only that the right native method is invoked, but also that the correct arguments are passed. * Doc fix (#400) doc fix - broken link * Add purchase connector to development branch (#402) * removed duplicated declaration * Update .gitignore for purchase connector feature * Add complete Purchase Connector implementation - Add Purchase Connector support for Android and iOS platforms - Implement conditional compilation with include/exclude source sets - Add comprehensive Dart API with type-safe models - Include platform-specific error handling and validation - Add Purchase Connector documentation - Support for both in-app purchases and subscriptions - Zero impact when disabled via gradle/podfile flags New files: - Complete lib/src/purchase_connector/ Dart implementation - Android: include/exclude-connector source sets with ConnectorWrapper - iOS: PurchaseConnectorPlugin.swift with conditional compilation - Documentation: PurchaseConnector.md Modified integration points: - Android: build.gradle, AppsflyerSdkPlugin.java - iOS: appsflyer_sdk.podspec with subspecs architecture - Flutter: appsflyer_sdk.dart main export file * Complete Purchase Connector integration with code generation - Add missing Purchase Connector constants and AFMediationNetwork enum - Update pubspec.yaml with required dependencies (json_annotation, build_runner, json_serializable) - Generate JSON serialization code for all Purchase Connector models - Fix all compilation errors and undefined references - All 39 tests passing ✅ - Purchase Connector fully functional with type-safe models Generated files: - lib/appsflyer_sdk.g.dart - JSON serialization support - All Purchase Connector model serialization methods Dependencies added: - json_annotation: ^4.9.0 (already present) - build_runner: ^2.3.0 - json_serializable: ^6.5.4 * setting the proper SDK versions * documentation small fix * restore and solve code conflicts and ghost code Aligned with development * Immediate actions to prevent NullPointerExceptions (#403) 1. Fixed startSDKwithHandler() method: Null checks moved inside lambda execution 2. Fixed runOnUIThread() method: Added null check for mCallbackChannel. 3. Immediately return initSdk method when dev key is missing. * Latest release updates - Docs + new API for Android (#406) * add disableAppSetId() method for AppSet ID opt-out * added a simple test for the new api * docs * another doc update * documents fix lint * doc lint * doc * doc fix * last time doc fix * docs * Updated to AppsFlyer SDK v6.17.3 for both Android and iOS (#410) * iOS >> Added support for Setting StoreKit2 properly * versions bump * Dart + Android implementation * iOS implementation * docs update * purchase connector doc update for StoreKitV2 support * Added an important note to deep-links docs (#416) * versions bumped + docs updated (#417) * Setting up the full CI/CD (#419) * test: verify CI workflow (#420) * 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 * CI fix - Jira ntegration * CI fix * yet another fix to CI * Hope it's the last CI fix * fix: update Jira API to use /search/jql endpoint (fixes HTTP 410) * readme update and dart analyze fix fix in example project only * verions bumps + modernized to flutter lint * Documentation Updates - regarding push notifications * bumped up Android version (#425) * refine CI * chore: bump version to 6.17.7+1-rc1 --------- Co-authored-by: Paz Lavi <paz.lavi@appsflyer.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 596343d commit 8ef6791

7 files changed

Lines changed: 39 additions & 21 deletions

File tree

.github/workflows/production-release.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,13 +118,13 @@ jobs:
118118
echo "Extracted version from pubspec.yaml: $VERSION"
119119
fi
120120
121-
# Validate version format (X.Y.Z)
122-
if [[ $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
121+
# Validate version format (X.Y.Z or X.Y.Z+build)
122+
if [[ $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+(\+[0-9]+)?$ ]]; then
123123
echo "✅ Valid version format: $VERSION"
124124
echo "version=$VERSION" >> $GITHUB_OUTPUT
125125
else
126126
echo "❌ Invalid version format: $VERSION"
127-
echo "Expected format: X.Y.Z (e.g., 6.17.6)"
127+
echo "Expected format: X.Y.Z or X.Y.Z+build (e.g., 6.17.6 or 6.17.4+1)"
128128
exit 1
129129
fi
130130
@@ -205,7 +205,7 @@ jobs:
205205
- name: 🔍 Validate package
206206
run: |
207207
echo "Running pub publish dry-run to validate package..."
208-
flutter pub publish --dry-run --force
208+
flutter pub publish --dry-run
209209
210210
- name: 📝 Check pub.dev credentials
211211
run: |

.github/workflows/rc-release.yml

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,13 @@
1212
# 4. Creates a pre-release tag on GitHub
1313
# 5. Optionally notifies team via Slack (placeholder for future)
1414
#
15-
# Branch Convention: releases/X.x.x/X.Y.x/X.Y.Z-rcN
16-
# Example: releases/6.x.x/6.18.x/6.18.0-rc1
17-
# Where: X, Y, Z are version numbers, and lowercase 'x' is literal
15+
# Branch Convention: releases/X.x.x/X.Y.x/X.Y.Z[-rcN][+build]
16+
# Examples:
17+
# - releases/6.x.x/6.18.x/6.18.0-rc1
18+
# - releases/6.x.x/6.17.x/6.17.4+1-rc1
19+
# - releases/6.x.x/6.17.x/6.17.4+1
20+
# Where: X, Y, Z are version numbers, lowercase 'x' is literal,
21+
# -rcN is optional for release candidates, +build is optional build number
1822
#
1923
# Triggers:
2024
# - Push to branches matching releases/** pattern
@@ -76,14 +80,17 @@ jobs:
7680
VERSION="${{ github.event.inputs.version }}"
7781
echo "Using manual version: $VERSION"
7882
else
79-
# Extract version from branch name: releases/X.x.x/X.Y.x/X.Y.Z-rcN
80-
# Example: releases/6.x.x/6.18.x/6.18.0-rc1
83+
# Extract version from branch name: releases/X.x.x/X.Y.x/X.Y.Z[-rcN][+build]
84+
# Examples:
85+
# - releases/6.x.x/6.18.x/6.18.0-rc1
86+
# - releases/6.x.x/6.17.x/6.17.4+1-rc1
87+
# - releases/6.x.x/6.17.x/6.17.4+1
8188
BRANCH_NAME="${{ github.ref_name }}"
8289
echo "Branch name: $BRANCH_NAME"
8390
84-
# Extract version using regex
85-
# Pattern: releases/X.x.x/X.Y.x/X.Y.Z-rcN where x is literal 'x'
86-
if [[ $BRANCH_NAME =~ releases/([0-9]+)\.x\.x/([0-9]+\.[0-9]+)\.x/([0-9]+\.[0-9]+\.[0-9]+-rc[0-9]+)$ ]]; then
91+
# Extract version using regex - now supports +build suffix
92+
# Pattern: releases/X.x.x/X.Y.x/X.Y.Z[+build][-rcN] where x is literal 'x'
93+
if [[ $BRANCH_NAME =~ releases/([0-9]+)\.x\.x/([0-9]+\.[0-9]+)\.x/([0-9]+\.[0-9]+\.[0-9]+(\+[0-9]+)?(-rc[0-9]+)?)$ ]]; then
8794
VERSION="${BASH_REMATCH[3]}"
8895
MAJOR="${BASH_REMATCH[1]}"
8996
MAJOR_MINOR="${BASH_REMATCH[2]}"
@@ -92,7 +99,7 @@ jobs:
9299
echo "Major version: $MAJOR"
93100
echo "Major.Minor: $MAJOR_MINOR"
94101
95-
# Validate that version starts with the correct major.minor
102+
# Validate that version starts with the correct major.minor (before any +build suffix)
96103
VERSION_PREFIX=$(echo "$VERSION" | grep -oE '^[0-9]+\.[0-9]+')
97104
if [[ "$VERSION_PREFIX" != "$MAJOR_MINOR" ]]; then
98105
echo "❌ Version mismatch!"
@@ -111,15 +118,18 @@ jobs:
111118
fi
112119
else
113120
echo "❌ Invalid branch name format!"
114-
echo "Expected: releases/X.x.x/X.Y.x/X.Y.Z-rcN"
115-
echo "Example: releases/6.x.x/6.18.x/6.18.0-rc1"
121+
echo "Expected: releases/X.x.x/X.Y.x/X.Y.Z[-rcN][+build]"
122+
echo "Examples:"
123+
echo " - releases/6.x.x/6.18.x/6.18.0-rc1"
124+
echo " - releases/6.x.x/6.17.x/6.17.4+1-rc1"
125+
echo " - releases/6.x.x/6.17.x/6.17.4+1"
116126
echo "Got: $BRANCH_NAME"
117127
exit 1
118128
fi
119129
fi
120130
121-
# Validate version format
122-
if [[ $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+(-rc[0-9]+)?$ ]]; then
131+
# Validate version format (supports +build suffix)
132+
if [[ $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+(\+[0-9]+)?(-rc[0-9]+)?$ ]]; then
123133
echo "✅ Valid version format: $VERSION"
124134
echo "version=$VERSION" >> $GITHUB_OUTPUT
125135
echo "is_valid=true" >> $GITHUB_OUTPUT
@@ -181,8 +191,10 @@ jobs:
181191
VERSION="${{ needs.validate-release.outputs.version }}"
182192
183193
# Remove -rcN suffix for pubspec.yaml (pub.dev doesn't support pre-release tags)
194+
# But preserve +build suffix if present (pub.dev supports build numbers)
184195
PUBSPEC_VERSION=$(echo $VERSION | sed 's/-rc[0-9]*$//')
185196
197+
echo "Full version: $VERSION"
186198
echo "Updating pubspec.yaml to version: $PUBSPEC_VERSION"
187199
188200
# Update version in pubspec.yaml
@@ -232,11 +244,13 @@ jobs:
232244
- name: 📝 Update podspec version
233245
run: |
234246
VERSION="${{ needs.validate-release.outputs.version }}"
247+
# Remove -rcN suffix but preserve +build for podspec
235248
PODSPEC_VERSION=$(echo $VERSION | sed 's/-rc[0-9]*$//')
236249
237250
PODSPEC_FILE="ios/appsflyer_sdk.podspec"
238251
239252
if [ -f "$PODSPEC_FILE" ]; then
253+
echo "Full version: $VERSION"
240254
echo "Updating podspec to version: $PODSPEC_VERSION"
241255
sed -i.bak "s/s\.version.*=.*/s.version = '$PODSPEC_VERSION'/" "$PODSPEC_FILE"
242256
rm "${PODSPEC_FILE}.bak"

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Versions
22

3+
## 6.17.7+1
4+
5+
- Update Android SDK version to 6.17.4
6+
37
## 6.17.7
48

59
- Updated to AppsFlyer SDK v6.17.7 for iOS and Flutter plugin version

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ android {
5353
dependencies {
5454
implementation fileTree(dir: 'libs', include: ['*.jar'])
5555
implementation 'androidx.appcompat:appcompat:1.0.0'
56-
implementation 'com.appsflyer:af-android-sdk:6.17.3'
56+
implementation 'com.appsflyer:af-android-sdk:6.17.4'
5757
implementation 'com.android.installreferrer:installreferrer:2.2'
5858
// implementation 'androidx.core:core-ktx:1.13.1'
5959
if (includeConnector) {

android/src/main/java/com/appsflyer/appsflyersdk/AppsFlyerConstants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.appsflyer.appsflyersdk;
22

33
public final class AppsFlyerConstants {
4-
final static String PLUGIN_VERSION = "6.17.6";
4+
final static String PLUGIN_VERSION = "6.17.7+1";
55
final static String AF_APP_INVITE_ONE_LINK = "appInviteOneLink";
66
final static String AF_HOST_PREFIX = "hostPrefix";
77
final static String AF_HOST_NAME = "hostName";

ios/appsflyer_sdk.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'appsflyer_sdk'
3-
s.version = '6.17.7'
3+
s.version = '6.17.7+1'
44
s.summary = 'AppsFlyer Integration for Flutter'
55
s.description = 'AppsFlyer is the market leader in mobile advertising attribution & analytics, helping marketers to pinpoint their targeting, optimize their ad spend and boost their ROI.'
66
s.homepage = 'https://github.com/AppsFlyerSDK/flutter_appsflyer_sdk'

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: appsflyer_sdk
22
description: A Flutter plugin for AppsFlyer SDK. Supports iOS and Android.
3-
version: 6.17.7
3+
version: 6.17.7+1
44

55
homepage: https://github.com/AppsFlyerSDK/flutter_appsflyer_sdk
66

0 commit comments

Comments
 (0)