Skip to content

Commit 73e4121

Browse files
authored
Merge pull request #631 from adjust/v4320
Version 4.32.0
2 parents fb48fb6 + 77aab70 commit 73e4121

File tree

17 files changed

+154
-21
lines changed

17 files changed

+154
-21
lines changed

Adjust.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
Pod::Spec.new do |s|
22
s.name = "Adjust"
3-
s.version = "4.31.0"
3+
s.version = "4.32.0"
44
s.summary = "This is the iOS SDK of adjust. You can read more about it at http://adjust.com."
55
s.homepage = "https://github.com/adjust/ios_sdk"
66
s.license = { :type => 'MIT', :file => 'MIT-LICENSE' }
77
s.author = { "Adjust GmbH" => "[email protected]" }
8-
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.31.0" }
8+
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.32.0" }
99
s.ios.deployment_target = '9.0'
1010
s.tvos.deployment_target = '9.0'
1111
s.framework = 'SystemConfiguration'

Adjust/ADJPackageBuilder.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,6 +1034,9 @@ - (NSMutableDictionary *)getThirdPartySharingParameters:(nonnull ADJThirdPartySh
10341034
[ADJPackageBuilder parameters:parameters
10351035
setDictionaryJson:thirdPartySharing.granularOptions
10361036
forKey:@"granular_third_party_sharing_options"];
1037+
[ADJPackageBuilder parameters:parameters
1038+
setDictionaryJson:thirdPartySharing.partnerSharingSettings
1039+
forKey:@"partner_sharing_settings"];
10371040

10381041
if ([self.trackingStatusManager canGetAttStatus]) {
10391042
[ADJPackageBuilder parameters:parameters setInt:self.trackingStatusManager.attStatus

Adjust/ADJThirdPartySharing.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,19 @@
1010

1111
@interface ADJThirdPartySharing : NSObject
1212

13+
@property (nonatomic, nullable, readonly, strong) NSNumber *enabled;
14+
@property (nonatomic, nonnull, readonly, strong) NSMutableDictionary *granularOptions;
15+
@property (nonatomic, nonnull, readonly, strong) NSMutableDictionary *partnerSharingSettings;
16+
1317
- (nullable id)initWithIsEnabledNumberBool:(nullable NSNumber *)isEnabledNumberBool;
1418

1519
- (void)addGranularOption:(nonnull NSString *)partnerName
1620
key:(nonnull NSString *)key
1721
value:(nonnull NSString *)value;
1822

19-
@property (nonatomic, nullable, readonly, strong) NSNumber *enabled;
20-
@property (nonatomic, nonnull, readonly, strong) NSMutableDictionary *granularOptions;
23+
- (void)addPartnerSharingSetting:(nonnull NSString *)partnerName
24+
key:(nonnull NSString *)key
25+
value:(BOOL)value;
2126

2227
@end
2328

Adjust/ADJThirdPartySharing.m

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#import "ADJThirdPartySharing.h"
1010
#import "ADJAdjustFactory.h"
11+
#import "ADJUtil.h"
1112

1213
@implementation ADJThirdPartySharing
1314

@@ -17,19 +18,17 @@ - (nullable id)initWithIsEnabledNumberBool:(nullable NSNumber *)isEnabledNumberB
1718
return nil;
1819
}
1920

20-
_granularOptions = [[NSMutableDictionary alloc] init];
2121
_enabled = isEnabledNumberBool;
22+
_granularOptions = [[NSMutableDictionary alloc] init];
23+
_partnerSharingSettings = [[NSMutableDictionary alloc] init];
2224

2325
return self;
2426
}
2527

2628
- (void)addGranularOption:(nonnull NSString *)partnerName
2729
key:(nonnull NSString *)key
28-
value:(nonnull NSString *)value
29-
{
30-
if (partnerName == nil || [partnerName isEqual:[NSNull null]] ||
31-
key == nil || [key isEqual:[NSNull null]] ||
32-
value == nil || [value isEqual:[NSNull null]]) {
30+
value:(nonnull NSString *)value {
31+
if ([ADJUtil isNull:partnerName] || [ADJUtil isNull:key] || [ADJUtil isNull:value]) {
3332
[ADJAdjustFactory.logger error:@"Cannot add granular option with any nil value"];
3433
return;
3534
}
@@ -43,4 +42,21 @@ - (void)addGranularOption:(nonnull NSString *)partnerName
4342
[partnerOptions setObject:value forKey:key];
4443
}
4544

45+
- (void)addPartnerSharingSetting:(nonnull NSString *)partnerName
46+
key:(nonnull NSString *)key
47+
value:(BOOL)value {
48+
if ([ADJUtil isNull:partnerName] || [ADJUtil isNull:key]) {
49+
[ADJAdjustFactory.logger error:@"Cannot add partner sharing setting with any nil value"];
50+
return;
51+
}
52+
53+
NSMutableDictionary *partnerSharingSetting = [self.partnerSharingSettings objectForKey:partnerName];
54+
if (partnerSharingSetting == nil) {
55+
partnerSharingSetting = [[NSMutableDictionary alloc] init];
56+
[self.partnerSharingSettings setObject:partnerSharingSetting forKey:partnerName];
57+
}
58+
59+
[partnerSharingSetting setObject:[NSNumber numberWithBool:value] forKey:key];
60+
}
61+
4662
@end

Adjust/ADJUserDefaults.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,8 @@
6565

6666
+ (BOOL)getLinkMeChecked;
6767

68+
+ (void)cacheDeeplinkUrl:(NSURL *)deeplink;
69+
70+
+ (NSURL *)getCachedDeeplinkUrl;
71+
6872
@end

Adjust/ADJUserDefaults.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
static NSString * const PREFS_KEY_ADSERVICES_TRACKED = @"adj_adservices_tracked";
2020
static NSString * const PREFS_KEY_SKAD_REGISTER_CALL_TIME = @"adj_skad_register_call_time";
2121
static NSString * const PREFS_KEY_LINK_ME_CHECKED = @"adj_link_me_checked";
22+
static NSString * const PREFS_KEY_DEEPLINK_URL_CACHED = @"adj_deeplink_url_cached";
2223

2324
@implementation ADJUserDefaults
2425

@@ -147,6 +148,14 @@ + (BOOL)getLinkMeChecked {
147148
return [[NSUserDefaults standardUserDefaults] boolForKey:PREFS_KEY_LINK_ME_CHECKED];
148149
}
149150

151+
+ (void)cacheDeeplinkUrl:(NSURL *)deeplink {
152+
[[NSUserDefaults standardUserDefaults] setURL:deeplink forKey:PREFS_KEY_DEEPLINK_URL_CACHED];
153+
}
154+
155+
+ (NSURL *)getCachedDeeplinkUrl {
156+
return [[NSUserDefaults standardUserDefaults] URLForKey:PREFS_KEY_DEEPLINK_URL_CACHED];
157+
}
158+
150159
+ (void)clearAdjustStuff {
151160
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_PUSH_TOKEN_DATA];
152161
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_PUSH_TOKEN_STRING];
@@ -159,6 +168,7 @@ + (void)clearAdjustStuff {
159168
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_ADSERVICES_TRACKED];
160169
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_SKAD_REGISTER_CALL_TIME];
161170
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_LINK_ME_CHECKED];
171+
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_DEEPLINK_URL_CACHED];
162172
}
163173

164174
@end

Adjust/ADJUtil.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
static NSRegularExpression *shortUniversalLinkRegex = nil;
4040
static NSRegularExpression *excludedDeeplinkRegex = nil;
4141

42-
static NSString * const kClientSdk = @"ios4.31.0";
42+
static NSString * const kClientSdk = @"ios4.32.0";
4343
static NSString * const kDeeplinkParam = @"deep_link=";
4444
static NSString * const kSchemeDelimiter = @"://";
4545
static NSString * const kDefaultScheme = @"AdjustUniversalScheme";

Adjust/Adjust.h

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Adjust.h
33
// Adjust SDK
44
//
5-
// V4.31.0
5+
// V4.32.0
66
// Created by Christian Wellenbrock (@wellle) on 23rd July 2013.
77
// Copyright (c) 2012-2021 Adjust GmbH. All rights reserved.
88
//
@@ -308,7 +308,7 @@ extern NSString * __nonnull const ADJDataResidencyUS;
308308
/**
309309
* @brief Getter for app tracking authorization status.
310310
*
311-
* return Value of app tracking authorization status.
311+
* @return Value of app tracking authorization status.
312312
*/
313313
+ (int)appTrackingAuthorizationStatus;
314314

@@ -324,6 +324,13 @@ extern NSString * __nonnull const ADJDataResidencyUS;
324324
*/
325325
+ (void)checkForNewAttStatus;
326326

327+
/**
328+
* @brief Get the last deep link which has opened the app.
329+
*
330+
* @return Last deep link which has opened the app.
331+
*/
332+
+ (nullable NSURL *)lastDeeplink;
333+
327334
/**
328335
* @brief Method used for internal testing only. Don't use it in production.
329336
*/
@@ -400,4 +407,6 @@ extern NSString * __nonnull const ADJDataResidencyUS;
400407

401408
- (void)checkForNewAttStatus;
402409

410+
- (nullable NSURL *)lastDeeplink;
411+
403412
@end

Adjust/Adjust.m

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,12 @@ + (void)checkForNewAttStatus {
281281
}
282282
}
283283

284+
+ (NSURL *)lastDeeplink {
285+
@synchronized (self) {
286+
return [[Adjust getInstance] lastDeeplink];
287+
}
288+
}
289+
284290
+ (void)setTestOptions:(AdjustTestOptions *)testOptions {
285291
@synchronized (self) {
286292
if (testOptions.teardown) {
@@ -346,6 +352,7 @@ - (BOOL)isEnabled {
346352
}
347353

348354
- (void)appWillOpenUrl:(NSURL *)url {
355+
[ADJUserDefaults cacheDeeplinkUrl:url];
349356
NSDate *clickTime = [NSDate date];
350357
if (![self checkActivityHandler]) {
351358
[ADJUserDefaults saveDeeplinkUrl:url andClickTime:clickTime];
@@ -581,6 +588,10 @@ - (void)checkForNewAttStatus {
581588
[self.activityHandler checkForNewAttStatus];
582589
}
583590

591+
- (NSURL *)lastDeeplink {
592+
return [ADJUserDefaults getCachedDeeplinkUrl];
593+
}
594+
584595
- (void)teardown {
585596
if (self.activityHandler == nil) {
586597
[self.logger error:@"Adjust already down or not initialized"];

AdjustBridge/AdjustBridge.m

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -537,21 +537,26 @@ - (void)loadWKWebViewBridge:(WKWebView *)wkWebView
537537
[self.bridgeRegister registerHandler:@"adjust_trackThirdPartySharing" handler:^(id data, WVJBResponseCallback responseCallback) {
538538
id isEnabledO = [data objectForKey:@"isEnabled"];
539539
id granularOptions = [data objectForKey:@"granularOptions"];
540+
id partnerSharingSettings = [data objectForKey:@"partnerSharingSettings"];
540541

541542
NSNumber *isEnabled = nil;
542543
if ([isEnabledO isKindOfClass:[NSNumber class]]) {
543544
isEnabled = (NSNumber *)isEnabledO;
544545
}
545-
546546
ADJThirdPartySharing *adjustThirdPartySharing =
547547
[[ADJThirdPartySharing alloc] initWithIsEnabledNumberBool:isEnabled];
548-
549548
for (int i = 0; i < [granularOptions count]; i += 3) {
550549
NSString *partnerName = [[granularOptions objectAtIndex:i] description];
551550
NSString *key = [[granularOptions objectAtIndex:(i + 1)] description];
552551
NSString *value = [[granularOptions objectAtIndex:(i + 2)] description];
553552
[adjustThirdPartySharing addGranularOption:partnerName key:key value:value];
554553
}
554+
for (int i = 0; i < [partnerSharingSettings count]; i += 3) {
555+
NSString *partnerName = [[partnerSharingSettings objectAtIndex:i] description];
556+
NSString *key = [[partnerSharingSettings objectAtIndex:(i + 1)] description];
557+
BOOL value = [[partnerSharingSettings objectAtIndex:(i + 2)] boolValue];
558+
[adjustThirdPartySharing addPartnerSharingSetting:partnerName key:key value:value];
559+
}
555560

556561
[Adjust trackThirdPartySharing:adjustThirdPartySharing];
557562
}];
@@ -563,6 +568,17 @@ - (void)loadWKWebViewBridge:(WKWebView *)wkWebView
563568
[Adjust trackMeasurementConsent:[(NSNumber *)data boolValue]];
564569
}];
565570

571+
[self.bridgeRegister registerHandler:@"adjust_checkForNewAttStatus" handler:^(id data, WVJBResponseCallback responseCallback) {
572+
[Adjust checkForNewAttStatus];
573+
}];
574+
575+
[self.bridgeRegister registerHandler:@"adjust_lastDeeplink" handler:^(id data, WVJBResponseCallback responseCallback) {
576+
if (responseCallback == nil) {
577+
return;
578+
}
579+
NSURL *lastDeeplink = [Adjust lastDeeplink];
580+
responseCallback(lastDeeplink != nil ? [lastDeeplink absoluteString] : nil);
581+
}];
566582

567583
[self.bridgeRegister registerHandler:@"adjust_setTestOptions" handler:^(id data, WVJBResponseCallback responseCallback) {
568584
NSString *baseUrl = [data objectForKey:@"baseUrl"];

0 commit comments

Comments
 (0)