Skip to content

Commit 25a3f54

Browse files
authored
Merge pull request #648 from AppsFlyerSDK/dev/DELIVERY-98737/6.17.2-api-updates
6.17.3 bump and api updates
2 parents 885e311 + a7528a0 commit 25a3f54

24 files changed

+1947
-191
lines changed

.github/ISSUE_TEMPLATE/appsflyer-issue-template.md

Lines changed: 0 additions & 46 deletions
This file was deleted.
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: AppsFlyer Issue
2+
description: File an issue for AppsFlyer
3+
labels: []
4+
assignees: []
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
**⚠️ Before submitting, please read:**
10+
**For the fastest and most effective support, please contact the AppsFlyer support team using the Customer Assistant Chatbot. Only open a GitHub issue here if you believe this is a widespread bug affecting multiple users.**
11+
12+
👉 When you open a GitHub issue, please also open a support ticket with AppsFlyer support, and make sure to include a link to this GitHub issue in your support ticket. This helps us coordinate and resolve your problem more efficiently.
13+
14+
For troubleshooting or product guidance, use the [Customer Assistant Chatbot](https://support.appsflyer.com/hc/en-us/articles/23583984402193-Using-the-Customer-Assistant-Chatbot) as described in [this article](https://support.appsflyer.com/hc/en-us/articles/23583984402193-Using-the-Customer-Assistant-Chatbot).
15+
16+
---
17+
ℹ Please fill out this form as completely as possible to help us resolve your issue quickly.
18+
19+
- type: input
20+
id: plugin-version
21+
attributes:
22+
label: Plugin Version
23+
description: What version of the AppsFlyer plugin are you using? (e.g. 6.17.0)
24+
placeholder: e.g. 6.17.0
25+
validations:
26+
required: true
27+
28+
- type: input
29+
id: app-id
30+
attributes:
31+
label: App ID
32+
description: (Optional) Your app's ID. This helps us identify your account and provide optimal support.
33+
placeholder: e.g. com.example.app or id1234567890
34+
validations:
35+
required: false
36+
37+
- type: input
38+
id: email
39+
attributes:
40+
label: Email
41+
description: (Optional) Your AppsFlyer account email. This helps us identify your account and provide optimal support.
42+
placeholder: e.g. [email protected]
43+
validations:
44+
required: false
45+
46+
- type: input
47+
id: platform
48+
attributes:
49+
label: Platform(s)
50+
description: On which platform(s) are you having the issue? (e.g. iOS, Android)
51+
placeholder: e.g. iOS, Android
52+
validations:
53+
required: true
54+
55+
- type: textarea
56+
id: what-did-you-do
57+
attributes:
58+
label: What did you do?
59+
description: Describe the steps you took before encountering the issue.
60+
placeholder: e.g. Ran `pod install`
61+
validations:
62+
required: true
63+
64+
- type: textarea
65+
id: expected-behavior
66+
attributes:
67+
label: What did you expect to happen?
68+
description: Describe what you expected to happen.
69+
placeholder: e.g. Event to be logged
70+
validations:
71+
required: true
72+
73+
- type: textarea
74+
id: actual-behavior
75+
attributes:
76+
label: What happened instead?
77+
description: Describe what actually happened.
78+
placeholder: e.g. No uninstalls on my dashboard
79+
validations:
80+
required: true
81+
82+
- type: textarea
83+
id: other-info
84+
attributes:
85+
label: Any other relevant information
86+
description: Add any other context about the problem here.
87+
placeholder: e.g. The issue started when we upgraded the plugin to the latest version
88+
validations:
89+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
blank_issues_enabled: false
2+
3+
contact_links:
4+
- name: AppsFlyer Support (Customer Assistant Chatbot)
5+
url: https://support.appsflyer.com/hc/en-us/articles/23583984402193-Using-the-Customer-Assistant-Chatbot
6+
about: For the fastest and most effective support, please contact the AppsFlyer support team using the Customer Assistant Chatbot.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# This workflow triggers the org-wide reusable workflow to close inactive issues on a schedule
2+
on:
3+
schedule:
4+
- cron: "0 10 * * *" # Runs daily at 10:00 UTC
5+
workflow_dispatch:
6+
7+
jobs:
8+
close-issues:
9+
uses: AppsFlyerSDK/github-common-workflow-and-template/.github/workflows/close_inactive_issues.yml@main
10+
secrets: inherit
Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,11 @@
1-
# This workflow creates new comment from template to an issue
2-
# if it was labled as 'support'
3-
4-
name: Add comment
1+
# This workflow triggers the org-wide reusable workflow to respond to issues labeled as 'support'
52
on:
63
issues:
74
types:
85
- labeled
6+
workflow_dispatch:
7+
98
jobs:
109
add-comment:
11-
if: github.event.label.name == 'support'
12-
runs-on: ubuntu-latest
13-
permissions:
14-
issues: write
15-
steps:
16-
- name: Add comment
17-
uses: peter-evans/create-or-update-comment@a35cf36e5301d70b76f316e867e7788a55a31dae
18-
with:
19-
issue-number: ${{ github.event.issue.number }}
20-
body: |
21-
👋 Hi @${{ github.event.issue.user.login }} and Thank you for reaching out to us.
22-
You can contact AppsFlyer support through the Customer Assistant Chatbot for assistance with troubleshooting issues or product guidance.
23-
To do so, please follow [this article](https://support.appsflyer.com/hc/en-us/articles/23583984402193-Using-the-Customer-Assistant-Chatbot).
10+
uses: AppsFlyerSDK/github-common-workflow-and-template/.github/workflows/responseToSupportIssue.yml@main
11+
secrets: inherit
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# This workflow triggers the org-wide reusable workflow to respond to newly opened issues
2+
on:
3+
issues:
4+
types:
5+
- opened
6+
workflow_dispatch:
7+
8+
jobs:
9+
add-comment:
10+
uses: AppsFlyerSDK/github-common-workflow-and-template/.github/workflows/responseToSupportIssueOnOpen.yml@main
11+
secrets: inherit

CHANGELOG.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,34 @@
1+
## 6.17.5
2+
Release date: *2025-09-04*
3+
4+
- React Native >> Add new `disableAppSetId` API for Android platform
5+
- React Native >> Preparing new `validateAndLogInAppPurchase` beta API with AFPurchaseDetails support
6+
- React Native >> Update Android SDK to 6.17.3
7+
- React Native >> Update iOS SDK to 6.17.5
8+
- React Native >> Update Plugin to v6.17.5
9+
10+
## 6.17.2
11+
Release date: *2025-07-30*
12+
13+
- React Native >> Add Purchase Connector and Swift AppDelegate support to Expo config plugin
14+
- React Native >> expo 53 and RN 0.79 support
15+
- React Native >> Add Expo Android Purchase Connector support
16+
- React Native >> Fix withAppsFlyerAndroid configuration
17+
- React Native >> Update Plugin to v6.17.2
18+
19+
## 6.17.1
20+
Release date: *2025-07-01*
21+
22+
- React Native >> Update iOS Purchase Connector to 6.17.1
23+
- React Native >> Update Plugin to v6.17.1
24+
25+
## 6.17.0
26+
Release date: *2025-06-15*
27+
28+
- React Native >> Add Purchase Connector support with StoreKit2 option
29+
- React Native >> Update iOS & Android SDKs to 6.17.0
30+
- React Native >> Update Plugin to v6.17.0
31+
132
## 6.16.2
233
Release date: *2025-03-19*
334

Docs/RN_API.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ The list of available methods for this plugin is described below.
3131
- [setSharingFilter](#setsharingfilter)
3232
- [setSharingFilterForPartners](#setsharingfilterforpartners)
3333
- [validateAndLogInAppPurchase](#validateandloginapppurchase)
34+
<!-- - [validateAndLogInAppPurchase(NEW)](#validateandloginapppurchasev2) -->
3435
- [updateServerUninstallToken](#updateserveruninstalltoken)
3536
- [sendPushNotificationData](#sendpushnotificationdata)
3637
- [addPushNotificationDeepLinkPath](#addpushnotificationdeeplinkpath)
@@ -44,6 +45,7 @@ The list of available methods for this plugin is described below.
4445
- [setCollectIMEI](#setcollectimei)
4546
- [setDisableNetworkData `setDisableNetworkData(disable)`](#setdisablenetworkdata-setdisablenetworkdatadisable)
4647
- [performOnDeepLinking](#performondeeplinking)
48+
- [disableAppSetId](#disableappsetid)
4749
- [iOS Only APIs](#ios-only-apis)
4850
- [disableCollectASA](#disablecollectasa)
4951
- [disableIDFVCollection](#disableidfvcollection)
@@ -625,6 +627,53 @@ let info = {
625627
appsFlyer.validateAndLogInAppPurchase(info, res => console.log(res), err => console.log(err));
626628
```
627629

630+
---
631+
<!--
632+
## New In-App Purchase Validation API
633+
The new `validateAndLogInAppPurchase` API uses `AFPurchaseDetails` and `AFPurchaseType` enum for structured purchase validation.
634+
635+
### AFPurchaseType Enum
636+
637+
```javascript
638+
import { AFPurchaseType } from 'react-native-appsflyer';
639+
640+
AFPurchaseType.SUBSCRIPTION // "subscription"
641+
AFPurchaseType.ONE_TIME_PURCHASE // "one-time-purchase"
642+
```
643+
644+
### AFPurchaseDetails Interface
645+
646+
```typescript
647+
interface AFPurchaseDetails {
648+
purchaseType: AFPurchaseType; // Type of purchase
649+
transactionId: string; // Unique transaction identifier
650+
productId: string; // Product identifier
651+
}
652+
```
653+
654+
### Usage Example
655+
656+
```javascript
657+
import appsFlyer, { AFPurchaseType } from 'react-native-appsflyer';
658+
659+
const purchaseDetails = {
660+
purchaseType: AFPurchaseType.SUBSCRIPTION,
661+
transactionId: "google_play_purchase_token_123",
662+
productId: "com.example.app.premium_monthly"
663+
};
664+
665+
const additionalParams = {
666+
revenue: 9.99,
667+
currency: "USD"
668+
};
669+
670+
appsFlyer.validateAndLogInAppPurchaseV2(
671+
purchaseDetails,
672+
additionalParams,
673+
(result) => console.log(result)
674+
);
675+
```
676+
-->
628677
---
629678

630679
### updateServerUninstallToken
@@ -948,6 +997,25 @@ if (Platform.OS == 'android') {
948997

949998
appsFlyer.startSdk(); // <--- Here we send launch
950999
```
1000+
1001+
### disableAppSetId
1002+
`disableAppSetId()`
1003+
1004+
**Disable the collection of AppSet ID.**<br/>
1005+
**Must be called before calling start.**<br/>
1006+
1007+
*Example:*
1008+
```javascript
1009+
if (Platform.OS == 'android') {
1010+
appsFlyer.disableAppSetId();
1011+
appsFlyer.initSdk({
1012+
devKey: 'K2***********99',
1013+
isDebug: false,
1014+
appId: '41*****44',
1015+
});
1016+
}
1017+
```
1018+
9511019
## iOS Only APIs
9521020

9531021
### disableCollectASA

0 commit comments

Comments
 (0)