Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Adjust.podspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "Adjust"
s.module_name = "AdjustSdk"
s.version = "5.4.3"
s.version = "5.4.4"
s.summary = "This is the iOS SDK of Adjust. You can read more about it at https://adjust.com."
s.homepage = "https://github.com/adjust/ios_sdk"
s.license = { :type => 'MIT', :file => 'LICENSE' }
Expand Down
2 changes: 1 addition & 1 deletion Adjust/Adjust.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// Adjust.h
// Adjust SDK
//
// V5.4.3
// V5.4.4
// Created by Christian Wellenbrock (@wellle) on 23rd July 2013.
// Copyright (c) 2012-Present Adjust GmbH. All rights reserved.
//
Expand Down
24 changes: 14 additions & 10 deletions Adjust/Internal/ADJActivityHandler.m
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ @interface ADJActivityHandler()
@property (nonatomic, strong) ADJOdmManager *odmManager;

- (void)prepareDeeplinkI:(ADJActivityHandler *_Nullable)selfI
responseData:(ADJAttributionResponseData *_Nullable)attributionResponseData NS_EXTENSION_UNAVAILABLE_IOS("");
deeplink:(NSURL *_Nullable)deeplink NS_EXTENSION_UNAVAILABLE_IOS("");

@end

Expand Down Expand Up @@ -1546,6 +1546,10 @@ - (void)launchSessionResponseTasksI:(ADJActivityHandler *)selfI
[selfI.attributionHandler getAttribution];
}

if (sessionResponseData) {
[selfI prepareDeeplinkI:selfI deeplink:sessionResponseData.deeplink];
}

selfI.internalState.sessionResponseProcessed = YES;
}

Expand Down Expand Up @@ -1593,7 +1597,10 @@ - (void)launchAttributionResponseTasksI:(ADJActivityHandler *)selfI
withObject:attributionResponseData.attribution];
}

[selfI prepareDeeplinkI:selfI responseData:attributionResponseData];
if (attributionResponseData) {
[selfI prepareDeeplinkI:selfI deeplink:attributionResponseData.deeplink];
}

}

- (void)launchPurchaseVerificationResponseTasksI:(ADJActivityHandler *)selfI
Expand All @@ -1616,27 +1623,24 @@ - (void)launchPurchaseVerificationResponseTasksI:(ADJActivityHandler *)selfI
}

- (void)prepareDeeplinkI:(ADJActivityHandler *)selfI
responseData:(ADJAttributionResponseData *)attributionResponseData {
if (attributionResponseData == nil) {
return;
}
deeplink:(NSURL *)deeplink {

if (attributionResponseData.deeplink == nil) {
if (deeplink == nil) {
return;
}

[selfI.logger info:@"Open deep link (%@)", attributionResponseData.deeplink.absoluteString];
[selfI.logger info:@"Open deep link (%@)", deeplink.absoluteString];

[ADJUtil launchInMainThread:^{
BOOL toLaunchDeeplink = YES;

if ([selfI.adjustDelegate respondsToSelector:@selector(adjustDeferredDeeplinkReceived:)]) {
toLaunchDeeplink = [selfI.adjustDelegate
adjustDeferredDeeplinkReceived:attributionResponseData.deeplink];
adjustDeferredDeeplinkReceived:deeplink];
}

if (toLaunchDeeplink) {
[ADJUtil launchDeepLinkMain:attributionResponseData.deeplink];
[ADJUtil launchDeepLinkMain:deeplink];
}
}];
}
Expand Down
32 changes: 24 additions & 8 deletions Adjust/Internal/ADJAttributionHandler.m
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,9 @@ - (void)resumeSending {
- (void)checkSessionResponseI:(ADJAttributionHandler*)selfI
sessionResponseData:(ADJSessionResponseData *)sessionResponseData {
[selfI checkAttributionI:selfI responseData:sessionResponseData];


[selfI checkDeeplinkInSessionResponseI:selfI sessionResponseData:sessionResponseData];

[selfI.activityHandler launchSessionResponseTasks:sessionResponseData];
}

Expand All @@ -133,7 +135,7 @@ - (void)checkAttributionResponseI:(ADJAttributionHandler*)selfI
attributionResponseData:(ADJAttributionResponseData *)attributionResponseData {
[selfI checkAttributionI:selfI responseData:attributionResponseData];

[selfI checkDeeplinkI:selfI attributionResponseData:attributionResponseData];
[selfI checkDeeplinkInAttributionResponseI:selfI attributionResponseData:attributionResponseData];

[selfI.activityHandler launchAttributionResponseTasks:attributionResponseData];
}
Expand Down Expand Up @@ -162,23 +164,37 @@ - (void)checkAttributionI:(ADJAttributionHandler*)selfI
responseData.attribution = [[ADJAttribution alloc] initWithJsonDict:jsonAttribution];
}

- (void)checkDeeplinkI:(ADJAttributionHandler*)selfI
attributionResponseData:(ADJAttributionResponseData *)attributionResponseData {
- (void)checkDeeplinkInAttributionResponseI:(ADJAttributionHandler*)selfI
attributionResponseData:(ADJAttributionResponseData *)attributionResponseData {
if (attributionResponseData.jsonResponse == nil) {
return;
}

NSDictionary * jsonAttribution = [attributionResponseData.jsonResponse objectForKey:@"attribution"];
NSDictionary *jsonAttribution = [attributionResponseData.jsonResponse objectForKey:@"attribution"];
if (jsonAttribution == nil) {
return;
}

NSString *deepLink = [jsonAttribution objectForKey:@"deeplink"];
if (deepLink == nil) {
NSString *deeplink = [jsonAttribution objectForKey:@"deeplink"];
if (deeplink == nil) {
return;
}

attributionResponseData.deeplink = [NSURL URLWithString:deeplink];
}

- (void)checkDeeplinkInSessionResponseI:(ADJAttributionHandler*)selfI
sessionResponseData:(ADJSessionResponseData *)sessionResponseData {
if (sessionResponseData.jsonResponse == nil) {
return;
}

NSString *deeplink = [sessionResponseData.jsonResponse objectForKey:@"deeplink"];
if (deeplink == nil) {
return;
}

attributionResponseData.deeplink = [NSURL URLWithString:deepLink];
sessionResponseData.deeplink = [NSURL URLWithString:deeplink];
}

- (void)requestAttributionI:(ADJAttributionHandler*)selfI {
Expand Down
2 changes: 2 additions & 0 deletions Adjust/Internal/ADJResponseData.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ typedef NS_ENUM(int, ADJTrackingState) {

- (ADJSessionFailure *)failureResponseData;

@property (nonatomic, strong) NSURL *deeplink;

@end

@interface ADJSdkClickResponseData : ADJResponseData
Expand Down
2 changes: 1 addition & 1 deletion Adjust/Internal/ADJUtil.m
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
static NSRegularExpression *goLinkUniversalLinkRegex = nil;
static NSRegularExpression *excludedDeeplinkRegex = nil;

static NSString * const kClientSdk = @"ios5.4.3";
static NSString * const kClientSdk = @"ios5.4.4";
static NSString * const kDeeplinkParam = @"deep_link=";
static NSString * const kSchemeDelimiter = @"://";
static NSString * const kDefaultScheme = @"AdjustUniversalScheme";
Expand Down
2 changes: 1 addition & 1 deletion AdjustBridge/AdjustBridgeRegister.m
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ function canSend(okCheck, errReason) {
if (this.sdkPrefix) {
return this.sdkPrefix;
} else {
return 'web-bridge5.4.3';
return 'web-bridge5.4.4';
}
},

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -509,7 +509,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.adjust.AdjustTestApp;
PRODUCT_BUNDLE_IDENTIFIER = com.adjust.examples;
PRODUCT_NAME = "$(TARGET_NAME)";
TARGETED_DEVICE_FAMILY = "1,2";
};
Expand All @@ -526,7 +526,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.adjust.AdjustTestApp;
PRODUCT_BUNDLE_IDENTIFIER = com.adjust.examples;
PRODUCT_NAME = "$(TARGET_NAME)";
TARGETED_DEVICE_FAMILY = "1,2";
};
Expand Down
22 changes: 11 additions & 11 deletions AdjustTests/AdjustTestApp/AdjustTestApp/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,17 @@
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.adjust.AdjustTestApp</string>
<key>CFBundleURLSchemes</key>
<array>
<string>adjust-test</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
Expand All @@ -41,16 +52,5 @@
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.adjust.AdjustTestApp</string>
<key>CFBundleURLSchemes</key>
<array>
<string>adjust-test</string>
</array>
</dict>
</array>
</dict>
</plist>
4 changes: 2 additions & 2 deletions AdjustTests/AdjustTestApp/AdjustTestApp/ViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
//static NSString * urlOverwrite = @"http://127.0.0.1:8080";
//static NSString * controlUrl = @"ws://127.0.0.1:1987";
// device
static NSString * urlOverwrite = @"http://192.168.1.121:8080";
static NSString * controlUrl = @"ws://192.168.1.121:1987";
static NSString * urlOverwrite = @"http://192.168.21.180:8080";
static NSString * controlUrl = @"ws://192.168.21.180:1987";

@interface ViewController : UIViewController

Expand Down
2 changes: 1 addition & 1 deletion AdjustTests/AdjustTestApp/AdjustTestApp/ViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ - (void)viewDidLoad {
andCommandDelegate:self.adjustCommandExecutor];
[self.adjustCommandExecutor setTestLibrary:self.testLibrary];

// [self.testLibrary addTestDirectory:@"deeplink"];
// [self.testLibrary addTestDirectory:@"deeplink-deferred"];
// [self.testLibrary doNotExitAfterEnd];
[self startTestSession];
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.adjust.AdjustWebBridgeTestApp;
PRODUCT_BUNDLE_IDENTIFIER = com.adjust.examples;
PRODUCT_NAME = "$(TARGET_NAME)";
TARGETED_DEVICE_FAMILY = "1,2";
};
Expand All @@ -497,7 +497,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.adjust.AdjustWebBridgeTestApp;
PRODUCT_BUNDLE_IDENTIFIER = com.adjust.examples;
PRODUCT_NAME = "$(TARGET_NAME)";
TARGETED_DEVICE_FAMILY = "1,2";
};
Expand Down
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
### Version 5.4.4 (25th August 2025)
#### Added
- Added support for processing deferred deep links in session responses.

---

### Version 5.4.3 (11th August 2025)
#### Fixed
- Fixed first session delay pre-init actions array lazy initialization.
Expand Down Expand Up @@ -42,7 +48,7 @@

### Version 5.1.1 (25th February 2025)
#### Changed
- Syncrhonized resuming and pausing in all the handlers (internal changes).
- Synchronized resuming and pausing in all the handlers (internal changes).

---

Expand Down
1 change: 1 addition & 0 deletions Carthage/AdjustSdk-Dynamic.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"5.4.4": "https://github.com/adjust/ios_sdk/releases/download/v5.4.4/AdjustSdk-iOS-tvOS-Dynamic-5.4.4.xcframework.zip",
"5.4.3": "https://github.com/adjust/ios_sdk/releases/download/v5.4.3/AdjustSdk-iOS-tvOS-Dynamic-5.4.3.xcframework.zip",
"5.4.2": "https://github.com/adjust/ios_sdk/releases/download/v5.4.2/AdjustSdk-iOS-tvOS-Dynamic-5.4.2.xcframework.zip",
"5.4.1": "https://github.com/adjust/ios_sdk/releases/download/v5.4.1/AdjustSdk-iOS-tvOS-Dynamic-5.4.1.xcframework.zip",
Expand Down
1 change: 1 addition & 0 deletions Carthage/AdjustSdk-Static.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"5.4.4": "https://github.com/adjust/ios_sdk/releases/download/v5.4.4/AdjustSdk-iOS-tvOS-Static-5.4.4.xcframework.zip",
"5.4.3": "https://github.com/adjust/ios_sdk/releases/download/v5.4.3/AdjustSdk-iOS-tvOS-Static-5.4.3.xcframework.zip",
"5.4.2": "https://github.com/adjust/ios_sdk/releases/download/v5.4.2/AdjustSdk-iOS-tvOS-Static-5.4.2.xcframework.zip",
"5.4.1": "https://github.com/adjust/ios_sdk/releases/download/v5.4.1/AdjustSdk-iOS-tvOS-Static-5.4.1.xcframework.zip",
Expand Down
1 change: 1 addition & 0 deletions Carthage/AdjustSdkIm-Dynamic.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"5.4.4": "https://github.com/adjust/ios_sdk/releases/download/v5.4.4/AdjustSdk-iMessage-Dynamic-5.4.4.xcframework.zip",
"5.4.3": "https://github.com/adjust/ios_sdk/releases/download/v5.4.3/AdjustSdk-iMessage-Dynamic-5.4.3.xcframework.zip",
"5.4.2": "https://github.com/adjust/ios_sdk/releases/download/v5.4.2/AdjustSdk-iMessage-Dynamic-5.4.2.xcframework.zip",
"5.4.1": "https://github.com/adjust/ios_sdk/releases/download/v5.4.1/AdjustSdk-iMessage-Dynamic-5.4.1.xcframework.zip",
Expand Down
1 change: 1 addition & 0 deletions Carthage/AdjustSdkIm-Static.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"5.4.4": "https://github.com/adjust/ios_sdk/releases/download/v5.4.4/AdjustSdk-iMessage-Static-5.4.4.xcframework.zip",
"5.4.3": "https://github.com/adjust/ios_sdk/releases/download/v5.4.3/AdjustSdk-iMessage-Static-5.4.3.xcframework.zip",
"5.4.2": "https://github.com/adjust/ios_sdk/releases/download/v5.4.2/AdjustSdk-iMessage-Static-5.4.2.xcframework.zip",
"5.4.1": "https://github.com/adjust/ios_sdk/releases/download/v5.4.1/AdjustSdk-iMessage-Static-5.4.1.xcframework.zip",
Expand Down
1 change: 1 addition & 0 deletions Carthage/AdjustSdkWebBridge-Dynamic.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"5.4.4": "https://github.com/adjust/ios_sdk/releases/download/v5.4.4/AdjustSdk-WebBridge-Dynamic-5.4.4.xcframework.zip",
"5.4.3": "https://github.com/adjust/ios_sdk/releases/download/v5.4.3/AdjustSdk-WebBridge-Dynamic-5.4.3.xcframework.zip",
"5.4.2": "https://github.com/adjust/ios_sdk/releases/download/v5.4.2/AdjustSdk-WebBridge-Dynamic-5.4.2.xcframework.zip",
"5.4.1": "https://github.com/adjust/ios_sdk/releases/download/v5.4.1/AdjustSdk-WebBridge-Dynamic-5.4.1.xcframework.zip",
Expand Down
1 change: 1 addition & 0 deletions Carthage/AdjustSdkWebBridge-Static.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"5.4.4": "https://github.com/adjust/ios_sdk/releases/download/v5.4.4/AdjustSdk-WebBridge-Static-5.4.4.xcframework.zip",
"5.4.3": "https://github.com/adjust/ios_sdk/releases/download/v5.4.3/AdjustSdk-WebBridge-Static-5.4.3.xcframework.zip",
"5.4.2": "https://github.com/adjust/ios_sdk/releases/download/v5.4.2/AdjustSdk-WebBridge-Static-5.4.2.xcframework.zip",
"5.4.1": "https://github.com/adjust/ios_sdk/releases/download/v5.4.1/AdjustSdk-WebBridge-Static-5.4.1.xcframework.zip",
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.4.3
5.4.4