From 6e3654589f232484648da6df2a03a881372bd9a9 Mon Sep 17 00:00:00 2001 From: Christian Wellenbrock Date: Sat, 27 Dec 2014 13:53:03 +0100 Subject: [PATCH 01/10] Return early if ADClient class not found --- Adjust/ADJAdditions/UIDevice+ADJAdditions.m | 26 +++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m index 860ede8b1..6d28d8e50 100644 --- a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m +++ b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m @@ -173,22 +173,24 @@ - (void) adjSetIad:(ADJActivityHandler *) activityHandler{ #if !ADJUST_NO_IDA Class ADClientClass = NSClassFromString(@"ADClient"); - if (ADClientClass) { - @try { - SEL sharedClientSelector = NSSelectorFromString(@"sharedClient"); - SEL iadDateSelector = NSSelectorFromString(@"lookupAdConversionDetails:"); + if (ADClientClass == nil) { + return; + } + + @try { + SEL sharedClientSelector = NSSelectorFromString(@"sharedClient"); + SEL iadDateSelector = NSSelectorFromString(@"lookupAdConversionDetails:"); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" - id ADClientSharedClientInstance = [ADClientClass performSelector:sharedClientSelector]; + id ADClientSharedClientInstance = [ADClientClass performSelector:sharedClientSelector]; - [ADClientSharedClientInstance performSelector:iadDateSelector - withObject:^(NSDate *appPurchaseDate, NSDate *iAdImpressionDate) { - [activityHandler setIadDate:iAdImpressionDate withPurchaseDate:appPurchaseDate]; - }]; + [ADClientSharedClientInstance performSelector:iadDateSelector + withObject:^(NSDate *appPurchaseDate, NSDate *iAdImpressionDate) { + [activityHandler setIadDate:iAdImpressionDate withPurchaseDate:appPurchaseDate]; + }]; #pragma clang diagnostic pop - } - @catch (NSException *exception) { - } + } + @catch (NSException *exception) { } #endif } From 4af6c5d82ab14f764ca366528a1a1203ae45b29b Mon Sep 17 00:00:00 2001 From: Christian Wellenbrock Date: Sat, 27 Dec 2014 14:05:47 +0100 Subject: [PATCH 02/10] Don't perform iadDateSelector if instance doesn't respond --- Adjust/ADJAdditions/UIDevice+ADJAdditions.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m index 6d28d8e50..c3b87c430 100644 --- a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m +++ b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m @@ -183,6 +183,9 @@ - (void) adjSetIad:(ADJActivityHandler *) activityHandler{ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" id ADClientSharedClientInstance = [ADClientClass performSelector:sharedClientSelector]; + if (![ADClientSharedClientInstance respondsToSelector:iadDateSelector]) { + return; + } [ADClientSharedClientInstance performSelector:iadDateSelector withObject:^(NSDate *appPurchaseDate, NSDate *iAdImpressionDate) { From 5d0c68f15a1e35377620c6997b3fb0f2f53c2b64 Mon Sep 17 00:00:00 2001 From: Christian Wellenbrock Date: Sat, 27 Dec 2014 14:22:13 +0100 Subject: [PATCH 03/10] Check selector sharedClient --- Adjust/ADJAdditions/UIDevice+ADJAdditions.m | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m index c3b87c430..d48d93ff5 100644 --- a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m +++ b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m @@ -178,11 +178,15 @@ - (void) adjSetIad:(ADJActivityHandler *) activityHandler{ } @try { - SEL sharedClientSelector = NSSelectorFromString(@"sharedClient"); - SEL iadDateSelector = NSSelectorFromString(@"lookupAdConversionDetails:"); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" + SEL sharedClientSelector = NSSelectorFromString(@"sharedClient"); + if (![ADClientClass respondsToSelector:sharedClientSelector]) { + return; + } id ADClientSharedClientInstance = [ADClientClass performSelector:sharedClientSelector]; + + SEL iadDateSelector = NSSelectorFromString(@"lookupAdConversionDetails:"); if (![ADClientSharedClientInstance respondsToSelector:iadDateSelector]) { return; } From 2d40d8f37118c75e14334c9cdb26c436a340d6a6 Mon Sep 17 00:00:00 2001 From: Christian Wellenbrock Date: Sat, 27 Dec 2014 14:23:16 +0100 Subject: [PATCH 04/10] Return early if ADJUST_NO_IDA is set --- Adjust/ADJAdditions/UIDevice+ADJAdditions.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m index d48d93ff5..7eab69be4 100644 --- a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m +++ b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m @@ -170,9 +170,11 @@ - (NSString *)adjVendorId { } - (void) adjSetIad:(ADJActivityHandler *) activityHandler{ -#if !ADJUST_NO_IDA - Class ADClientClass = NSClassFromString(@"ADClient"); +#if ADJUST_NO_IDA + return +#endif + Class ADClientClass = NSClassFromString(@"ADClient"); if (ADClientClass == nil) { return; } @@ -199,6 +201,5 @@ - (void) adjSetIad:(ADJActivityHandler *) activityHandler{ } @catch (NSException *exception) { } -#endif } @end From 47a5a46318d2a21b933e61a7c2d057512a9f8598 Mon Sep 17 00:00:00 2001 From: Christian Wellenbrock Date: Sat, 27 Dec 2014 14:25:52 +0100 Subject: [PATCH 05/10] Return early if ADJUST_NO_IDFA or class not found --- Adjust/ADJAdditions/UIDevice+ADJAdditions.m | 62 +++++++++++---------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m index 7eab69be4..473066e9c 100644 --- a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m +++ b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m @@ -25,62 +25,64 @@ @implementation UIDevice(ADJAdditions) - (BOOL)adjTrackingEnabled { -#if !ADJUST_NO_IDFA +#if ADJUST_NO_IDFA + return NO; +#endif + NSString *className = [NSString adjJoin:@"A", @"S", @"identifier", @"manager", nil]; NSString *keyManager = [NSString adjJoin:@"shared", @"manager", nil]; NSString *keyEnabled = [NSString adjJoin:@"is", @"advertising", @"tracking", @"enabled", nil]; Class class = NSClassFromString(className); - if (class) { - @try { - SEL selManager = NSSelectorFromString(keyManager); - SEL selEnabled = NSSelectorFromString(keyEnabled); + if (class == nil) { + return NO; + } + + @try { + SEL selManager = NSSelectorFromString(keyManager); + SEL selEnabled = NSSelectorFromString(keyEnabled); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" - id manager = [class performSelector:selManager]; - BOOL enabled = (BOOL)[manager performSelector:selEnabled]; + id manager = [class performSelector:selManager]; + BOOL enabled = (BOOL)[manager performSelector:selEnabled]; #pragma clang diagnostic pop - return enabled; - } @catch (NSException *e) { - return NO; - } - } else -#endif - { + return enabled; + } @catch (NSException *e) { return NO; } } - (NSString *)adjIdForAdvertisers { -#if !ADJUST_NO_IDFA +#if ADJUST_NO_IDFA + return @""; +#endif + NSString *className = [NSString adjJoin:@"A", @"S", @"identifier", @"manager", nil]; NSString *keyManager = [NSString adjJoin:@"shared", @"manager", nil]; NSString *keyIdentifier = [NSString adjJoin:@"advertising", @"identifier", nil]; NSString *keyString = [NSString adjJoin:@"UUID", @"string", nil]; Class class = NSClassFromString(className); - if (class) { - @try { - SEL selManager = NSSelectorFromString(keyManager); - SEL selIdentifier = NSSelectorFromString(keyIdentifier); - SEL selString = NSSelectorFromString(keyString); + if (class == nil) { + return @""; + } + + @try { + SEL selManager = NSSelectorFromString(keyManager); + SEL selIdentifier = NSSelectorFromString(keyIdentifier); + SEL selString = NSSelectorFromString(keyString); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" - id manager = [class performSelector:selManager]; - id identifier = [manager performSelector:selIdentifier]; - NSString *string = [identifier performSelector:selString]; + id manager = [class performSelector:selManager]; + id identifier = [manager performSelector:selIdentifier]; + NSString *string = [identifier performSelector:selString]; #pragma clang diagnostic pop - return string; - } @catch (NSException *e) { - return @""; - } - } else -#endif - { + return string; + } @catch (NSException *e) { return @""; } } From 51b78a68eec1b14e7924cd3273623a220bf428e1 Mon Sep 17 00:00:00 2001 From: Christian Wellenbrock Date: Sat, 27 Dec 2014 14:31:06 +0100 Subject: [PATCH 06/10] Always check selector before performing it --- Adjust/ADJAdditions/UIDevice+ADJAdditions.m | 30 ++++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m index 473066e9c..a1b565499 100644 --- a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m +++ b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m @@ -44,11 +44,17 @@ - (BOOL)adjTrackingEnabled { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" - id manager = [class performSelector:selManager]; - BOOL enabled = (BOOL)[manager performSelector:selEnabled]; -#pragma clang diagnostic pop + if (![class respondsToSelector:selManager]) { + return NO; + } + id manager = [class performSelector:selManager]; + if (![manager respondsToSelector:selEnabled]) { + return NO; + } + BOOL enabled = (BOOL)[manager performSelector:selEnabled]; return enabled; +#pragma clang diagnostic pop } @catch (NSException *e) { return NO; } @@ -76,12 +82,22 @@ - (NSString *)adjIdForAdvertisers { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" - id manager = [class performSelector:selManager]; - id identifier = [manager performSelector:selIdentifier]; - NSString *string = [identifier performSelector:selString]; -#pragma clang diagnostic pop + if (![class respondsToSelector:selManager]) { + return @""; + } + id manager = [class performSelector:selManager]; + + if (![manager respondsToSelector:selIdentifier]) { + return @""; + } + id identifier = [manager performSelector:selIdentifier]; + if (![identifier respondsToSelector:selString]) { + return @""; + } + NSString *string = [identifier performSelector:selString]; return string; +#pragma clang diagnostic pop } @catch (NSException *e) { return @""; } From ac78226d35e598712b3259e95aa59af2e01fdd57 Mon Sep 17 00:00:00 2001 From: Christian Wellenbrock Date: Sat, 27 Dec 2014 14:35:58 +0100 Subject: [PATCH 07/10] Create selectors late --- Adjust/ADJAdditions/UIDevice+ADJAdditions.m | 30 +++++++++------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m index a1b565499..33a3220f7 100644 --- a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m +++ b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m @@ -28,27 +28,24 @@ - (BOOL)adjTrackingEnabled { #if ADJUST_NO_IDFA return NO; #endif - - NSString *className = [NSString adjJoin:@"A", @"S", @"identifier", @"manager", nil]; - NSString *keyManager = [NSString adjJoin:@"shared", @"manager", nil]; - NSString *keyEnabled = [NSString adjJoin:@"is", @"advertising", @"tracking", @"enabled", nil]; - + NSString *className = [NSString adjJoin:@"A", @"S", @"identifier", @"manager", nil]; Class class = NSClassFromString(className); if (class == nil) { return NO; } @try { - SEL selManager = NSSelectorFromString(keyManager); - SEL selEnabled = NSSelectorFromString(keyEnabled); - #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" + NSString *keyManager = [NSString adjJoin:@"shared", @"manager", nil]; + SEL selManager = NSSelectorFromString(keyManager); if (![class respondsToSelector:selManager]) { return NO; } id manager = [class performSelector:selManager]; + NSString *keyEnabled = [NSString adjJoin:@"is", @"advertising", @"tracking", @"enabled", nil]; + SEL selEnabled = NSSelectorFromString(keyEnabled); if (![manager respondsToSelector:selEnabled]) { return NO; } @@ -64,34 +61,31 @@ - (NSString *)adjIdForAdvertisers { #if ADJUST_NO_IDFA return @""; #endif - - NSString *className = [NSString adjJoin:@"A", @"S", @"identifier", @"manager", nil]; - NSString *keyManager = [NSString adjJoin:@"shared", @"manager", nil]; - NSString *keyIdentifier = [NSString adjJoin:@"advertising", @"identifier", nil]; - NSString *keyString = [NSString adjJoin:@"UUID", @"string", nil]; - + NSString *className = [NSString adjJoin:@"A", @"S", @"identifier", @"manager", nil]; Class class = NSClassFromString(className); if (class == nil) { return @""; } @try { - SEL selManager = NSSelectorFromString(keyManager); - SEL selIdentifier = NSSelectorFromString(keyIdentifier); - SEL selString = NSSelectorFromString(keyString); - #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" + NSString *keyManager = [NSString adjJoin:@"shared", @"manager", nil]; + SEL selManager = NSSelectorFromString(keyManager); if (![class respondsToSelector:selManager]) { return @""; } id manager = [class performSelector:selManager]; + NSString *keyIdentifier = [NSString adjJoin:@"advertising", @"identifier", nil]; + SEL selIdentifier = NSSelectorFromString(keyIdentifier); if (![manager respondsToSelector:selIdentifier]) { return @""; } id identifier = [manager performSelector:selIdentifier]; + NSString *keyString = [NSString adjJoin:@"UUID", @"string", nil]; + SEL selString = NSSelectorFromString(keyString); if (![identifier respondsToSelector:selString]) { return @""; } From e405b7ce6af1d3a0e5a870033928d53078ccd6c8 Mon Sep 17 00:00:00 2001 From: Christian Wellenbrock Date: Sat, 27 Dec 2014 14:37:35 +0100 Subject: [PATCH 08/10] Remove try catch blocks --- Adjust/ADJAdditions/UIDevice+ADJAdditions.m | 106 +++++++++----------- 1 file changed, 47 insertions(+), 59 deletions(-) diff --git a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m index 33a3220f7..ea907540b 100644 --- a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m +++ b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m @@ -34,27 +34,23 @@ - (BOOL)adjTrackingEnabled { return NO; } - @try { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" - NSString *keyManager = [NSString adjJoin:@"shared", @"manager", nil]; - SEL selManager = NSSelectorFromString(keyManager); - if (![class respondsToSelector:selManager]) { - return NO; - } - id manager = [class performSelector:selManager]; - - NSString *keyEnabled = [NSString adjJoin:@"is", @"advertising", @"tracking", @"enabled", nil]; - SEL selEnabled = NSSelectorFromString(keyEnabled); - if (![manager respondsToSelector:selEnabled]) { - return NO; - } - BOOL enabled = (BOOL)[manager performSelector:selEnabled]; - return enabled; -#pragma clang diagnostic pop - } @catch (NSException *e) { + NSString *keyManager = [NSString adjJoin:@"shared", @"manager", nil]; + SEL selManager = NSSelectorFromString(keyManager); + if (![class respondsToSelector:selManager]) { return NO; } + id manager = [class performSelector:selManager]; + + NSString *keyEnabled = [NSString adjJoin:@"is", @"advertising", @"tracking", @"enabled", nil]; + SEL selEnabled = NSSelectorFromString(keyEnabled); + if (![manager respondsToSelector:selEnabled]) { + return NO; + } + BOOL enabled = (BOOL)[manager performSelector:selEnabled]; + return enabled; +#pragma clang diagnostic pop } - (NSString *)adjIdForAdvertisers { @@ -67,34 +63,30 @@ - (NSString *)adjIdForAdvertisers { return @""; } - @try { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" - NSString *keyManager = [NSString adjJoin:@"shared", @"manager", nil]; - SEL selManager = NSSelectorFromString(keyManager); - if (![class respondsToSelector:selManager]) { - return @""; - } - id manager = [class performSelector:selManager]; - - NSString *keyIdentifier = [NSString adjJoin:@"advertising", @"identifier", nil]; - SEL selIdentifier = NSSelectorFromString(keyIdentifier); - if (![manager respondsToSelector:selIdentifier]) { - return @""; - } - id identifier = [manager performSelector:selIdentifier]; - - NSString *keyString = [NSString adjJoin:@"UUID", @"string", nil]; - SEL selString = NSSelectorFromString(keyString); - if (![identifier respondsToSelector:selString]) { - return @""; - } - NSString *string = [identifier performSelector:selString]; - return string; -#pragma clang diagnostic pop - } @catch (NSException *e) { + NSString *keyManager = [NSString adjJoin:@"shared", @"manager", nil]; + SEL selManager = NSSelectorFromString(keyManager); + if (![class respondsToSelector:selManager]) { return @""; } + id manager = [class performSelector:selManager]; + + NSString *keyIdentifier = [NSString adjJoin:@"advertising", @"identifier", nil]; + SEL selIdentifier = NSSelectorFromString(keyIdentifier); + if (![manager respondsToSelector:selIdentifier]) { + return @""; + } + id identifier = [manager performSelector:selIdentifier]; + + NSString *keyString = [NSString adjJoin:@"UUID", @"string", nil]; + SEL selString = NSSelectorFromString(keyString); + if (![identifier respondsToSelector:selString]) { + return @""; + } + NSString *string = [identifier performSelector:selString]; + return string; +#pragma clang diagnostic pop } - (NSString *)adjFbAttributionId { @@ -191,27 +183,23 @@ - (void) adjSetIad:(ADJActivityHandler *) activityHandler{ return; } - @try { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" - SEL sharedClientSelector = NSSelectorFromString(@"sharedClient"); - if (![ADClientClass respondsToSelector:sharedClientSelector]) { - return; - } - id ADClientSharedClientInstance = [ADClientClass performSelector:sharedClientSelector]; - - SEL iadDateSelector = NSSelectorFromString(@"lookupAdConversionDetails:"); - if (![ADClientSharedClientInstance respondsToSelector:iadDateSelector]) { - return; - } - - [ADClientSharedClientInstance performSelector:iadDateSelector - withObject:^(NSDate *appPurchaseDate, NSDate *iAdImpressionDate) { - [activityHandler setIadDate:iAdImpressionDate withPurchaseDate:appPurchaseDate]; - }]; -#pragma clang diagnostic pop + SEL sharedClientSelector = NSSelectorFromString(@"sharedClient"); + if (![ADClientClass respondsToSelector:sharedClientSelector]) { + return; } - @catch (NSException *exception) { + id ADClientSharedClientInstance = [ADClientClass performSelector:sharedClientSelector]; + + SEL iadDateSelector = NSSelectorFromString(@"lookupAdConversionDetails:"); + if (![ADClientSharedClientInstance respondsToSelector:iadDateSelector]) { + return; } + + [ADClientSharedClientInstance performSelector:iadDateSelector + withObject:^(NSDate *appPurchaseDate, NSDate *iAdImpressionDate) { + [activityHandler setIadDate:iAdImpressionDate withPurchaseDate:appPurchaseDate]; + }]; +#pragma clang diagnostic pop } @end From 63554e03662f7b18c7a322873a09e5714e8a4b39 Mon Sep 17 00:00:00 2001 From: Christian Wellenbrock Date: Sat, 27 Dec 2014 14:44:06 +0100 Subject: [PATCH 09/10] Remove warnings for ADJUST_NO_{IDFA,IDA} --- Adjust/ADJAdditions/UIDevice+ADJAdditions.m | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m index ea907540b..740b05101 100644 --- a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m +++ b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m @@ -27,7 +27,8 @@ @implementation UIDevice(ADJAdditions) - (BOOL)adjTrackingEnabled { #if ADJUST_NO_IDFA return NO; -#endif +#else + NSString *className = [NSString adjJoin:@"A", @"S", @"identifier", @"manager", nil]; Class class = NSClassFromString(className); if (class == nil) { @@ -51,12 +52,14 @@ - (BOOL)adjTrackingEnabled { BOOL enabled = (BOOL)[manager performSelector:selEnabled]; return enabled; #pragma clang diagnostic pop +#endif } - (NSString *)adjIdForAdvertisers { #if ADJUST_NO_IDFA return @""; -#endif +#else + NSString *className = [NSString adjJoin:@"A", @"S", @"identifier", @"manager", nil]; Class class = NSClassFromString(className); if (class == nil) { @@ -87,6 +90,7 @@ - (NSString *)adjIdForAdvertisers { NSString *string = [identifier performSelector:selString]; return string; #pragma clang diagnostic pop +#endif } - (NSString *)adjFbAttributionId { @@ -175,8 +179,8 @@ - (NSString *)adjVendorId { - (void) adjSetIad:(ADJActivityHandler *) activityHandler{ #if ADJUST_NO_IDA - return -#endif + return; +#else Class ADClientClass = NSClassFromString(@"ADClient"); if (ADClientClass == nil) { @@ -201,5 +205,6 @@ - (void) adjSetIad:(ADJActivityHandler *) activityHandler{ [activityHandler setIadDate:iAdImpressionDate withPurchaseDate:appPurchaseDate]; }]; #pragma clang diagnostic pop +#endif } @end From 6bd3f1a372d4e1c5448586aaba919fbd0099edb1 Mon Sep 17 00:00:00 2001 From: Christian Wellenbrock Date: Sat, 27 Dec 2014 14:52:05 +0100 Subject: [PATCH 10/10] Add comments to dynamic functions --- Adjust/ADJAdditions/UIDevice+ADJAdditions.m | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m index 740b05101..3f8548aca 100644 --- a/Adjust/ADJAdditions/UIDevice+ADJAdditions.m +++ b/Adjust/ADJAdditions/UIDevice+ADJAdditions.m @@ -29,6 +29,7 @@ - (BOOL)adjTrackingEnabled { return NO; #else + // return [[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]; NSString *className = [NSString adjJoin:@"A", @"S", @"identifier", @"manager", nil]; Class class = NSClassFromString(className); if (class == nil) { @@ -37,6 +38,7 @@ - (BOOL)adjTrackingEnabled { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" + NSString *keyManager = [NSString adjJoin:@"shared", @"manager", nil]; SEL selManager = NSSelectorFromString(keyManager); if (![class respondsToSelector:selManager]) { @@ -51,6 +53,7 @@ - (BOOL)adjTrackingEnabled { } BOOL enabled = (BOOL)[manager performSelector:selEnabled]; return enabled; + #pragma clang diagnostic pop #endif } @@ -60,6 +63,7 @@ - (NSString *)adjIdForAdvertisers { return @""; #else + // return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; NSString *className = [NSString adjJoin:@"A", @"S", @"identifier", @"manager", nil]; Class class = NSClassFromString(className); if (class == nil) { @@ -68,6 +72,7 @@ - (NSString *)adjIdForAdvertisers { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" + NSString *keyManager = [NSString adjJoin:@"shared", @"manager", nil]; SEL selManager = NSSelectorFromString(keyManager); if (![class respondsToSelector:selManager]) { @@ -89,6 +94,7 @@ - (NSString *)adjIdForAdvertisers { } NSString *string = [identifier performSelector:selString]; return string; + #pragma clang diagnostic pop #endif } @@ -182,6 +188,7 @@ - (void) adjSetIad:(ADJActivityHandler *) activityHandler{ return; #else + // [[ADClient sharedClient] lookupAdConversionDetails:...] Class ADClientClass = NSClassFromString(@"ADClient"); if (ADClientClass == nil) { return; @@ -189,6 +196,7 @@ - (void) adjSetIad:(ADJActivityHandler *) activityHandler{ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" + SEL sharedClientSelector = NSSelectorFromString(@"sharedClient"); if (![ADClientClass respondsToSelector:sharedClientSelector]) { return; @@ -204,6 +212,7 @@ - (void) adjSetIad:(ADJActivityHandler *) activityHandler{ withObject:^(NSDate *appPurchaseDate, NSDate *iAdImpressionDate) { [activityHandler setIadDate:iAdImpressionDate withPurchaseDate:appPurchaseDate]; }]; + #pragma clang diagnostic pop #endif }