From 0a5b92fc5ae8468eb16de6f12422700b8eb2f0af Mon Sep 17 00:00:00 2001 From: uerceg Date: Tue, 5 Sep 2023 16:54:19 +0200 Subject: [PATCH 1/6] fix: guard against subsequent active state method calls --- Adjust/ADJActivityHandler.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Adjust/ADJActivityHandler.m b/Adjust/ADJActivityHandler.m index e9abbcc31..cd571ef60 100644 --- a/Adjust/ADJActivityHandler.m +++ b/Adjust/ADJActivityHandler.m @@ -3006,6 +3006,10 @@ - (BOOL)updateAttStatus:(int)readAttStatus { - (void)setAppInActiveState:(BOOL)activeState { dispatch_async(self.waitingForAttQueue, ^{ + // skip in case active state didn't change + if (self.activeState == activeState) { + return; + } self.activeState = activeState; if (self.activeState) { [self startWaitingForAttStatus]; From 4fc2a6a1dac830e57edf59916ae582b419284ab0 Mon Sep 17 00:00:00 2001 From: uerceg Date: Tue, 5 Sep 2023 17:00:07 +0200 Subject: [PATCH 2/6] feat: improve att constent delay logging --- Adjust/ADJActivityHandler.m | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Adjust/ADJActivityHandler.m b/Adjust/ADJActivityHandler.m index cd571ef60..88e7aa3f0 100644 --- a/Adjust/ADJActivityHandler.m +++ b/Adjust/ADJActivityHandler.m @@ -142,6 +142,12 @@ - (id)initWithConfig:(ADJConfig *)adjustConfig [ADJAdjustFactory.logger warn:@"AdServices info reading has been switched off"]; } + // check if ATT consent delay has been configured + if (adjustConfig.attConsentWaitingInterval > 0) { + [ADJAdjustFactory.logger info:@"ATT consent waiting interval has been configured to %d", + adjustConfig.attConsentWaitingInterval]; + } + self.adjustConfig = adjustConfig; self.savedPreLaunch = savedPreLaunch; self.adjustDelegate = adjustConfig.delegate; @@ -3085,7 +3091,7 @@ - (void)checkAttStatusPeriodic { NSUInteger seconds = [ADJUserDefaults getAttWaitingRemainingSeconds]; if (seconds == 0) { - [self.activityHandler.logger warn:@"ATT status waiting timeout elapsed - NO ATT STATUS FOUND"]; + [self.activityHandler.logger warn:@"ATT status waiting timeout elapsed without changing the state of consent"]; [self.activityHandler resumeActivityFromWaitingForAttStatus]; return; } From 5cc32156d00f2ec2b63635614da3a27641ca0fd0 Mon Sep 17 00:00:00 2001 From: uerceg Date: Tue, 5 Sep 2023 17:03:40 +0200 Subject: [PATCH 3/6] feat: update version number to 4.34.2 --- Adjust.podspec | 4 ++-- Adjust/ADJUtil.m | 2 +- Adjust/Adjust.h | 2 +- AdjustBridge/AdjustBridgeRegister.m | 2 +- VERSION | 2 +- examples/AdjustExample-Swift/Podfile.lock | 8 ++++---- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Adjust.podspec b/Adjust.podspec index 2ec1357bf..bf17fd8a8 100644 --- a/Adjust.podspec +++ b/Adjust.podspec @@ -1,11 +1,11 @@ Pod::Spec.new do |s| s.name = "Adjust" - s.version = "4.34.1" + s.version = "4.34.2" s.summary = "This is the iOS SDK of adjust. You can read more about it at http://adjust.com." s.homepage = "https://github.com/adjust/ios_sdk" s.license = { :type => 'MIT', :file => 'MIT-LICENSE' } s.author = { "Adjust" => "sdk@adjust.com" } - s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.34.1" } + s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.34.2" } s.ios.deployment_target = '9.0' s.tvos.deployment_target = '9.0' s.framework = 'SystemConfiguration' diff --git a/Adjust/ADJUtil.m b/Adjust/ADJUtil.m index bb19642ae..60601e5dd 100644 --- a/Adjust/ADJUtil.m +++ b/Adjust/ADJUtil.m @@ -35,7 +35,7 @@ static NSRegularExpression *shortUniversalLinkRegex = nil; static NSRegularExpression *excludedDeeplinkRegex = nil; -static NSString * const kClientSdk = @"ios4.34.1"; +static NSString * const kClientSdk = @"ios4.34.2"; static NSString * const kDeeplinkParam = @"deep_link="; static NSString * const kSchemeDelimiter = @"://"; static NSString * const kDefaultScheme = @"AdjustUniversalScheme"; diff --git a/Adjust/Adjust.h b/Adjust/Adjust.h index 95b7335af..7180fb779 100644 --- a/Adjust/Adjust.h +++ b/Adjust/Adjust.h @@ -2,7 +2,7 @@ // Adjust.h // Adjust SDK // -// V4.34.1 +// V4.34.2 // Created by Christian Wellenbrock (@wellle) on 23rd July 2013. // Copyright (c) 2012-2021 Adjust GmbH. All rights reserved. // diff --git a/AdjustBridge/AdjustBridgeRegister.m b/AdjustBridge/AdjustBridgeRegister.m index 5729bf3f4..647daf69a 100644 --- a/AdjustBridge/AdjustBridgeRegister.m +++ b/AdjustBridge/AdjustBridgeRegister.m @@ -275,7 +275,7 @@ + (NSString *)adjust_js { if (this.sdkPrefix) { return this.sdkPrefix; } else { - return 'web-bridge4.34.1'; + return 'web-bridge4.34.2'; } }, setTestOptions: function(testOptions) { diff --git a/VERSION b/VERSION index 516b3249d..e5598fd26 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.34.1 +4.34.2 diff --git a/examples/AdjustExample-Swift/Podfile.lock b/examples/AdjustExample-Swift/Podfile.lock index 6bd4d76d4..555d34494 100644 --- a/examples/AdjustExample-Swift/Podfile.lock +++ b/examples/AdjustExample-Swift/Podfile.lock @@ -1,7 +1,7 @@ PODS: - - Adjust (4.34.1): - - Adjust/Core (= 4.34.1) - - Adjust/Core (4.34.1) + - Adjust (4.34.2): + - Adjust/Core (= 4.34.2) + - Adjust/Core (4.34.2) DEPENDENCIES: - Adjust (from `../../`) @@ -11,7 +11,7 @@ EXTERNAL SOURCES: :path: "../../" SPEC CHECKSUMS: - Adjust: 1410b6ccbce29c91b8e88064186a7b103244fa43 + Adjust: e633c0cb917deeb2b00ac45bf9a4f34e6ece9477 PODFILE CHECKSUM: 4c79da456db9adb90cdd42adc7f721c7bb6490cd From 41332b14a82cfd6f5125279b70bc23173a8f895a Mon Sep 17 00:00:00 2001 From: uerceg Date: Tue, 5 Sep 2023 17:11:34 +0200 Subject: [PATCH 4/6] docs: update CHANGELOG --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f91b5fa2..b8f077406 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +### Version 4.34.2 (6th September 2023) + +#### Added +- Added more logging around ATT delay timer feature to indicate that it's activated. + +#### Fixed +- Fixed issue where subsequent calls to active state callback would make ATT delay timer elapse sooner. + +--- + ### Version 4.34.1 (18th August 2023) #### Fixed - Fixed `ADJPurchase.h` file not found issue via SPM installation (https://github.com/adjust/ios_sdk/issues/673). From 89bcaddde22e5ca42b3523522c542bcc4081e08e Mon Sep 17 00:00:00 2001 From: Genady Buchatsky Date: Tue, 22 Aug 2023 12:38:43 +0200 Subject: [PATCH 5/6] chore: add logs to ATT delayed start logic --- Adjust/ADJActivityHandler.m | 4 +++- Adjust/ADJPackageHandler.m | 5 +---- Adjust/ADJPurchaseVerificationHandler.m | 1 + Adjust/ADJSdkClickHandler.m | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Adjust/ADJActivityHandler.m b/Adjust/ADJActivityHandler.m index 88e7aa3f0..6d4b67238 100644 --- a/Adjust/ADJActivityHandler.m +++ b/Adjust/ADJActivityHandler.m @@ -3068,6 +3068,7 @@ - (BOOL)shouldWaitForAttStatus { // We have to set the configured waiting timeout and start ATT status monitoring logic. [ADJUserDefaults setAttWaitingRemainingSeconds:timeoutSec]; + return YES; } @@ -3084,6 +3085,7 @@ - (void)checkAttStatusPeriodic { // check current ATT status int attStatus = [ADJUtil attStatus]; if (attStatus != 0) { + [self.activityHandler.logger info:@"ATT consent status udated to [%d]", attStatus]; [ADJUserDefaults removeAttWaitingRemainingSeconds]; [self.activityHandler resumeActivityFromWaitingForAttStatus]; return; @@ -3091,7 +3093,7 @@ - (void)checkAttStatusPeriodic { NSUInteger seconds = [ADJUserDefaults getAttWaitingRemainingSeconds]; if (seconds == 0) { - [self.activityHandler.logger warn:@"ATT status waiting timeout elapsed without changing the state of consent"]; + [self.activityHandler.logger warn:@"ATT status waiting timeout elapsed without receiving any consent status update"]; [self.activityHandler resumeActivityFromWaitingForAttStatus]; return; } diff --git a/Adjust/ADJPackageHandler.m b/Adjust/ADJPackageHandler.m index 1fcf5a95a..056031db5 100644 --- a/Adjust/ADJPackageHandler.m +++ b/Adjust/ADJPackageHandler.m @@ -300,11 +300,8 @@ - (void)updatePackagesI:(ADJPackageHandler *)selfI } - (void)updatePackagesWithIdfaAndAttStatusI:(ADJPackageHandler *)selfI { - int attStatus = [ADJUtil attStatus]; - [selfI.logger debug:@"Updating package handler queue"]; - [selfI.logger verbose:@"ATT Status %ld", (long)attStatus]; - + [selfI.logger debug:@"Updating package queue with idfa and att_status: %d", (long)attStatus]; // create package queue copy for new state of array NSMutableArray *packageQueueCopy = [NSMutableArray array]; diff --git a/Adjust/ADJPurchaseVerificationHandler.m b/Adjust/ADJPurchaseVerificationHandler.m index 51b1c5950..d60c0eb92 100644 --- a/Adjust/ADJPurchaseVerificationHandler.m +++ b/Adjust/ADJPurchaseVerificationHandler.m @@ -174,6 +174,7 @@ - (void)sendNextPurchaseVerificationPackageI:(ADJPurchaseVerificationHandler *)s - (void)updatePackagesWithIdfaAndAttStatusI:(ADJPurchaseVerificationHandler *)selfI { int attStatus = [ADJUtil attStatus]; + [selfI.logger debug:@"Updating purchase_verification queue with idfa and att_status: %d", attStatus]; for (ADJActivityPackage *activityPackage in selfI.packageQueue) { [ADJPackageBuilder parameters:activityPackage.parameters setInt:attStatus diff --git a/Adjust/ADJSdkClickHandler.m b/Adjust/ADJSdkClickHandler.m index b5176b509..a91f1cc79 100644 --- a/Adjust/ADJSdkClickHandler.m +++ b/Adjust/ADJSdkClickHandler.m @@ -195,8 +195,8 @@ - (void)sendNextSdkClickI:(ADJSdkClickHandler *)selfI { } - (void)updatePackagesWithIdfaAndAttStatusI:(ADJSdkClickHandler *)selfI { - int attStatus = [ADJUtil attStatus]; + [selfI.logger debug:@"Updating sdk_click queue with idfa and att_status: %d", attStatus]; for (ADJActivityPackage *activityPackage in selfI.packageQueue) { [ADJPackageBuilder parameters:activityPackage.parameters setInt:attStatus From 41294ac8cb229f4823b642826f84a74545bad5f1 Mon Sep 17 00:00:00 2001 From: uerceg Date: Wed, 6 Sep 2023 08:28:12 +0200 Subject: [PATCH 6/6] chore: update logs formatting --- Adjust/ADJActivityHandler.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Adjust/ADJActivityHandler.m b/Adjust/ADJActivityHandler.m index 6d4b67238..191f4bcd8 100644 --- a/Adjust/ADJActivityHandler.m +++ b/Adjust/ADJActivityHandler.m @@ -3085,7 +3085,7 @@ - (void)checkAttStatusPeriodic { // check current ATT status int attStatus = [ADJUtil attStatus]; if (attStatus != 0) { - [self.activityHandler.logger info:@"ATT consent status udated to [%d]", attStatus]; + [self.activityHandler.logger info:@"ATT consent status udated to: %d", attStatus]; [ADJUserDefaults removeAttWaitingRemainingSeconds]; [self.activityHandler resumeActivityFromWaitingForAttStatus]; return;