From 806e523db2535a195b0ad8c53009727d3ccc5e61 Mon Sep 17 00:00:00 2001 From: Akash Verma Date: Wed, 1 Jul 2020 15:14:22 +0000 Subject: [PATCH 1/4] Merge pull request #590 in MOBILE-SDK/app_mobile-sdk-ios from MS-4406_API_Violation_Crash_TestCaseSuite to develop Squashed commit of the following: commit 80c25b63ae15564c13ba7e3d25a7044f6a455548 Author: Akash.Verma Date: Wed Jul 1 17:20:17 2020 +0530 Fixed the failing Unit tests commit 1fdbb4254c107eb6d6d973fb2632d6b31c8fad86 Author: Akash.Verma Date: Tue Jun 30 19:27:53 2020 +0530 Resolve crash for API Violation XCTestExpectation --- .../ANUniversalTagRequestBuilderTests.m | 9 ++---- .../UnitTests/LazyLoadFeatureTests.m | 28 +++++++++---------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/tests/UnitTestApp/UnitTests/ANUniversalTagRequestBuilderTests.m b/tests/UnitTestApp/UnitTests/ANUniversalTagRequestBuilderTests.m index 07adaa439..c9efa4364 100644 --- a/tests/UnitTestApp/UnitTests/ANUniversalTagRequestBuilderTests.m +++ b/tests/UnitTestApp/UnitTests/ANUniversalTagRequestBuilderTests.m @@ -233,7 +233,7 @@ - (void)testUTRequestWithPurpose1SetTrueAndConsentSetFalse dispatch_queue_t backgroundQueue = dispatch_queue_create("QUEUE FOR testUTRequest.", DISPATCH_QUEUE_SERIAL); XCTestExpectation *expectation = [self expectationWithDescription:[NSString stringWithFormat:@"%s", __PRETTY_FUNCTION__]]; - [ANGDPRSettings setConsentRequired:FALSE]; + [ANGDPRSettings setConsentRequired:[NSNumber numberWithInt:0]]; [ANGDPRSettings setPurposeConsents:@"1010"]; // @@ -367,10 +367,7 @@ - (void)testUTRequestWithoutPurpose1ConsentTrue // Device Id Start NSDictionary *deviceId = device[@"device_id"]; - XCTAssertNotNil(deviceId); - NSString *idfa = deviceId[@"idfa"]; - XCTAssertNotNil(idfa); - XCTAssertEqualObjects(idfa, @"00000000-0000-0000-0000-000000000000"); + XCTAssertNil(deviceId); // [expectation fulfill]; }); @@ -386,7 +383,7 @@ - (void)testUTRequestWithoutPurpose1ConsentFalse XCTestExpectation *expectation = [self expectationWithDescription:[NSString stringWithFormat:@"%s", __PRETTY_FUNCTION__]]; - [ANGDPRSettings setConsentRequired:FALSE]; + [ANGDPRSettings setConsentRequired:[NSNumber numberWithInt:0]]; // dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), backgroundQueue, diff --git a/tests/UnitTestApp/UnitTests/LazyLoadFeatureTests.m b/tests/UnitTestApp/UnitTests/LazyLoadFeatureTests.m index 479185782..de39a6d77 100644 --- a/tests/UnitTestApp/UnitTests/LazyLoadFeatureTests.m +++ b/tests/UnitTestApp/UnitTests/LazyLoadFeatureTests.m @@ -112,20 +112,6 @@ - (void)setUp [ANInstreamVideoAd setDoNotResetAdUnitUUID:YES]; - // - self.expectationLazyAdDidReceiveAd = nil; - self.expectationAdDidReceiveAd = nil; - self.expectationAdDidReceiveNativeAd = nil; - self.expectationMultiAdRequestSuccess = nil; - self.expectationRequestFailedWithError = nil; - - self.expectationAdResponseInfoIsDefined = nil; - self.expectationAdResponseInfoIsDefinedAndDifferent = nil; - self.expectationTryToLoadWebviewSecondTimeForLazyAdUnit = nil; - self.expectationAutoRefreshTimerIsSetProperly = nil; - self.expectationFindANAdResponseInfoOnLazyFailure = nil; - self.expectationRunLoadAdASecondTimeWithoutCallingLoadLazyAd = nil; - // self.rootVC = [UIApplication sharedApplication].keyWindow.rootViewController; @@ -141,6 +127,20 @@ - (void)tearDown { [[ANHTTPStubbingManager sharedStubbingManager] removeAllStubs]; [[ANHTTPStubbingManager sharedStubbingManager] disable]; + + // + self.expectationLazyAdDidReceiveAd = nil; + self.expectationAdDidReceiveAd = nil; + self.expectationAdDidReceiveNativeAd = nil; + self.expectationMultiAdRequestSuccess = nil; + self.expectationRequestFailedWithError = nil; + + self.expectationAdResponseInfoIsDefined = nil; + self.expectationAdResponseInfoIsDefinedAndDifferent = nil; + self.expectationTryToLoadWebviewSecondTimeForLazyAdUnit = nil; + self.expectationAutoRefreshTimerIsSetProperly = nil; + self.expectationFindANAdResponseInfoOnLazyFailure = nil; + self.expectationRunLoadAdASecondTimeWithoutCallingLoadLazyAd = nil; } - (void)createAdUnits From 7ecfdf27e5fac898bab4e5b78647f4a7b0a33799 Mon Sep 17 00:00:00 2001 From: Punnaghai Puviarasu Date: Tue, 14 Jul 2020 10:06:34 -0400 Subject: [PATCH 2/4] made podspec changes --- AppNexusSDK.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AppNexusSDK.podspec b/AppNexusSDK.podspec index 89c441e31..bfbeec2ff 100644 --- a/AppNexusSDK.podspec +++ b/AppNexusSDK.podspec @@ -47,7 +47,7 @@ DESC subspec.dependency 'AppNexusSDK/AppNexusSDK', "#{s.version}" subspec.dependency 'FBAudienceNetwork', '5.9.0' subspec.source_files = "csr/Facebook/*.{h,m}" - subspec.public_header_files = "csr/Facebook/ANFBSettings.h" + subspec.public_header_files = "csr/Facebook/*.h" subspec.xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => '${PODS_ROOT}/FBAudienceNetwork/**' } end From 7f5c38d35f43ace637f0e9475acd1860f56eb811 Mon Sep 17 00:00:00 2001 From: Akash Verma Date: Tue, 14 Jul 2020 16:46:29 +0000 Subject: [PATCH 3/4] Merge pull request #593 in MOBILE-SDK/app_mobile-sdk-ios from MS-4435_PurposeConsent_Empty to develop Squashed commit of the following: commit 754e470abebf224a51882af85bc5f7d3386c35d0 Author: Akash.Verma Date: Tue Jul 14 21:31:30 2020 +0530 Added a nil check commit f6ff9f782d7f49c001196b342ab55fc50dd251c5 Author: Akash.Verma Date: Tue Jul 14 15:37:19 2020 +0530 Testcases updated commit 1c5dda167a1fc75a6d6cd0ff07f10c07081eac35 Author: Akash.Verma Date: Fri Jul 10 18:58:24 2020 +0530 Testcases added for ANGDPRSettings class commit ba35fa9409881b26120a1ac6fbe057d0e40dd40f Author: Akash.Verma Date: Thu Jul 9 19:30:25 2020 +0530 Added string length check to avoid crash --- .../internal/config/ANGDPRSettings.m | 2 +- .../UnitTestApp.xcodeproj/project.pbxproj | 4 + .../UnitTests/ANGDPRSettingsTestCase.m | 212 ++++++++++++++++++ 3 files changed, 217 insertions(+), 1 deletion(-) create mode 100644 tests/UnitTestApp/UnitTests/ANGDPRSettingsTestCase.m diff --git a/sdk/sourcefiles/internal/config/ANGDPRSettings.m b/sdk/sourcefiles/internal/config/ANGDPRSettings.m index 32501712c..d95d8db18 100644 --- a/sdk/sourcefiles/internal/config/ANGDPRSettings.m +++ b/sdk/sourcefiles/internal/config/ANGDPRSettings.m @@ -114,7 +114,7 @@ + (NSString *) getDeviceAccessConsent { if(purposeConsents.length <= 0){ purposeConsents = [[NSUserDefaults standardUserDefaults] objectForKey:ANIABTCF_PurposeConsents]; } - if(purposeConsents > 0){ + if(purposeConsents != nil && purposeConsents.length > 0){ return [purposeConsents substringToIndex:1]; } return nil; diff --git a/tests/UnitTestApp/UnitTestApp.xcodeproj/project.pbxproj b/tests/UnitTestApp/UnitTestApp.xcodeproj/project.pbxproj index 41d45de5d..60378d527 100644 --- a/tests/UnitTestApp/UnitTestApp.xcodeproj/project.pbxproj +++ b/tests/UnitTestApp/UnitTestApp.xcodeproj/project.pbxproj @@ -392,6 +392,7 @@ 0EEFE1F8220098BD002B5F5F /* ANMockMediationAdapterLoadThenFail.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EEFE1F7220098BD002B5F5F /* ANMockMediationAdapterLoadThenFail.m */; }; 0EEFE1FB220098C9002B5F5F /* ANMockMediationAdapterLoadAndHitOtherCallbacks.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EEFE1FA220098C9002B5F5F /* ANMockMediationAdapterLoadAndHitOtherCallbacks.m */; }; 0EEFE1FD22009CDB002B5F5F /* OMID_TestResponse.json in Resources */ = {isa = PBXBuildFile; fileRef = 0EEFE1FC22009CDB002B5F5F /* OMID_TestResponse.json */; }; + 38F0224A24B8561500CE4CE0 /* ANGDPRSettingsTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 38F0224924B8561500CE4CE0 /* ANGDPRSettingsTestCase.m */; }; 4F11628B238749A200101DC1 /* MARHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FE4DB05237B40F8005B5BCF /* MARHelper.m */; }; 4F3B837E2481E866005EE88C /* LazyWebview_Basic.json in Resources */ = {isa = PBXBuildFile; fileRef = 4F3B837B2481E865005EE88C /* LazyWebview_Basic.json */; }; 4F3B837F2481E866005EE88C /* LazyWebview_MRAID.json in Resources */ = {isa = PBXBuildFile; fileRef = 4F3B837D2481E865005EE88C /* LazyWebview_MRAID.json */; }; @@ -953,6 +954,7 @@ 0EEFE1F9220098C9002B5F5F /* ANMockMediationAdapterLoadAndHitOtherCallbacks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ANMockMediationAdapterLoadAndHitOtherCallbacks.h; sourceTree = ""; }; 0EEFE1FA220098C9002B5F5F /* ANMockMediationAdapterLoadAndHitOtherCallbacks.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ANMockMediationAdapterLoadAndHitOtherCallbacks.m; sourceTree = ""; }; 0EEFE1FC22009CDB002B5F5F /* OMID_TestResponse.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = OMID_TestResponse.json; sourceTree = ""; }; + 38F0224924B8561500CE4CE0 /* ANGDPRSettingsTestCase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ANGDPRSettingsTestCase.m; sourceTree = ""; }; 4F3B837B2481E865005EE88C /* LazyWebview_Basic.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = LazyWebview_Basic.json; sourceTree = ""; }; 4F3B837D2481E865005EE88C /* LazyWebview_MRAID.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = LazyWebview_MRAID.json; sourceTree = ""; }; 4F59A7A42379CC6B002E0482 /* MARGeneralTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MARGeneralTests.m; sourceTree = ""; }; @@ -1630,6 +1632,7 @@ 4F9CED4723CC9E7700BE3443 /* PrivateAPI.m */, 0E8C982C21FF4191005D1F0E /* UIViewConstraintsTestCase.m */, 0EC17C5121F72EA300F0F6AF /* UnitTests.m */, + 38F0224924B8561500CE4CE0 /* ANGDPRSettingsTestCase.m */, ); path = UnitTests; sourceTree = ""; @@ -2487,6 +2490,7 @@ 0E8C984121FF42F1005D1F0E /* ANMockMediationAdapterBannerNeverCalled.m in Sources */, 0EEFE114220055C4002B5F5F /* ANMockMediationAdapterSuccessfulBanner.m in Sources */, 4FE5D816248A21AD00B86BDA /* ANNativeAdRequest+ANTest.m in Sources */, + 38F0224A24B8561500CE4CE0 /* ANGDPRSettingsTestCase.m in Sources */, 0E6612C322CA736300DDC5CD /* ANNativeAdView.m in Sources */, 0E8C982B21FF417C005D1F0E /* ANNativeStandardAdResponseTestCase.m in Sources */, 60F8A7FF23280BF10030D53D /* ANReachability+ANTest.h in Sources */, diff --git a/tests/UnitTestApp/UnitTests/ANGDPRSettingsTestCase.m b/tests/UnitTestApp/UnitTests/ANGDPRSettingsTestCase.m new file mode 100644 index 000000000..dde88f5e9 --- /dev/null +++ b/tests/UnitTestApp/UnitTests/ANGDPRSettingsTestCase.m @@ -0,0 +1,212 @@ +/* Copyright 2020 APPNEXUS INC + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +#import +#import "ANGDPRSettings.h" + +NSString * const ANGDPR_ConsentString = @"ANGDPR_ConsentString"; +NSString * const ANGDPR_ConsentRequired = @"ANGDPR_ConsentRequired"; +NSString * const ANGDPR_PurposeConsents = @"ANGDPR_PurposeConsents"; + +//TCF 2.0 variables +NSString * const ANIABTCF_ConsentString = @"IABTCF_TCString"; +NSString * const ANIABTCF_SubjectToGDPR = @"IABTCF_gdprApplies"; +NSString * const ANIABTCF_PurposeConsents = @"IABTCF_PurposeConsents"; + +//TCF 1.1 variables +NSString * const ANIABConsent_ConsentString = @"IABConsent_ConsentString"; +NSString * const ANIABConsent_SubjectToGDPR = @"IABConsent_SubjectToGDPR"; + +@interface ANGDPRSettingsTestCase : XCTestCase + +@end + +@implementation ANGDPRSettingsTestCase + +- (void)setUp { + // Put setup code here. This method is called before the invocation of each test method in the class. +} + +- (void)tearDown { + [ANGDPRSettings reset]; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:ANIABTCF_ConsentString]; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:ANIABConsent_ConsentString]; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:ANIABTCF_SubjectToGDPR]; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:ANIABConsent_SubjectToGDPR]; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:ANIABTCF_PurposeConsents]; +} + +- (void)testGDPRConsentString +{ + [ANGDPRSettings setConsentString:@"BOMyQRvOMyQRvABABBAAABAAAAAAEA"]; + XCTAssertTrue([[ANGDPRSettings getConsentString] isEqualToString:@"BOMyQRvOMyQRvABABBAAABAAAAAAEA"]); +} + +- (void)testGDPRConsentStringWithEmpty +{ + [ANGDPRSettings setConsentString:@""]; + XCTAssertTrue([[ANGDPRSettings getConsentString] isEqualToString:@""]); +} + +- (void)testIABTCFConsentString +{ + [[NSUserDefaults standardUserDefaults] setObject:@"BOMyQRvOMyQRvABABBAAABAAAAAAEA" forKey:ANIABTCF_ConsentString]; + XCTAssertTrue([[ANGDPRSettings getConsentString] isEqualToString:@"BOMyQRvOMyQRvABABBAAABAAAAAAEA"]); +} + +- (void)testIABTCFConsentStringWithEmpty +{ + [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:ANIABTCF_ConsentString]; + XCTAssertTrue([[ANGDPRSettings getConsentString] isEqualToString:@""]); +} + +- (void)testIABConsentString +{ + [[NSUserDefaults standardUserDefaults] setObject:@"BOMyQRvOMyQRvABABBAAABAAAAAAEA" forKey:ANIABConsent_ConsentString]; + XCTAssertTrue([[ANGDPRSettings getConsentString] isEqualToString:@"BOMyQRvOMyQRvABABBAAABAAAAAAEA"]); +} + +- (void)testIABConsentStringWithEmpty +{ + [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:ANIABConsent_ConsentString]; + XCTAssertTrue([[ANGDPRSettings getConsentString] isEqualToString:@""]); +} + +- (void)testGDPRConsentRequiredTrue +{ + [ANGDPRSettings setConsentRequired:[NSNumber numberWithInt:1]]; + XCTAssertTrue([[ANGDPRSettings getConsentRequired] boolValue] == true); +} + +- (void)testGDPRConsentRequiredFalse +{ + [ANGDPRSettings setConsentRequired:[NSNumber numberWithInt:0]]; + XCTAssertTrue([[ANGDPRSettings getConsentRequired] boolValue] == false); +} + +- (void)testIABTCFConsentRequiredTrue +{ + [[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:1] forKey:ANIABTCF_SubjectToGDPR]; + XCTAssertTrue([[ANGDPRSettings getConsentRequired] boolValue] == true); +} + +- (void)testIABTCFConsentRequiredFalse +{ + [[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:0] forKey:ANIABTCF_SubjectToGDPR]; + XCTAssertTrue([[ANGDPRSettings getConsentRequired] boolValue] == false); +} + +- (void)testIABConsentRequiredTrue +{ + [[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:1] forKey:ANIABConsent_SubjectToGDPR]; + XCTAssertTrue([[ANGDPRSettings getConsentRequired] boolValue] == true); +} + +- (void)testIABConsentRequiredFalse +{ + [[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:0] forKey:ANIABConsent_SubjectToGDPR]; + XCTAssertTrue([[ANGDPRSettings getConsentRequired] boolValue] == false); +} + +- (void)testGDPRPurposeConsents +{ + [ANGDPRSettings setPurposeConsents:@"10101001"]; + XCTAssertTrue([[ANGDPRSettings getDeviceAccessConsent] isEqualToString:@"1"]); +} + +- (void)testGDPRPurposeConsentsEmpty +{ + [ANGDPRSettings setPurposeConsents:@""]; + XCTAssertTrue([ANGDPRSettings getDeviceAccessConsent] == nil); +} + +- (void)testIABTCFPurposeConsents +{ + [[NSUserDefaults standardUserDefaults] setObject:@"10101001" forKey:ANIABTCF_PurposeConsents]; + XCTAssertTrue([[ANGDPRSettings getDeviceAccessConsent] isEqualToString:@"1"]); +} + +- (void)testIABTCFPurposeConsentsEmpty +{ + [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:ANIABTCF_PurposeConsents]; + XCTAssertTrue([ANGDPRSettings getDeviceAccessConsent] == nil); +} + +- (void)testAccessDeviceData_PurposeConsentsEmpty_ConsentRequiredEmpty +{ + XCTAssertTrue([ANGDPRSettings canAccessDeviceData] == true); +} + +- (void)testAccessDeviceData_PurposeConsentsEmpty_ConsentRequiredFalse +{ + [ANGDPRSettings setConsentRequired:[NSNumber numberWithInt:0]]; + XCTAssertTrue([ANGDPRSettings canAccessDeviceData] == true); +} + +- (void)testAccessDeviceData_PurposeConsentsEmpty_IABTCFConsentRequiredFalse +{ + [[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:0] forKey:ANIABTCF_SubjectToGDPR]; + XCTAssertTrue([ANGDPRSettings canAccessDeviceData] == true); +} + +- (void)testAccessDeviceData_PurposeConsentsEmpty_IABConsentRequiredFalse +{ + [[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:0] forKey:ANIABConsent_SubjectToGDPR]; + XCTAssertTrue([ANGDPRSettings canAccessDeviceData] == true); +} + +- (void)testAccessDeviceData_PurposeConsentsEmpty_ConsentRequiredTrue +{ + [ANGDPRSettings setConsentRequired:[NSNumber numberWithInt:1]]; + XCTAssertTrue([ANGDPRSettings canAccessDeviceData] == false); +} + +- (void)testAccessDeviceData_PurposeConsentsEmpty_IABTCFConsentRequiredTrue +{ + [[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:1] forKey:ANIABTCF_SubjectToGDPR]; + XCTAssertTrue([ANGDPRSettings canAccessDeviceData] == false); +} + +- (void)testAccessDeviceData_PurposeConsentsEmpty_IABConsentRequiredTrue +{ + [[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:1] forKey:ANIABConsent_SubjectToGDPR]; + XCTAssertTrue([ANGDPRSettings canAccessDeviceData] == false); +} + +- (void)testAccessDeviceData_GDPR_PurposeConsents_True +{ + [ANGDPRSettings setPurposeConsents:@"10101001"]; + XCTAssertTrue([ANGDPRSettings canAccessDeviceData] == true); +} + +- (void)testAccessDeviceData_IABTCF_PurposeConsents_True +{ + [[NSUserDefaults standardUserDefaults] setObject:@"10101001" forKey:ANIABTCF_PurposeConsents]; + XCTAssertTrue([ANGDPRSettings canAccessDeviceData] == true); +} + +- (void)testAccessDeviceData_GDPR_PurposeConsents_False +{ + [ANGDPRSettings setPurposeConsents:@"01010110"]; + XCTAssertTrue([ANGDPRSettings canAccessDeviceData] == false); +} + +- (void)testAccessDeviceData_IABTCF_PurposeConsents_False +{ + [[NSUserDefaults standardUserDefaults] setObject:@"01010110" forKey:ANIABTCF_PurposeConsents]; + XCTAssertTrue([ANGDPRSettings canAccessDeviceData] == false); +} + +@end From bcbc4f3c1914c115826363609b91781f518c7d7a Mon Sep 17 00:00:00 2001 From: Abhishek Sharma Date: Wed, 15 Jul 2020 00:53:44 +0530 Subject: [PATCH 4/4] SDK v7.4.1 --- AppNexusSDK.podspec | 2 +- RELEASE-NOTES.md | 6 ++++++ sdk/AppNexusSDK.xcodeproj/project.pbxproj | 8 ++++---- sdk/sourcefiles/internal/ANGlobal.h | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/AppNexusSDK.podspec b/AppNexusSDK.podspec index bfbeec2ff..429dfac0f 100644 --- a/AppNexusSDK.podspec +++ b/AppNexusSDK.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "AppNexusSDK" - s.version = "7.4" + s.version = "7.4.1" s.platform = :ios, "9.0" s.summary = "AppNexus iOS Mobile Advertising SDK" diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index c33058425..54cf32074 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,3 +1,9 @@ +## 7.4.1 + +### Improvements/Bug Fixes ++ MS-4435: Fixed crash when using TCF 2.0 purpose consent strings ++ MS-4437: Fixed cocoapods build for Facebook CSR Adapter + ## 7.4 ### New Feature + MS-4214: Added support for loading the Ad lazily (Lazy Load) [https://wiki.xandr.com/x/VJFlBg] diff --git a/sdk/AppNexusSDK.xcodeproj/project.pbxproj b/sdk/AppNexusSDK.xcodeproj/project.pbxproj index c64f6d2a6..174666be8 100644 --- a/sdk/AppNexusSDK.xcodeproj/project.pbxproj +++ b/sdk/AppNexusSDK.xcodeproj/project.pbxproj @@ -1513,7 +1513,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LIBRARY_SEARCH_PATHS = ""; - MARKETING_VERSION = 7.4; + MARKETING_VERSION = 7.4.1; MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_BUNDLE_IDENTIFIER = "corp.appnexus.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1549,7 +1549,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LIBRARY_SEARCH_PATHS = ""; - MARKETING_VERSION = 7.4; + MARKETING_VERSION = 7.4.1; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = "corp.appnexus.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1701,7 +1701,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LIBRARY_SEARCH_PATHS = ""; - MARKETING_VERSION = 7.4; + MARKETING_VERSION = 7.4.1; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.appnexus.AppNexusNativeSDK; @@ -1746,7 +1746,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LIBRARY_SEARCH_PATHS = ""; - MARKETING_VERSION = 7.4; + MARKETING_VERSION = 7.4.1; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.appnexus.AppNexusNativeSDK; diff --git a/sdk/sourcefiles/internal/ANGlobal.h b/sdk/sourcefiles/internal/ANGlobal.h index f945be9e4..e4574d53f 100644 --- a/sdk/sourcefiles/internal/ANGlobal.h +++ b/sdk/sourcefiles/internal/ANGlobal.h @@ -27,7 +27,7 @@ #define AN_ERROR_TABLE @"errors" #define AN_DEFAULT_PLACEMENT_ID @"default_placement_id" -#define AN_SDK_VERSION @"7.4" +#define AN_SDK_VERSION @"7.4.1" #define APPNEXUS_BANNER_SIZE CGSizeMake(320, 50)