diff --git a/.github/workflows/deploy-to-QA.yml b/.github/workflows/deploy-to-QA.yml index f43378f3..4ed8112f 100644 --- a/.github/workflows/deploy-to-QA.yml +++ b/.github/workflows/deploy-to-QA.yml @@ -50,9 +50,10 @@ jobs: SLACK_TOKEN: ${{ secrets.CI_SLACK_TOKEN }} run: | echo "I'm here 1" - ios_sdk_version=$(cat README.md | grep 'iOS AppsFlyerSDK \*\*v[0-9].[0-9]+.[0-9]+\*\*') + ios_sdk_version=$(cat README.md | grep 'iOS AppsFlyerSDK' | grep -Eo '[0-9].[0-9]+.[0-9]+') + echo "The ios sdk version is: $ios_sdk_version" echo "I'm here 2" - android_sdk_version=$(cat README.md | grep 'Android AppsFlyerSDK \*\*v[0-9].[0-9]+.[0-9]+\*\*') + android_sdk_version=$(cat README.md | grep 'Android AppsFlyerSDK' | grep -Eo '[0-9].[0-9]+.[0-9]+') echo "I'm here 3" CHANGES=$(cat "${{env.JIRA_FIXED_VERSION}}-releasenotes".txt) echo "I'm here 4" diff --git a/.github/workflows/release-Production-workflow.yml b/.github/workflows/release-Production-workflow.yml index fa9a7a7f..4e57f840 100644 --- a/.github/workflows/release-Production-workflow.yml +++ b/.github/workflows/release-Production-workflow.yml @@ -75,8 +75,8 @@ jobs: run: | chmod +x .github/workflows/scripts/releaseNotesGenerator.sh .github/workflows/scripts/releaseNotesGenerator.sh $JIRA_TOKEN "$JIRA_FIXED_VERSION" - ios_sdk_version=$(cat README.md | grep 'iOS AppsFlyerSDK \*\*v[0-9].[0-9]+.[0-9]+\*\*') - android_sdk_version=$(cat README.md | grep 'Android AppsFlyerSDK \*\*v[0-9].[0-9]+.[0-9]+\*\*') + android_sdk_version=$(cat README.md | grep 'Android AppsFlyerSDK' | grep -Eo '[0-9].[0-9]+.[0-9]+') + ios_sdk_version=$(cat README.md | grep 'iOS AppsFlyerSDK' | grep -Eo '[0-9].[0-9]+.[0-9]+') CHANGES=$(cat "$JIRA_FIXED_VERSION-releasenotes".txt) curl -X POST -H 'Content-type: application/json' --data '{"jira_fixed_version": "'"${{env.JIRA_FIXED_VERSION}}"'", "deploy_type": "Production", "install_tag": "latest", "git_branch": "'"$RELEASE_BRACH_NAME"'", "changes_and_fixes": "'"$CHANGES"'", "android_dependency": "'"$android_sdk_version"'", "ios_dependency": "'"$ios_sdk_version"'"}' "$SLACK_TOKEN" diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 8e4ab0eb..21e01f2b 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,3 +1,10 @@ +## 6.10.31 + Release date: *2023-06-21* + +- Cordova >> Release 6.10.31 +- Cordova Plugin >> Android >> plugin.xml file settings doesn't merge tag in App's AndroidManifest.xml +- Cordova Plugin >> User Invite >> Brand domain setup is not supported + ## 6.10.3 Release date: *2023-05-10* diff --git a/examples/cordovatestapp/www/index.html b/examples/cordovatestapp/www/index.html index c45eb217..8dfd83af 100644 --- a/examples/cordovatestapp/www/index.html +++ b/examples/cordovatestapp/www/index.html @@ -23,6 +23,7 @@ + diff --git a/examples/cordovatestapp/www/js/buttons.js b/examples/cordovatestapp/www/js/buttons.js index 4bf70b1a..2c3b193c 100644 --- a/examples/cordovatestapp/www/js/buttons.js +++ b/examples/cordovatestapp/www/js/buttons.js @@ -2,6 +2,7 @@ let logEventBtn = document.getElementById('logEvent'); let logCrossPromotionAndOpenStoreBtn = document.getElementById('logCrossPromotionAndOpenStore'); let setCurrencyBtn = document.getElementById('setCurrency'); +let generateUserInviteBtn = document.getElementById('generateUserInvite'); let setUserIdBtn = document.getElementById('setUserId'); let setUserEmailsBtn = document.getElementById('setUserEmails'); let setPhoneBtn = document.getElementById('setPhone'); @@ -12,6 +13,9 @@ let customDomainsBtn = document.getElementById('customDomains'); let enableFBBtn = document.getElementById('enableFB'); let addPushNotificationPathBtn = document.getElementById('addPushNotificationPath'); +if (generateUserInviteBtn) { + generateUserInviteBtn.addEventListener('click', generateUserInvite, false); +} if (logEventBtn) { logEventBtn.addEventListener('click', logEvent, false); } @@ -53,6 +57,19 @@ function callBackFunction(id) { alert('received: ' + id); } +function generateUserInvite(){ + window.plugins.appsFlyer.setAppInviteOneLinkID("em3J"); + let args = { + "campaign": "testCampaign", + "referrerName": "testReferrer", + "referrerImageURL": "testReferrerImageURL", + "baseDeepLink": "testBaseDeepLink", + "brandDomain": "noakogonia.afsdktests.com", + "userParams": {"a":"b"} + }; + window.plugins.appsFlyer.generateInviteLink(args, callBackFunction, callBackFunction); +} + function setCurrency(currencyId) { currencyId = 'USD'; window.plugins.appsFlyer.setCurrencyCode(currencyId); diff --git a/package.json b/package.json index 72e5aeb7..2a095cf1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cordova-plugin-appsflyer-sdk", - "version": "6.10.3", + "version": "6.10.31", "description": "Cordova AppsFlyer SDK Plugin", "cordova": { "id": "cordova-plugin-appsflyer-sdk", diff --git a/plugin.xml b/plugin.xml index 1eeb8ba0..9ed77dc7 100644 --- a/plugin.xml +++ b/plugin.xml @@ -21,7 +21,7 @@ + version="6.10.31-rc4"> AppsFlyer Cordova Plugin AppsFlyer Apache 2.0 @@ -47,7 +47,7 @@ - + @@ -95,4 +95,5 @@ + diff --git a/src/android/com/appsflyer/cordova/plugin/AppsFlyerConstants.java b/src/android/com/appsflyer/cordova/plugin/AppsFlyerConstants.java index 167e2ea1..02e5a25c 100644 --- a/src/android/com/appsflyer/cordova/plugin/AppsFlyerConstants.java +++ b/src/android/com/appsflyer/cordova/plugin/AppsFlyerConstants.java @@ -6,7 +6,7 @@ public class AppsFlyerConstants { - final static String PLUGIN_VERSION = "6.10.3"; + final static String PLUGIN_VERSION = "6.10.31"; final static String NO_DEVKEY_FOUND = "AppsFlyer 'devKey' is missing or empty"; final static String NO_GCM_PROJECT_NUMBER_PROVIDED = "No GCM Project number provided"; final static String SUCCESS = "Success"; @@ -42,9 +42,10 @@ public class AppsFlyerConstants { final static String INVITE_CHANNEL = "channel"; final static String INVITE_CAMPAIGN = "campaign"; final static String INVITE_REFERRER = "referrerName"; - final static String INVITE_IMAGEURL = "referreImageURL"; + final static String INVITE_IMAGEURL = "referrerImageURL"; final static String INVITE_CUSTOMERID = "customerID"; final static String INVITE_DEEPLINK = "baseDeepLink"; + final static String INVITE_BRAND_DOMAIN = "brandDomain"; final static String PROMOTE_ID = "promotedAppId"; //RECEIPT VALIDATION diff --git a/src/android/com/appsflyer/cordova/plugin/AppsFlyerPlugin.java b/src/android/com/appsflyer/cordova/plugin/AppsFlyerPlugin.java index 74a3a423..5a181fc3 100644 --- a/src/android/com/appsflyer/cordova/plugin/AppsFlyerPlugin.java +++ b/src/android/com/appsflyer/cordova/plugin/AppsFlyerPlugin.java @@ -23,6 +23,7 @@ import static com.appsflyer.cordova.plugin.AppsFlyerConstants.INVITE_FAIL; import static com.appsflyer.cordova.plugin.AppsFlyerConstants.INVITE_IMAGEURL; import static com.appsflyer.cordova.plugin.AppsFlyerConstants.INVITE_REFERRER; +import static com.appsflyer.cordova.plugin.AppsFlyerConstants.INVITE_BRAND_DOMAIN; import static com.appsflyer.cordova.plugin.AppsFlyerConstants.NO_CUSTOMER_ID; import static com.appsflyer.cordova.plugin.AppsFlyerConstants.NO_DEVKEY_FOUND; import static com.appsflyer.cordova.plugin.AppsFlyerConstants.NO_EVENT_NAME_FOUND; @@ -716,6 +717,7 @@ private boolean generateInviteLink(JSONArray args, CallbackContext callbackConte String referrerImageUrl = null; String customerID = null; String baseDeepLink = null; + String brandDomain = null; try { final JSONObject options = args.getJSONObject(0); @@ -726,6 +728,7 @@ private boolean generateInviteLink(JSONArray args, CallbackContext callbackConte referrerImageUrl = options.optString(INVITE_IMAGEURL, ""); customerID = options.optString(INVITE_CUSTOMERID, ""); baseDeepLink = options.optString(INVITE_DEEPLINK, ""); + brandDomain = options.optString(INVITE_BRAND_DOMAIN, ""); Context context = this.cordova.getActivity().getApplicationContext(); LinkGenerator linkGenerator = ShareInviteHelper.generateInviteUrl(context); @@ -748,6 +751,9 @@ private boolean generateInviteLink(JSONArray args, CallbackContext callbackConte if (baseDeepLink != null && baseDeepLink != "") { linkGenerator.setBaseDeeplink(baseDeepLink); } + if (brandDomain != null && brandDomain != "") { + linkGenerator.setBrandDomain(brandDomain); + } if (options.length() > 1 && !options.get("userParams").equals("")) { JSONObject jsonCustomValues = options.getJSONObject("userParams"); diff --git a/src/ios/AppsFlyerPlugin.h b/src/ios/AppsFlyerPlugin.h index 59751350..b083c0b4 100755 --- a/src/ios/AppsFlyerPlugin.h +++ b/src/ios/AppsFlyerPlugin.h @@ -50,6 +50,7 @@ #define afUiImageUrl @"referrerImageUrl" #define afUiCustomerID @"customerID" #define afUiBaseDeepLink @"baseDeepLink" +#define afUiBrandDomain @"brandDomain" // Appsflyer native objects #define afConversionData @"onInstallConversionDataListener" diff --git a/src/ios/AppsFlyerPlugin.m b/src/ios/AppsFlyerPlugin.m index 10f9e808..8f7d0d07 100755 --- a/src/ios/AppsFlyerPlugin.m +++ b/src/ios/AppsFlyerPlugin.m @@ -85,7 +85,7 @@ - (void)initSdk:(CDVInvokedUrlCommand*)command [AppsFlyerLib shared].deepLinkDelegate = self; } - [[AppsFlyerLib shared] setPluginInfoWith:AFSDKPluginCordova pluginVersion:@"6.10.3" additionalParams:nil]; + [[AppsFlyerLib shared] setPluginInfoWith:AFSDKPluginCordova pluginVersion:@"6.10.31" additionalParams:nil]; [AppsFlyerLib shared].appleAppID = appId; [AppsFlyerLib shared].appsFlyerDevKey = devKey; [AppsFlyerLib shared].isDebug = isDebug; @@ -347,6 +347,7 @@ - (void)generateInviteLink:(CDVInvokedUrlCommand*)command { NSString *referrerImageUrl = nil; NSString *customerID = nil; NSString *baseDeepLink = nil; + NSString *brandDomain = nil; if (![inviteLinkOptions isKindOfClass:[NSNull class]]) { channel = (NSString*)[inviteLinkOptions objectForKey: afUiChannel]; @@ -355,6 +356,7 @@ - (void)generateInviteLink:(CDVInvokedUrlCommand*)command { referrerImageUrl = (NSString*)[inviteLinkOptions objectForKey: afUiImageUrl]; customerID = (NSString*)[inviteLinkOptions objectForKey: afUiCustomerID]; baseDeepLink = (NSString*)[inviteLinkOptions objectForKey: afUiBaseDeepLink]; + brandDomain = (NSString*)[inviteLinkOptions objectForKey: afUiBrandDomain]; [AppsFlyerShareInviteHelper generateInviteUrlWithLinkGenerator:^AppsFlyerLinkGenerator * _Nonnull(AppsFlyerLinkGenerator * _Nonnull generator) { if (channel != nil && ![channel isEqualToString:@""]) { @@ -375,6 +377,9 @@ - (void)generateInviteLink:(CDVInvokedUrlCommand*)command { if (baseDeepLink != nil && ![baseDeepLink isEqualToString:@""]) { [generator setDeeplinkPath:baseDeepLink]; } + if (brandDomain != nil && ![brandDomain isEqualToString:@""]) { + [generator setBrandDomain:brandDomain]; + } if (![customParams isKindOfClass:[NSNull class]]) { [generator addParameters:customParams];