Skip to content

Commit e207090

Browse files
authored
Merge pull request #334 from adjust/v4141
Version 4.14.1
2 parents 4c9d7bf + 9c2235d commit e207090

File tree

16 files changed

+132
-29
lines changed

16 files changed

+132
-29
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.14.0"
3+
s.version = "4.14.1"
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 = { "Christian Wellenbrock" => "[email protected]" }
8-
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.14.0" }
8+
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.14.1" }
99
s.ios.deployment_target = '6.0'
1010
s.tvos.deployment_target = '9.0'
1111
s.framework = 'SystemConfiguration'

Adjust/ADJActivityHandler.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272

7373
- (void)appWillOpenUrl:(NSURL*)url withClickTime:(NSDate *)clickTime;
7474
- (void)setDeviceToken:(NSData *)deviceToken;
75+
- (void)setPushToken:(NSString *)deviceToken;
7576
- (void)setGdprForgetMe;
7677
- (void)setTrackingStateOptedOut;
7778
- (void)setAskingAttribution:(BOOL)askingAttribution;

Adjust/ADJActivityHandler.m

Lines changed: 62 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,14 @@ - (void)setDeviceToken:(NSData *)deviceToken {
362362
}];
363363
}
364364

365+
- (void)setPushToken:(NSString *)pushToken {
366+
[ADJUtil launchInQueue:self.internalQueue
367+
selfInject:self
368+
block:^(ADJActivityHandler * selfI) {
369+
[selfI setPushTokenI:selfI pushToken:pushToken];
370+
}];
371+
}
372+
365373
- (void)setGdprForgetMe {
366374
[ADJUtil launchInQueue:self.internalQueue
367375
selfInject:self
@@ -664,8 +672,10 @@ - (void)initI:(ADJActivityHandler *)selfI
664672
}
665673
} else {
666674
if (selfI.activityState != nil) {
667-
NSData *deviceToken = [ADJUserDefaults getPushToken];
675+
NSData *deviceToken = [ADJUserDefaults getPushTokenData];
668676
[selfI setDeviceToken:deviceToken];
677+
NSString *pushToken = [ADJUserDefaults getPushTokenString];
678+
[selfI setPushToken:pushToken];
669679
}
670680
}
671681

@@ -770,7 +780,10 @@ - (void)processSessionI:(ADJActivityHandler *)selfI {
770780
selfI.activityState = [[ADJActivityState alloc] init];
771781

772782
// selfI.activityState.deviceToken = [ADJUtil convertDeviceToken:selfI.deviceTokenData];
773-
selfI.activityState.deviceToken = [ADJUtil convertDeviceToken:[ADJUserDefaults getPushToken]];
783+
NSData *deviceToken = [ADJUserDefaults getPushTokenData];
784+
NSString *deviceTokenString = [ADJUtil convertDeviceToken:deviceToken];
785+
NSString *pushToken = [ADJUserDefaults getPushTokenString];
786+
selfI.activityState.deviceToken = deviceTokenString != nil ? deviceTokenString : pushToken;
774787

775788
// track the first session package only if it's enabled
776789
if ([selfI.internalState isEnabled]) {
@@ -1135,13 +1148,14 @@ - (void)setEnabledI:(ADJActivityHandler *)selfI enabled:(BOOL)enabled {
11351148
double now = [NSDate.date timeIntervalSince1970];
11361149
[self trackNewSessionI:now withActivityHandler:selfI];
11371150
}
1138-
1139-
NSData *deviceToken = [ADJUserDefaults getPushToken];
1140-
1151+
NSData *deviceToken = [ADJUserDefaults getPushTokenData];
11411152
if (deviceToken != nil && ![selfI.activityState.deviceToken isEqualToString:[ADJUtil convertDeviceToken:deviceToken]]) {
11421153
[self setDeviceToken:deviceToken];
11431154
}
1144-
1155+
NSString *pushToken = [ADJUserDefaults getPushTokenString];
1156+
if (pushToken != nil && ![selfI.activityState.deviceToken isEqualToString:pushToken]) {
1157+
[self setPushToken:pushToken];
1158+
}
11451159
if ([ADJUserDefaults getGdprForgetMe]) {
11461160
[selfI setGdprForgetMe];
11471161
}
@@ -1380,6 +1394,48 @@ - (void)setDeviceTokenI:(ADJActivityHandler *)selfI
13801394
}
13811395
}
13821396

1397+
- (void)setPushTokenI:(ADJActivityHandler *)selfI
1398+
pushToken:(NSString *)pushToken {
1399+
if (![selfI isEnabledI:selfI]) {
1400+
return;
1401+
}
1402+
if (!selfI.activityState) {
1403+
return;
1404+
}
1405+
if (selfI.activityState.isGdprForgotten) {
1406+
return;
1407+
}
1408+
if (pushToken == nil) {
1409+
return;
1410+
}
1411+
if ([pushToken isEqualToString:selfI.activityState.deviceToken]) {
1412+
return;
1413+
}
1414+
1415+
// save new push token
1416+
selfI.activityState.deviceToken = pushToken;
1417+
[selfI writeActivityStateI:selfI];
1418+
1419+
// send info package
1420+
double now = [NSDate.date timeIntervalSince1970];
1421+
ADJPackageBuilder *infoBuilder = [[ADJPackageBuilder alloc] initWithDeviceInfo:selfI.deviceInfo
1422+
activityState:selfI.activityState
1423+
config:selfI.adjustConfig
1424+
sessionParameters:selfI.sessionParameters
1425+
createdAt:now];
1426+
ADJActivityPackage *infoPackage = [infoBuilder buildInfoPackage:@"push"];
1427+
[selfI.packageHandler addPackage:infoPackage];
1428+
1429+
// if push token was cached, remove it
1430+
[ADJUserDefaults removePushToken];
1431+
1432+
if (selfI.adjustConfig.eventBufferingEnabled) {
1433+
[selfI.logger info:@"Buffered info %@", infoPackage.suffix];
1434+
} else {
1435+
[selfI.packageHandler sendFirstPackage];
1436+
}
1437+
}
1438+
13831439
- (void)setGdprForgetMeI:(ADJActivityHandler *)selfI {
13841440
if (![selfI isEnabledI:selfI]) {
13851441
return;

Adjust/ADJUserDefaults.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,13 @@
1010

1111
@interface ADJUserDefaults : NSObject
1212

13-
+ (void)savePushToken:(NSData *)pushToken;
13+
+ (void)savePushTokenData:(NSData *)pushToken;
1414

15-
+ (NSData *)getPushToken;
15+
+ (void)savePushTokenString:(NSString *)pushToken;
16+
17+
+ (NSData *)getPushTokenData;
18+
19+
+ (NSString *)getPushTokenString;
1620

1721
+ (void)removePushToken;
1822

Adjust/ADJUserDefaults.m

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

99
#import "ADJUserDefaults.h"
1010

11-
static NSString * const PREFS_KEY_PUSH_TOKEN = @"adj_push_token";
11+
static NSString * const PREFS_KEY_PUSH_TOKEN_DATA = @"adj_push_token";
12+
static NSString * const PREFS_KEY_PUSH_TOKEN_STRING = @"adj_push_token_string";
1213
static NSString * const PREFS_KEY_GDPR_FORGET_ME = @"adj_gdpr_forget_me";
1314
static NSString * const PREFS_KEY_INSTALL_TRACKED = @"adj_install_tracked";
1415
static NSString * const PREFS_KEY_DEEPLINK_URL = @"adj_deeplink_url";
@@ -18,17 +19,27 @@ @implementation ADJUserDefaults
1819

1920
#pragma mark - Public methods
2021

21-
+ (void)savePushToken:(NSData *)pushToken {
22-
[[NSUserDefaults standardUserDefaults] setObject:pushToken forKey:PREFS_KEY_PUSH_TOKEN];
22+
+ (void)savePushTokenData:(NSData *)pushToken {
23+
[[NSUserDefaults standardUserDefaults] setObject:pushToken forKey:PREFS_KEY_PUSH_TOKEN_DATA];
2324
[[NSUserDefaults standardUserDefaults] synchronize];
2425
}
2526

26-
+ (NSData *)getPushToken {
27-
return [[NSUserDefaults standardUserDefaults] objectForKey:PREFS_KEY_PUSH_TOKEN];
27+
+ (void)savePushTokenString:(NSString *)pushToken {
28+
[[NSUserDefaults standardUserDefaults] setObject:pushToken forKey:PREFS_KEY_PUSH_TOKEN_STRING];
29+
[[NSUserDefaults standardUserDefaults] synchronize];
30+
}
31+
32+
+ (NSData *)getPushTokenData {
33+
return [[NSUserDefaults standardUserDefaults] objectForKey:PREFS_KEY_PUSH_TOKEN_DATA];
34+
}
35+
36+
+ (NSString *)getPushTokenString {
37+
return [[NSUserDefaults standardUserDefaults] objectForKey:PREFS_KEY_PUSH_TOKEN_STRING];
2838
}
2939

3040
+ (void)removePushToken {
31-
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_PUSH_TOKEN];
41+
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_PUSH_TOKEN_DATA];
42+
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_PUSH_TOKEN_STRING];
3243
[[NSUserDefaults standardUserDefaults] synchronize];
3344
}
3445

@@ -76,7 +87,8 @@ + (void)removeDeeplink {
7687
}
7788

7889
+ (void)clearAdjustStuff {
79-
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_PUSH_TOKEN];
90+
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_PUSH_TOKEN_DATA];
91+
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_PUSH_TOKEN_STRING];
8092
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_INSTALL_TRACKED];
8193
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_GDPR_FORGET_ME];
8294
[[NSUserDefaults standardUserDefaults] removeObjectForKey:PREFS_KEY_DEEPLINK_URL];

Adjust/ADJUtil.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
static NSString *userAgent = nil;
4343

44-
static NSString * const kClientSdk = @"ios4.14.0";
44+
static NSString * const kClientSdk = @"ios4.14.1";
4545
static NSString * const kDeeplinkParam = @"deep_link=";
4646
static NSString * const kSchemeDelimiter = @"://";
4747
static NSString * const kDefaultScheme = @"AdjustUniversalScheme";

Adjust/Adjust.h

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Adjust.h
33
// Adjust
44
//
5-
// V4.14.0
5+
// V4.14.1
66
// Created by Christian Wellenbrock (wellle) on 23rd July 2013.
77
// Copyright © 2012-2017 Adjust GmbH. All rights reserved.
88
//
@@ -105,10 +105,18 @@ extern NSString * __nonnull const ADJEnvironmentProduction;
105105
/**
106106
* @brief Set the device token used by push notifications.
107107
*
108-
* @param deviceToken Apple push notification token for iOS device.
108+
* @param deviceToken Apple push notification token for iOS device as NSData.
109109
*/
110110
+ (void)setDeviceToken:(nonnull NSData *)deviceToken;
111111

112+
/**
113+
* @brief Set the device token used by push notifications.
114+
* This method is only used by Adjust non native SDKs. Don't use it anywhere else.
115+
*
116+
* @param pushToken Apple push notification token for iOS device as NSString.
117+
*/
118+
+ (void)setPushToken:(nonnull NSString *)pushToken;
119+
112120
/**
113121
* @brief Enable or disable offline mode. Activities won't be sent but they are saved when
114122
* offline mode is disabled. This feature is not saved for future sessions.
@@ -234,6 +242,8 @@ extern NSString * __nonnull const ADJEnvironmentProduction;
234242

235243
- (void)setDeviceToken:(nonnull NSData *)deviceToken;
236244

245+
- (void)setPushToken:(nonnull NSString *)pushToken;
246+
237247
- (void)sendFirstPackages;
238248

239249
- (void)trackSubsessionEnd;

Adjust/Adjust.m

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ + (void)setDeviceToken:(NSData *)deviceToken {
9898
[[Adjust getInstance] setDeviceToken:deviceToken];
9999
}
100100

101+
+ (void)setPushToken:(NSString *)pushToken {
102+
[[Adjust getInstance] setPushToken:pushToken];
103+
}
104+
101105
+ (void)setOfflineMode:(BOOL)enabled {
102106
[[Adjust getInstance] setOfflineMode:enabled];
103107
}
@@ -233,7 +237,7 @@ - (void)appWillOpenUrl:(NSURL *)url {
233237
}
234238

235239
- (void)setDeviceToken:(NSData *)deviceToken {
236-
[ADJUserDefaults savePushToken:deviceToken];
240+
[ADJUserDefaults savePushTokenData:deviceToken];
237241

238242
if ([self checkActivityHandler:@"device token"]) {
239243
if (self.activityHandler.isEnabled) {
@@ -242,6 +246,16 @@ - (void)setDeviceToken:(NSData *)deviceToken {
242246
}
243247
}
244248

249+
- (void)setPushToken:(NSString *)pushToken {
250+
[ADJUserDefaults savePushTokenString:pushToken];
251+
252+
if ([self checkActivityHandler:@"device token"]) {
253+
if (self.activityHandler.isEnabled) {
254+
[self.activityHandler setPushToken:pushToken];
255+
}
256+
}
257+
}
258+
245259
- (void)setOfflineMode:(BOOL)enabled {
246260
if (![self checkActivityHandler:enabled
247261
trueMessage:@"offline mode"

AdjustTests/AdjustTestApp/AdjustTestApp/ViewController.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ - (void)viewDidLoad {
3636
}
3737

3838
- (void)startTestSession {
39-
[self.testLibrary startTestSession:@"ios4.14.0"];
39+
[self.testLibrary startTestSession:@"ios4.14.1"];
4040
}
4141

4242
- (void)didReceiveMemoryWarning {

AdjustTests/AdjustUnitTests/ADJPackageFields.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ - (id) init {
1616

1717
// default values
1818
self.appToken = @"qwerty123456";
19-
self.clientSdk = @"ios4.14.0";
19+
self.clientSdk = @"ios4.14.1";
2020
self.suffix = @"";
2121
self.environment = @"sandbox";
2222

0 commit comments

Comments
 (0)