From 56abe9207a5c5aff1c7b3346f4c86109737c061f Mon Sep 17 00:00:00 2001 From: Pedro Date: Wed, 22 Apr 2015 17:14:03 +0200 Subject: [PATCH 1/6] Remove warning missing iAd --- Adjust/ADJActivityHandler.m | 1 - 1 file changed, 1 deletion(-) diff --git a/Adjust/ADJActivityHandler.m b/Adjust/ADJActivityHandler.m index f591c6990..3dfd2e5f6 100644 --- a/Adjust/ADJActivityHandler.m +++ b/Adjust/ADJActivityHandler.m @@ -163,7 +163,6 @@ - (void)setDeviceToken:(NSData *)deviceToken { - (void)setIadDate:(NSDate *)iAdImpressionDate withPurchaseDate:(NSDate *)appPurchaseDate { if (iAdImpressionDate == nil) { - [self.logger error:@"iAd click time is missing"]; return; } From c691cf810b58d155840c5a17bb19b09eac6db994 Mon Sep 17 00:00:00 2001 From: Pedro Date: Wed, 22 Apr 2015 17:14:35 +0200 Subject: [PATCH 2/6] Log empty error messages --- Adjust/ADJAttributionHandler.m | 6 +++++- Adjust/ADJRequestHandler.m | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Adjust/ADJAttributionHandler.m b/Adjust/ADJAttributionHandler.m index fde45cee2..2024b4632 100644 --- a/Adjust/ADJAttributionHandler.m +++ b/Adjust/ADJAttributionHandler.m @@ -121,10 +121,14 @@ -(void) getAttributionInternal { returningResponse:&urlResponse error:&requestError]; // connection error - if (responseData == nil || requestError != nil) { + if (requestError != nil) { [self.logger error:@"Failed to get attribution. (%@)", requestError.localizedDescription]; return; } + if (responseData == nil) { + [self.logger error:@"Failed to get attribution. (empty error)"]; + return; + } NSString *responseString = [[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding] adjTrim]; NSInteger statusCode = ((NSHTTPURLResponse*)urlResponse).statusCode; diff --git a/Adjust/ADJRequestHandler.m b/Adjust/ADJRequestHandler.m index c6e29aacb..0cd014bfd 100644 --- a/Adjust/ADJRequestHandler.m +++ b/Adjust/ADJRequestHandler.m @@ -72,8 +72,12 @@ - (void)sendInternal:(ADJActivityPackage *)package sendToPackageHandler:(BOOL)se error:&error]; // connection error - if (responseData == nil || error != nil) { - [self.logger error:@"%@. (%@) Will retry later.", package.failureMessage, error.localizedDescription]; + if (error != nil || responseData == nil) { + if (error != nil) { + [self.logger error:@"%@. (%@) Will retry later.", package.failureMessage, error.localizedDescription]; + } else { + [self.logger error:@"%@. (empty error) Will retry later.", package.failureMessage]; + } [self.packageHandler finishedTrackingActivity:nil]; if (sendToPackageHandler) { [self.packageHandler closeFirstPackage]; From 213e108539c8c1a3193723ecd89d232a07354187 Mon Sep 17 00:00:00 2001 From: Pedro Date: Wed, 22 Apr 2015 17:16:58 +0200 Subject: [PATCH 3/6] Add prefix to sociomantic parameters --- plugin/ADJSociomantic.m | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugin/ADJSociomantic.m b/plugin/ADJSociomantic.m index 66d98e49e..c6a933a16 100644 --- a/plugin/ADJSociomantic.m +++ b/plugin/ADJSociomantic.m @@ -165,7 +165,7 @@ + (void)injectCustomerDataIntoEvent:(ADJEvent *)event }]; NSString *dob = [ADJSociomantic stringify:_data]; - [event addPartnerParameter:@"dob" value:dob]; + [event addPartnerParameter:@"socio_dob" value:dob]; } @@ -196,7 +196,7 @@ + (void)injectViewListingIntoEvent:(ADJEvent *)event } NSString *jsonCo = [ADJSociomantic stringify:co]; - [event addPartnerParameter:@"co" value:jsonCo]; + [event addPartnerParameter:@"socio_co" value:jsonCo]; } @@ -222,7 +222,7 @@ + (void)injectViewProductIntoEvent:(ADJEvent *)event } NSString *jsonPo = [ADJSociomantic stringify:@[product]]; - [event addPartnerParameter:@"po" value:jsonPo]; + [event addPartnerParameter:@"socio_po" value:jsonPo]; } @@ -254,7 +254,7 @@ + (void)injectCartIntoEvent:(ADJEvent *)event if ( 0 < po.count ) { NSString *jsonPo = [ADJSociomantic stringify:po]; - [event addPartnerParameter:@"po" value:jsonPo]; + [event addPartnerParameter:@"socio_po" value:jsonPo]; } } @@ -323,7 +323,7 @@ + (void)injectTransactionIntoEvent:(ADJEvent *)event }]; NSString *jsonPo = [ADJSociomantic stringify:po]; - [event addPartnerParameter:@"po" value:jsonPo]; + [event addPartnerParameter:@"socio_po" value:jsonPo]; } if ( nil != parameters ) @@ -338,7 +338,7 @@ + (void)injectTransactionIntoEvent:(ADJEvent *)event to[@"transaction"] = transactionID; NSString *jsonTo = [ADJSociomantic stringify:@{@"transaction":to}]; - [event addPartnerParameter:@"to" value:jsonTo]; + [event addPartnerParameter:@"socio_to" value:jsonTo]; } @@ -361,7 +361,7 @@ + (void)injectLeadIntoEvent:(ADJEvent *)event to[@"transaction"] = leadID; NSString *jsonTo = [ADJSociomantic stringify:@{@"transaction":to}]; - [event addPartnerParameter:@"to" value:jsonTo]; + [event addPartnerParameter:@"socio_to" value:jsonTo]; } + (NSArray*)filterCategories:(NSArray*)categories From 5709efd39a81c60b7122daeb2f6f42246d8a90bd Mon Sep 17 00:00:00 2001 From: Pedro Date: Wed, 22 Apr 2015 17:53:15 +0200 Subject: [PATCH 4/6] Empty receipt --- Adjust/ADJEvent.h | 1 + Adjust/ADJEvent.m | 3 +++ Adjust/ADJPackageBuilder.m | 7 ++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Adjust/ADJEvent.h b/Adjust/ADJEvent.h index c94d468f3..0b4c7caca 100644 --- a/Adjust/ADJEvent.h +++ b/Adjust/ADJEvent.h @@ -17,6 +17,7 @@ @property (nonatomic, copy, readonly) NSString* transactionId; @property (nonatomic, copy, readonly) NSString* currency; @property (nonatomic, copy, readonly) NSData* receipt; +@property (nonatomic, assign, readonly) BOOL emptyReceipt; /** * Create Event object with Event Token. diff --git a/Adjust/ADJEvent.m b/Adjust/ADJEvent.m index d05630dd7..12a30f08f 100644 --- a/Adjust/ADJEvent.m +++ b/Adjust/ADJEvent.m @@ -154,6 +154,9 @@ - (BOOL) isValid { - (void) setReceipt:(NSData *)receipt transactionId:(NSString *)transactionId { if (![self checkReceipt:receipt transactionId:transactionId]) return; + if (receipt == nil || [receipt length] == 0) { + _emptyReceipt = YES; + } _receipt = receipt; _transactionId = transactionId; } diff --git a/Adjust/ADJPackageBuilder.m b/Adjust/ADJPackageBuilder.m index 60b17f581..2e73070c0 100644 --- a/Adjust/ADJPackageBuilder.m +++ b/Adjust/ADJPackageBuilder.m @@ -53,7 +53,12 @@ - (ADJActivityPackage *)buildEventPackage:(ADJEvent *) event{ [self parameters:parameters setDictionaryJson:event.callbackParameters forKey:@"callback_params"]; [self parameters:parameters setDictionaryJson:event.partnerParameters forKey:@"partner_params"]; - if (event.receipt != nil) { + if (event.emptyReceipt) { + NSString *emptyReceipt = @"empty"; + [self parameters:parameters setString:emptyReceipt forKey:@"receipt"]; + [self parameters:parameters setString:event.transactionId forKey:@"transaction_id"]; + } + else if (event.receipt != nil) { NSString *receiptBase64 = [event.receipt adjEncodeBase64]; [self parameters:parameters setString:receiptBase64 forKey:@"receipt"]; [self parameters:parameters setString:event.transactionId forKey:@"transaction_id"]; From ec08f6f6e68296cba99d363a935ac235976bf9e4 Mon Sep 17 00:00:00 2001 From: Pedro Date: Wed, 22 Apr 2015 18:15:20 +0200 Subject: [PATCH 5/6] Test empty receipt --- AdjustTests/ADJActivityHandlerTests.m | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/AdjustTests/ADJActivityHandlerTests.m b/AdjustTests/ADJActivityHandlerTests.m index d42118db9..99b945397 100644 --- a/AdjustTests/ADJActivityHandlerTests.m +++ b/AdjustTests/ADJActivityHandlerTests.m @@ -342,7 +342,7 @@ - (void)testEventsBuffered { [firstEvent setRevenue:0.0001 currency:@"EUR"]; // set transaction id - [firstEvent setTransactionId:@"t_id_1"]; + [firstEvent setReceipt:[[NSData alloc] init] transactionId:@"t_id_1"]; // track the first event [activityHandler trackEvent:firstEvent]; @@ -461,7 +461,7 @@ - (void)testEventsBuffered { XCTAssert([(NSString *)firstEventPackageParameters[@"currency"] isEqualToString:@"EUR"], @"%@", firstEventPackage.extendedString); // check the that the transaction id was not injected - XCTAssertNil(firstEventPackageParameters[@"transaction_id"], @"%@", firstEventPackage.extendedString); + XCTAssert([(NSString *)firstEventPackageParameters[@"transaction_id"] isEqualToString:@"t_id_1"], @"%@", firstEventPackage.extendedString); // check the injected parameters XCTAssert([(NSString *)firstEventPackageParameters[@"callback_params"] isEqualToString:@"{\"keyCall\":\"valueCall2\",\"fooCall\":\"barCall\"}"], @@ -470,6 +470,8 @@ - (void)testEventsBuffered { XCTAssert([(NSString *)firstEventPackageParameters[@"partner_params"] isEqualToString:@"{\"keyPartner\":\"valuePartner2\",\"fooPartner\":\"barPartner\"}"], @"%@", firstEventPackage.extendedString); + XCTAssert([(NSString *)firstEventPackageParameters[@"receipt"] isEqualToString:@"empty"], @"%@", firstEventPackage.extendedString); + // check the third event ADJActivityPackage *thirdEventPackage = (ADJActivityPackage *) self.packageHandlerMock.packageQueue[2]; NSDictionary *thirdEventPackageParameters = thirdEventPackage.parameters; @@ -899,10 +901,6 @@ - (void)testClickPackage { // check that the deep link send a click package XCTAssert([self.loggerMock containsMessage:ADJLogLevelTest beginsWith:@"ADJPackageHandler sendClickPackage"], @"%@", self.loggerMock); - // check the iAd is missing twice - XCTAssert([self.loggerMock containsMessage:ADJLogLevelError beginsWith:@"iAd click time is missing"], @"%@", self.loggerMock); - XCTAssert([self.loggerMock containsMessage:ADJLogLevelError beginsWith:@"iAd click time is missing"], @"%@", self.loggerMock); - // 1 session + 1 deep link XCTAssertEqual((NSUInteger)2, [self.packageHandlerMock.packageQueue count], @"%@", self.loggerMock); From dd6dcbfdb674ae7cd53a8a40d17f10f8b4cd443b Mon Sep 17 00:00:00 2001 From: Pedro Date: Wed, 22 Apr 2015 18:23:24 +0200 Subject: [PATCH 6/6] New version v4.2.3 --- Adjust.podspec | 4 ++-- Adjust/ADJUtil.m | 2 +- AdjustTests/ADJActivityHandlerTests.m | 2 +- README.md | 2 +- VERSION | 2 +- doc/migrate.md | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Adjust.podspec b/Adjust.podspec index 4221826d3..2a131fb73 100644 --- a/Adjust.podspec +++ b/Adjust.podspec @@ -1,11 +1,11 @@ Pod::Spec.new do |s| s.name = "Adjust" - s.version = "4.2.2" + s.version = "4.2.3" s.summary = "This is the iOS SDK of adjust. You can read more about it at http://adjust.com." s.homepage = "http://adjust.com" s.license = { :type => 'MIT', :file => 'MIT-LICENSE' } s.author = { "Christian Wellenbrock" => "welle@adjust.com" } - s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.2.2" } + s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.2.3" } s.platform = :ios, '4.3' s.framework = 'SystemConfiguration' s.weak_framework = 'AdSupport', 'iAd' diff --git a/Adjust/ADJUtil.m b/Adjust/ADJUtil.m index 2b78d82c3..2f175c456 100644 --- a/Adjust/ADJUtil.m +++ b/Adjust/ADJUtil.m @@ -16,7 +16,7 @@ #include static NSString * const kBaseUrl = @"https://app.adjust.com"; -static NSString * const kClientSdk = @"ios4.2.2"; +static NSString * const kClientSdk = @"ios4.2.3"; static NSString * const kDateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'Z"; static NSDateFormatter *dateFormat; diff --git a/AdjustTests/ADJActivityHandlerTests.m b/AdjustTests/ADJActivityHandlerTests.m index 99b945397..5b4601c06 100644 --- a/AdjustTests/ADJActivityHandlerTests.m +++ b/AdjustTests/ADJActivityHandlerTests.m @@ -121,7 +121,7 @@ - (void)testFirstRun ADJActivityPackage *activityPackage = (ADJActivityPackage *) self.packageHandlerMock.packageQueue[0]; // check the Sdk version is being tested - XCTAssertEqual(@"ios4.2.2", activityPackage.clientSdk, @"%@", activityPackage.extendedString); + XCTAssertEqual(@"ios4.2.3", activityPackage.clientSdk, @"%@", activityPackage.extendedString); // check the server url XCTAssertEqual(@"https://app.adjust.com", ADJUtil.baseUrl); diff --git a/README.md b/README.md index a2c56d735..4ebdbfd68 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ If you're using [CocoaPods][cocoapods], you can add the following line to your `Podfile` and continue with [step 3](#step3): ```ruby -pod 'Adjust', :git => 'git://github.com/adjust/ios_sdk.git', :tag => 'v4.2.2' +pod 'Adjust', :git => 'git://github.com/adjust/ios_sdk.git', :tag => 'v4.2.3' ``` ### 1. Get the SDK diff --git a/VERSION b/VERSION index af8c8ec7c..f2c6cb6af 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.2.2 +4.2.3 diff --git a/doc/migrate.md b/doc/migrate.md index 7e124da20..e8fe914e8 100644 --- a/doc/migrate.md +++ b/doc/migrate.md @@ -1,4 +1,4 @@ -## Migrate your adjust SDK for iOS to v4.2.2 from v3.4.0 +## Migrate your adjust SDK for iOS to v4.2.3 from v3.4.0 ### Initial setup