From 9e9c8875e75a589405c5fc88c29fd3a10017976d Mon Sep 17 00:00:00 2001 From: sultanmyrza Date: Fri, 23 Feb 2024 01:38:05 +0800 Subject: [PATCH 1/4] fix(iOS): remove $AppsFlyerStrictMode from Podfile --- ios/App/Podfile | 2 -- ios/App/Podfile.lock | 10 ++++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ios/App/Podfile b/ios/App/Podfile index f48d85e60..cf112eed9 100644 --- a/ios/App/Podfile +++ b/ios/App/Podfile @@ -3,8 +3,6 @@ require_relative '../../node_modules/@capacitor/ios/scripts/pods_helpers' platform :ios, '15.6' use_frameworks! -$AppsFlyerStrictMode=true - # workaround to avoid Xcode caching of Pods that requires # Product -> Clean Build Folder after new Cordova plugins installed # Requires CocoaPods 1.6 or newer diff --git a/ios/App/Podfile.lock b/ios/App/Podfile.lock index c8bc5ac37..63d6ef47e 100644 --- a/ios/App/Podfile.lock +++ b/ios/App/Podfile.lock @@ -1,8 +1,10 @@ PODS: - AppsflyerCapacitorPlugin (6.12.1): - - AppsFlyerFramework/Strict (= 6.12.1) + - AppsFlyerFramework (= 6.12.1) - Capacitor - - AppsFlyerFramework/Strict (6.12.1) + - AppsFlyerFramework (6.12.1): + - AppsFlyerFramework/Main (= 6.12.1) + - AppsFlyerFramework/Main (6.12.1) - Capacitor (5.0.5): - CapacitorCordova - CapacitorApp (5.0.3): @@ -208,7 +210,7 @@ EXTERNAL SOURCES: :path: "../../node_modules/@numbersprotocol/preview-video" SPEC CHECKSUMS: - AppsflyerCapacitorPlugin: 3cc3df807ba8f28f7ef44252b0107ffc2b4cb994 + AppsflyerCapacitorPlugin: 0094cd9f754091410f30237ab7f21b2604db12f5 AppsFlyerFramework: e29b63fc5441400a38a31c5501c1da500b9d53d0 Capacitor: b1248915663add1bd6567e2b67c1c1fa3abcf5e8 CapacitorApp: 7a5dec8b33573707164b293475d5c89ba684364a @@ -246,6 +248,6 @@ SPEC CHECKSUMS: NumbersprotocolPreviewVideo: 2cfa3fa666c83850903a220d74dc855ac5b6a520 PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4 -PODFILE CHECKSUM: bc27c544feb7d8f533aeb72cadce60b633a90ab4 +PODFILE CHECKSUM: 617daf5c0347d391c6f083d98e214c77113572c6 COCOAPODS: 1.14.3 From 8ef81854ff04f79810029d1d7a45bd1986dd83ff Mon Sep 17 00:00:00 2001 From: sultanmyrza Date: Fri, 23 Feb 2024 01:45:18 +0800 Subject: [PATCH 2/4] Ensure push notification confirmation dialog follows ATT confirmation dialog As the AppsFlyer team mentions, the AppsFlyer SDK should be initialized as soon as possible to collect potential events. Therefore, we initialize the AppsFlyer SDK first. However, before that, we need to display the ATT confirmation dialog. Only after that should we show the push notification confirmation dialog. This sequencing is necessary because iOS does not allow multiple native dialogs to be displayed simultaneously. If we attempt to open a native dialog while another is already on the screen, the system forcefully closes the previous dialog, as mentioned here: [https://pub.dev/packages/app_tracking_transparency#important-notice]. --- src/app/app.component.ts | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 8f18f56b6..08908e5a9 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -42,25 +42,14 @@ export class AppComponent { private readonly inAppStoreService: InAppStoreService, private readonly zone: NgZone, private readonly router: Router, - appsFlyerService: AppsFlyerService, - notificationService: NotificationService, - pushNotificationService: PushNotificationService, - langaugeService: LanguageService, - diaBackendAuthService: DiaBackendAuthService, - diaBackendNotificationService: DiaBackendNotificationService, - uploadService: DiaBackendAssetUploadingService + private readonly appsFlyerService: AppsFlyerService, + private readonly notificationService: NotificationService, + private readonly pushNotificationService: PushNotificationService, + private readonly langaugeService: LanguageService, + private readonly diaBackendAuthService: DiaBackendAuthService, + private readonly diaBackendNotificationService: DiaBackendNotificationService, + private readonly uploadService: DiaBackendAssetUploadingService ) { - appsFlyerService.initAppsFlyerSDK(); - notificationService.requestPermission(); - pushNotificationService.register(); - langaugeService.initialize(); - diaBackendAuthService.initialize$().pipe(untilDestroyed(this)).subscribe(); - uploadService.initialize$().pipe(untilDestroyed(this)).subscribe(); - diaBackendNotificationService - .initialize$() - .pipe(untilDestroyed(this)) - .subscribe(); - this.inAppStoreService.initialize(); this.initializeApp(); this.initializeDeepLinking(); this.restoreAppState(); @@ -84,6 +73,21 @@ export class AppComponent { await this.platform.ready(); AppComponent.setDarkMode(true); await SplashScreen.hide(); + + await this.appsFlyerService.initAppsFlyerSDK(); + this.notificationService.requestPermission(); + this.pushNotificationService.register(); + this.langaugeService.initialize(); + this.diaBackendAuthService + .initialize$() + .pipe(untilDestroyed(this)) + .subscribe(); + this.uploadService.initialize$().pipe(untilDestroyed(this)).subscribe(); + this.diaBackendNotificationService + .initialize$() + .pipe(untilDestroyed(this)) + .subscribe(); + this.inAppStoreService.initialize(); } async initializeDeepLinking() { From 568218482f30b9cb5d5e1932bd1fc7609b825961 Mon Sep 17 00:00:00 2001 From: sultanmyrza Date: Fri, 23 Feb 2024 15:49:17 +0800 Subject: [PATCH 3/4] chore: bump app version to 0.89.3 --- android/app/build.gradle | 4 ++-- ios/App/App.xcodeproj/project.pbxproj | 8 ++++---- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 9803a9514..5be9da2c0 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "io.numbersprotocol.capturelite" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 892 - versionName "0.89.2" + versionCode 893 + versionName "0.89.3" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildFeatures { diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj index b62397ce9..76dcba221 100644 --- a/ios/App/App.xcodeproj/project.pbxproj +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -368,13 +368,13 @@ CODE_SIGN_ENTITLEMENTS = App/App.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 892; + CURRENT_PROJECT_VERSION = 893; DEVELOPMENT_TEAM = G7NB5YCKAP; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = G7NB5YCKAP; INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 0.89.2; + MARKETING_VERSION = 0.89.3; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; PRODUCT_BUNDLE_IDENTIFIER = io.numbersprotocol.capturelite; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -395,13 +395,13 @@ CODE_SIGN_ENTITLEMENTS = App/App.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 892; + CURRENT_PROJECT_VERSION = 893; DEVELOPMENT_TEAM = G7NB5YCKAP; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = G7NB5YCKAP; INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 0.89.2; + MARKETING_VERSION = 0.89.3; PRODUCT_BUNDLE_IDENTIFIER = io.numbersprotocol.capturelite; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = NumbersAppDistributionV4; diff --git a/package-lock.json b/package-lock.json index 540791ccc..15188047f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "capture-lite", - "version": "0.89.2", + "version": "0.89.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "capture-lite", - "version": "0.89.2", + "version": "0.89.3", "dependencies": { "packages": "^0.0.8", "@angular/animations": "^14.2.0", diff --git a/package.json b/package.json index b7c9ad719..5feb6529e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "capture-lite", - "version": "0.89.2", + "version": "0.89.3", "author": "numbersprotocol", "homepage": "https://numbersprotocol.io/", "scripts": { From 253a172fd3cd525c261a59bc9f254f84f66ceda5 Mon Sep 17 00:00:00 2001 From: sultanmyrza Date: Fri, 23 Feb 2024 15:49:33 +0800 Subject: [PATCH 4/4] chore: update CHANGELOG.md for 0.89.3 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09fd29f68..aeefbd96b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.89.2] - 2024-02-21 +### Fixed + +1. Fix appsflyer iOS integration test IDFA not collected [#3223](https://github.com/numbersprotocol/capture-lite/pull/3223) + +## [0.89.2] - 2024-02-21 + ### Added 1. Feature track new app users shutter click (#3215)