From 3666f1e641b5ffaab54cb85be6cf2ce508d4d23e Mon Sep 17 00:00:00 2001 From: Ibrahim Adnan Date: Thu, 21 May 2015 12:15:39 -0700 Subject: [PATCH 01/18] Merged pull request AirPlay Service Bugfix #25 --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index f9331c27..5aa776bc 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit f9331c27f341b1f7d48e8257bccd2e6eb9769185 +Subproject commit 5aa776bcb1b8178f4a76a6586c73c181b2e9b833 From 269e8269cde6ab0b8267137ab20a8f48ec47bd68 Mon Sep 17 00:00:00 2001 From: Ibrahim Adnan Date: Wed, 27 May 2015 14:44:58 -0700 Subject: [PATCH 02/18] Merged Playlist support on WebOSTV's --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 5aa776bc..1744817f 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 5aa776bcb1b8178f4a76a6586c73c181b2e9b833 +Subproject commit 1744817f1f0a91ca0bf8fe7074a4002c620f3a26 From 9211e4dcbb82efee022626243de9d3d313893241 Mon Sep 17 00:00:00 2001 From: Ibrahim Adnan Date: Thu, 28 May 2015 13:29:13 -0700 Subject: [PATCH 03/18] Added missing API --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 1744817f..0450d568 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 1744817f1f0a91ca0bf8fe7074a4002c620f3a26 +Subproject commit 0450d568938de1a2b7d9ea10b5f5b01acf06ed4c From a711f9cb90a1cfcf3839e771132d9e1052131825 Mon Sep 17 00:00:00 2001 From: Ibrahim Adnan Date: Fri, 29 May 2015 11:33:37 -0700 Subject: [PATCH 04/18] Added Mediaplayer Looping Capability on WebOSTV --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 0450d568..849c8e9b 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 0450d568938de1a2b7d9ea10b5f5b01acf06ed4c +Subproject commit 849c8e9b663150101bdbffc3fd224db6e2622c79 From ee085f679476acb814184a15f8a595629f6af4db Mon Sep 17 00:00:00 2001 From: Eugene Nikolskyi Date: Fri, 1 May 2015 10:45:33 -0700 Subject: [PATCH 05/18] Move test target-only frameworks into a separate directory --- ConnectSDK.xcodeproj/project.pbxproj | 46 +++++++++++----------------- core | 2 +- 2 files changed, 19 insertions(+), 29 deletions(-) diff --git a/ConnectSDK.xcodeproj/project.pbxproj b/ConnectSDK.xcodeproj/project.pbxproj index 24600898..56a5f76c 100644 --- a/ConnectSDK.xcodeproj/project.pbxproj +++ b/ConnectSDK.xcodeproj/project.pbxproj @@ -27,8 +27,6 @@ 0F446CCA1A6D924D000BB1C0 /* MediaLaunchObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F446CC81A6D924D000BB1C0 /* MediaLaunchObject.m */; }; 440A031D1A854EDE0007E3D3 /* WebOSTVServiceSocketClientTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 440A031C1A854EDE0007E3D3 /* WebOSTVServiceSocketClientTests.m */; }; 44291C521A68B4C000280E5C /* SSDPDiscoveryProvider_FilteringTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44291C511A68B4C000280E5C /* SSDPDiscoveryProvider_FilteringTests.m */; }; - 442B9A4D1A16F6260053AE51 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 442B9A481A16F61E0053AE51 /* OCMock.framework */; }; - 442B9A501A16F6F00053AE51 /* OHHTTPStubs.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 442B9A4F1A16F6F00053AE51 /* OHHTTPStubs.framework */; }; 443063C11A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.h in Headers */ = {isa = PBXBuildFile; fileRef = 443063BF1A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.h */; }; 443063C21A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.m in Sources */ = {isa = PBXBuildFile; fileRef = 443063C01A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.m */; }; 4433F3DF1A421750008D9A04 /* AirPlayServiceHTTPKeepAliveTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4433F3DE1A421750008D9A04 /* AirPlayServiceHTTPKeepAliveTests.m */; }; @@ -83,6 +81,8 @@ 44D88F991A71DB15009D9608 /* ssdp_device_description_dlna_root_no_required_services.xml in Resources */ = {isa = PBXBuildFile; fileRef = 44D88F981A71DB15009D9608 /* ssdp_device_description_dlna_root_no_required_services.xml */; }; 44D8F7D21AB224BB00559FE3 /* ssdp_device_description_lg_speaker.xml in Resources */ = {isa = PBXBuildFile; fileRef = 44D8F7D11AB223BF00559FE3 /* ssdp_device_description_lg_speaker.xml */; }; 44D8F7DA1AB27B4800559FE3 /* NSInvocation+ObjectGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 44D8F7D91AB27B4800559FE3 /* NSInvocation+ObjectGetter.m */; }; + 44E98F5F1B1E63570043BC70 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F5D1B1E63570043BC70 /* OCMock.framework */; }; + 44E98F601B1E63570043BC70 /* OHHTTPStubs.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F5E1B1E63570043BC70 /* OHHTTPStubs.framework */; }; 44EF618B1A12DC7E00CF344C /* ConnectSDK-Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = EA5FB79E199AEC550057B4B4 /* ConnectSDK-Prefix.pch */; }; 44EF618D1A12E02700CF344C /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBF118FE48EF00D75696 /* MobileCoreServices.framework */; }; 44EF618F1A12E0A400CF344C /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF618E1A12E0A400CF344C /* libz.dylib */; }; @@ -309,8 +309,6 @@ 44291C481A6705E400280E5C /* DLNAHTTPServer_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DLNAHTTPServer_Private.h; sourceTree = ""; }; 44291C511A68B4C000280E5C /* SSDPDiscoveryProvider_FilteringTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SSDPDiscoveryProvider_FilteringTests.m; sourceTree = ""; }; 442B9A431A153F240053AE51 /* SSDPDiscoveryProvider_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SSDPDiscoveryProvider_Private.h; sourceTree = ""; }; - 442B9A481A16F61E0053AE51 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCMock.framework; sourceTree = ""; }; - 442B9A4F1A16F6F00053AE51 /* OHHTTPStubs.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OHHTTPStubs.framework; sourceTree = ""; }; 443063BF1A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AirPlayServiceHTTPKeepAlive.h; sourceTree = ""; }; 443063C01A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AirPlayServiceHTTPKeepAlive.m; sourceTree = ""; }; 4433F3DE1A421750008D9A04 /* AirPlayServiceHTTPKeepAliveTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AirPlayServiceHTTPKeepAliveTests.m; sourceTree = ""; }; @@ -373,6 +371,8 @@ 44D8F7D11AB223BF00559FE3 /* ssdp_device_description_lg_speaker.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ssdp_device_description_lg_speaker.xml; sourceTree = ""; }; 44D8F7D81AB27B4800559FE3 /* NSInvocation+ObjectGetter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSInvocation+ObjectGetter.h"; sourceTree = ""; }; 44D8F7D91AB27B4800559FE3 /* NSInvocation+ObjectGetter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSInvocation+ObjectGetter.m"; sourceTree = ""; }; + 44E98F5D1B1E63570043BC70 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCMock.framework; sourceTree = ""; }; + 44E98F5E1B1E63570043BC70 /* OHHTTPStubs.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OHHTTPStubs.framework; sourceTree = ""; }; 44EF618C1A12DF2D00CF344C /* ConnectSDKTests-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ConnectSDKTests-Prefix.pch"; sourceTree = ""; }; 44EF618E1A12E0A400CF344C /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; 44EF61971A12E1C800CF344C /* MediaAccessibility.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaAccessibility.framework; path = System/Library/Frameworks/MediaAccessibility.framework; sourceTree = SDKROOT; }; @@ -567,13 +567,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 44E98F601B1E63570043BC70 /* OHHTTPStubs.framework in Frameworks */, + 44E98F5F1B1E63570043BC70 /* OCMock.framework in Frameworks */, 448085801A12A7BE00E13938 /* libConnectSDK.a in Frameworks */, 44EF61951A12E18D00CF344C /* GoogleCast.framework in Frameworks */, 44EF61981A12E1C800CF344C /* MediaAccessibility.framework in Frameworks */, - 442B9A4D1A16F6260053AE51 /* OCMock.framework in Frameworks */, 44EF618D1A12E02700CF344C /* MobileCoreServices.framework in Frameworks */, 44EF61921A12E10500CF344C /* SystemConfiguration.framework in Frameworks */, - 442B9A501A16F6F00053AE51 /* OHHTTPStubs.framework in Frameworks */, 44EF619B1A12E23200CF344C /* libicucore.dylib in Frameworks */, 44EF618F1A12E0A400CF344C /* libz.dylib in Frameworks */, ); @@ -594,22 +594,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 442B9A471A16F61E0053AE51 /* OCMock */ = { - isa = PBXGroup; - children = ( - 442B9A481A16F61E0053AE51 /* OCMock.framework */, - ); - path = OCMock; - sourceTree = ""; - }; - 442B9A491A16F61E0053AE51 /* OHHTTPStubs */ = { - isa = PBXGroup; - children = ( - 442B9A4F1A16F6F00053AE51 /* OHHTTPStubs.framework */, - ); - path = OHHTTPStubs; - sourceTree = ""; - }; 4433F3DC1A421733008D9A04 /* Services */ = { isa = PBXGroup; children = ( @@ -658,6 +642,7 @@ 4480857B1A12A7BE00E13938 /* ConnectSDKTests */ = { isa = PBXGroup; children = ( + 44E98F5C1B1E63570043BC70 /* Frameworks */, 448414F71AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.h */, 448414F81AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.m */, 44D8F7D81AB27B4800559FE3 /* NSInvocation+ObjectGetter.h */, @@ -744,6 +729,15 @@ path = webos; sourceTree = ""; }; + 44E98F5C1B1E63570043BC70 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 44E98F5D1B1E63570043BC70 /* OCMock.framework */, + 44E98F5E1B1E63570043BC70 /* OHHTTPStubs.framework */, + ); + path = Frameworks; + sourceTree = ""; + }; 44EF61A11A12FC5000CF344C /* Discovery */ = { isa = PBXGroup; children = ( @@ -840,8 +834,6 @@ EA5FB7BA199AEC550057B4B4 /* asi-http-request */, EA5FB7D5199AEC550057B4B4 /* GCDWebServer */, EA5FB7F6199AEC550057B4B4 /* objc-guid */, - 442B9A471A16F61E0053AE51 /* OCMock */, - 442B9A491A16F61E0053AE51 /* OHHTTPStubs */, EA5FB7FA199AEC550057B4B4 /* SocketRocket */, EA5FB7FE199AEC550057B4B4 /* XMLReader */, 44BCC3F31AB77F7D001BCDAA /* xswi */, @@ -1610,8 +1602,7 @@ "$(SDKROOT)/Developer/Library/Frameworks", "$(inherited)", "$(PROJECT_DIR)/modules/google-cast", - "$(PROJECT_DIR)/core/Frameworks/OCMock", - "$(PROJECT_DIR)/core/Frameworks/OHHTTPStubs", + "$(PROJECT_DIR)/core/ConnectSDKTests/Frameworks", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "core/ConnectSDKTests/ConnectSDKTests-Prefix.pch"; @@ -1643,8 +1634,7 @@ "$(SDKROOT)/Developer/Library/Frameworks", "$(inherited)", "$(PROJECT_DIR)/modules/google-cast", - "$(PROJECT_DIR)/core/Frameworks/OCMock", - "$(PROJECT_DIR)/core/Frameworks/OHHTTPStubs", + "$(PROJECT_DIR)/core/ConnectSDKTests/Frameworks", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "core/ConnectSDKTests/ConnectSDKTests-Prefix.pch"; diff --git a/core b/core index 849c8e9b..a193db66 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 849c8e9b663150101bdbffc3fd224db6e2622c79 +Subproject commit a193db66109a8796c21bb6145dc10ec6c2357dc6 From 044be2b63b6a6892ad1dbdc3c3be67cd7dd4b5dd Mon Sep 17 00:00:00 2001 From: Eugene Nikolskyi Date: Tue, 5 May 2015 11:44:12 -0700 Subject: [PATCH 06/18] Project: build active architecture only for library in Debug configuration This speeds up building for tests, because you don't need to build two architectures for iOS Simulator, although only one is required. --- ConnectSDK.xcodeproj/project.pbxproj | 1 - 1 file changed, 1 deletion(-) diff --git a/ConnectSDK.xcodeproj/project.pbxproj b/ConnectSDK.xcodeproj/project.pbxproj index 56a5f76c..73943a96 100644 --- a/ConnectSDK.xcodeproj/project.pbxproj +++ b/ConnectSDK.xcodeproj/project.pbxproj @@ -1739,7 +1739,6 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "core/ConnectSDK-Prefix.pch"; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - ONLY_ACTIVE_ARCH = NO; OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = ConnectSDK; PUBLIC_HEADERS_FOLDER_PATH = "$(PROJECT_NAME)Headers"; From 82b84b58beaf66974a57a15a88cb2372df2cb623 Mon Sep 17 00:00:00 2001 From: Eugene Nikolskyi Date: Wed, 13 May 2015 12:27:09 -0700 Subject: [PATCH 07/18] Create OCMArg+ArgumentCaptor category --- ConnectSDK.xcodeproj/project.pbxproj | 6 ++++++ core | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ConnectSDK.xcodeproj/project.pbxproj b/ConnectSDK.xcodeproj/project.pbxproj index 73943a96..7b7faaaf 100644 --- a/ConnectSDK.xcodeproj/project.pbxproj +++ b/ConnectSDK.xcodeproj/project.pbxproj @@ -83,6 +83,7 @@ 44D8F7DA1AB27B4800559FE3 /* NSInvocation+ObjectGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 44D8F7D91AB27B4800559FE3 /* NSInvocation+ObjectGetter.m */; }; 44E98F5F1B1E63570043BC70 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F5D1B1E63570043BC70 /* OCMock.framework */; }; 44E98F601B1E63570043BC70 /* OHHTTPStubs.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F5E1B1E63570043BC70 /* OHHTTPStubs.framework */; }; + 44E98F631B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F621B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m */; }; 44EF618B1A12DC7E00CF344C /* ConnectSDK-Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = EA5FB79E199AEC550057B4B4 /* ConnectSDK-Prefix.pch */; }; 44EF618D1A12E02700CF344C /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBF118FE48EF00D75696 /* MobileCoreServices.framework */; }; 44EF618F1A12E0A400CF344C /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF618E1A12E0A400CF344C /* libz.dylib */; }; @@ -373,6 +374,8 @@ 44D8F7D91AB27B4800559FE3 /* NSInvocation+ObjectGetter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSInvocation+ObjectGetter.m"; sourceTree = ""; }; 44E98F5D1B1E63570043BC70 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCMock.framework; sourceTree = ""; }; 44E98F5E1B1E63570043BC70 /* OHHTTPStubs.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OHHTTPStubs.framework; sourceTree = ""; }; + 44E98F611B1E650C0043BC70 /* OCMArg+ArgumentCaptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OCMArg+ArgumentCaptor.h"; sourceTree = ""; }; + 44E98F621B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OCMArg+ArgumentCaptor.m"; sourceTree = ""; }; 44EF618C1A12DF2D00CF344C /* ConnectSDKTests-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ConnectSDKTests-Prefix.pch"; sourceTree = ""; }; 44EF618E1A12E0A400CF344C /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; 44EF61971A12E1C800CF344C /* MediaAccessibility.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaAccessibility.framework; path = System/Library/Frameworks/MediaAccessibility.framework; sourceTree = SDKROOT; }; @@ -643,6 +646,8 @@ isa = PBXGroup; children = ( 44E98F5C1B1E63570043BC70 /* Frameworks */, + 44E98F611B1E650C0043BC70 /* OCMArg+ArgumentCaptor.h */, + 44E98F621B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m */, 448414F71AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.h */, 448414F81AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.m */, 44D8F7D81AB27B4800559FE3 /* NSInvocation+ObjectGetter.h */, @@ -1477,6 +1482,7 @@ 440A031D1A854EDE0007E3D3 /* WebOSTVServiceSocketClientTests.m in Sources */, 448414F91AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.m in Sources */, 44A5518F1AC1DF4C001AF783 /* NetcastTVServiceTests.m in Sources */, + 44E98F631B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m in Sources */, 4498D9901A65A1D7008C0B72 /* NSDictionary+KeyPredicateSearchTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/core b/core index a193db66..b3d87527 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit a193db66109a8796c21bb6145dc10ec6c2357dc6 +Subproject commit b3d875271b914c939dbaa1de1d9a50fdadba7ad5 From c98db8e1dddf7245f63251c6427aec0e61d7d323 Mon Sep 17 00:00:00 2001 From: Eugene Nikolskyi Date: Tue, 26 May 2015 15:28:40 -0700 Subject: [PATCH 08/18] Setup integration tests --- ConnectSDK.xcodeproj/project.pbxproj | 194 ++++++++++++++++++ .../xcschemes/ConnectSDK.xcscheme | 14 ++ core | 2 +- 3 files changed, 209 insertions(+), 1 deletion(-) diff --git a/ConnectSDK.xcodeproj/project.pbxproj b/ConnectSDK.xcodeproj/project.pbxproj index 7b7faaaf..72fc3338 100644 --- a/ConnectSDK.xcodeproj/project.pbxproj +++ b/ConnectSDK.xcodeproj/project.pbxproj @@ -84,6 +84,17 @@ 44E98F5F1B1E63570043BC70 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F5D1B1E63570043BC70 /* OCMock.framework */; }; 44E98F601B1E63570043BC70 /* OHHTTPStubs.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F5E1B1E63570043BC70 /* OHHTTPStubs.framework */; }; 44E98F631B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F621B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m */; }; + 44E98F7D1B1E694A0043BC70 /* libConnectSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EB1018FE485B00D75696 /* libConnectSDK.a */; }; + 44E98F831B1E6A430043BC70 /* Expecta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F6A1B1E67500043BC70 /* Expecta.framework */; }; + 44E98F841B1E6A430043BC70 /* Specta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F6B1B1E67500043BC70 /* Specta.framework */; }; + 44E98F851B1E6A4D0043BC70 /* EXPMatchers+matchRegex.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F681B1E67500043BC70 /* EXPMatchers+matchRegex.m */; }; + 44E98F861B1E6A500043BC70 /* DLNAServiceIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F661B1E67500043BC70 /* DLNAServiceIntegrationTests.m */; }; + 44E98F881B1E6CBE0043BC70 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F5D1B1E63570043BC70 /* OCMock.framework */; }; + 44E98F891B1E6CE10043BC70 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF618E1A12E0A400CF344C /* libz.dylib */; }; + 44E98F8A1B1E6CE30043BC70 /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF619A1A12E23200CF344C /* libicucore.dylib */; }; + 44E98F8B1B1E6D000043BC70 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBF118FE48EF00D75696 /* MobileCoreServices.framework */; }; + 44E98F8C1B1E6D0E0043BC70 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBEF18FE48E900D75696 /* SystemConfiguration.framework */; }; + 44E98F8D1B1E6D7F0043BC70 /* GoogleCast.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4485140C1A02FC3200D66710 /* GoogleCast.framework */; }; 44EF618B1A12DC7E00CF344C /* ConnectSDK-Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = EA5FB79E199AEC550057B4B4 /* ConnectSDK-Prefix.pch */; }; 44EF618D1A12E02700CF344C /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBF118FE48EF00D75696 /* MobileCoreServices.framework */; }; 44EF618F1A12E0A400CF344C /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF618E1A12E0A400CF344C /* libz.dylib */; }; @@ -280,6 +291,13 @@ remoteGlobalIDString = EA61EB0F18FE485B00D75696; remoteInfo = ConnectSDK; }; + 44E98F7E1B1E694A0043BC70 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = EA61EB0818FE485B00D75696 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EA61EB0F18FE485B00D75696; + remoteInfo = ConnectSDK; + }; EECAED56193F612100D31F61 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = EA61EB0818FE485B00D75696 /* Project object */; @@ -376,6 +394,14 @@ 44E98F5E1B1E63570043BC70 /* OHHTTPStubs.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OHHTTPStubs.framework; sourceTree = ""; }; 44E98F611B1E650C0043BC70 /* OCMArg+ArgumentCaptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OCMArg+ArgumentCaptor.h"; sourceTree = ""; }; 44E98F621B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OCMArg+ArgumentCaptor.m"; sourceTree = ""; }; + 44E98F651B1E67500043BC70 /* ConnectSDKIntegrationTests-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ConnectSDKIntegrationTests-Prefix.pch"; sourceTree = ""; }; + 44E98F661B1E67500043BC70 /* DLNAServiceIntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DLNAServiceIntegrationTests.m; sourceTree = ""; }; + 44E98F671B1E67500043BC70 /* EXPMatchers+matchRegex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+matchRegex.h"; sourceTree = ""; }; + 44E98F681B1E67500043BC70 /* EXPMatchers+matchRegex.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+matchRegex.m"; sourceTree = ""; }; + 44E98F6A1B1E67500043BC70 /* Expecta.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Expecta.framework; sourceTree = ""; }; + 44E98F6B1B1E67500043BC70 /* Specta.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Specta.framework; sourceTree = ""; }; + 44E98F6C1B1E67500043BC70 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 44E98F771B1E694A0043BC70 /* ConnectSDKIntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConnectSDKIntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 44EF618C1A12DF2D00CF344C /* ConnectSDKTests-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ConnectSDKTests-Prefix.pch"; sourceTree = ""; }; 44EF618E1A12E0A400CF344C /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; 44EF61971A12E1C800CF344C /* MediaAccessibility.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaAccessibility.framework; path = System/Library/Frameworks/MediaAccessibility.framework; sourceTree = SDKROOT; }; @@ -582,6 +608,22 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 44E98F741B1E694A0043BC70 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 44E98F881B1E6CBE0043BC70 /* OCMock.framework in Frameworks */, + 44E98F8B1B1E6D000043BC70 /* MobileCoreServices.framework in Frameworks */, + 44E98F8A1B1E6CE30043BC70 /* libicucore.dylib in Frameworks */, + 44E98F8D1B1E6D7F0043BC70 /* GoogleCast.framework in Frameworks */, + 44E98F891B1E6CE10043BC70 /* libz.dylib in Frameworks */, + 44E98F7D1B1E694A0043BC70 /* libConnectSDK.a in Frameworks */, + 44E98F841B1E6A430043BC70 /* Specta.framework in Frameworks */, + 44E98F8C1B1E6D0E0043BC70 /* SystemConfiguration.framework in Frameworks */, + 44E98F831B1E6A430043BC70 /* Expecta.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; EA61EB0D18FE485B00D75696 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -743,6 +785,36 @@ path = Frameworks; sourceTree = ""; }; + 44E98F641B1E67500043BC70 /* ConnectSDKIntegrationTests */ = { + isa = PBXGroup; + children = ( + 44E98F691B1E67500043BC70 /* Frameworks */, + 44E98F671B1E67500043BC70 /* EXPMatchers+matchRegex.h */, + 44E98F681B1E67500043BC70 /* EXPMatchers+matchRegex.m */, + 44E98F661B1E67500043BC70 /* DLNAServiceIntegrationTests.m */, + 44E98F651B1E67500043BC70 /* ConnectSDKIntegrationTests-Prefix.pch */, + 44E98F721B1E67930043BC70 /* Supporting Files */, + ); + path = ConnectSDKIntegrationTests; + sourceTree = ""; + }; + 44E98F691B1E67500043BC70 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 44E98F6A1B1E67500043BC70 /* Expecta.framework */, + 44E98F6B1B1E67500043BC70 /* Specta.framework */, + ); + path = Frameworks; + sourceTree = ""; + }; + 44E98F721B1E67930043BC70 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 44E98F6C1B1E67500043BC70 /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; 44EF61A11A12FC5000CF344C /* Discovery */ = { isa = PBXGroup; children = ( @@ -783,6 +855,7 @@ EA5FB7B9199AEC550057B4B4 /* Frameworks */, EA5FB802199AEC550057B4B4 /* Helpers */, EA5FB816199AEC550057B4B4 /* Services */, + 44E98F641B1E67500043BC70 /* ConnectSDKIntegrationTests */, 4480857B1A12A7BE00E13938 /* ConnectSDKTests */, ); path = core; @@ -1180,6 +1253,7 @@ children = ( EA61EB1018FE485B00D75696 /* libConnectSDK.a */, 4480857A1A12A7BE00E13938 /* ConnectSDKTests.xctest */, + 44E98F771B1E694A0043BC70 /* ConnectSDKIntegrationTests.xctest */, ); name = Products; sourceTree = ""; @@ -1342,6 +1416,24 @@ productReference = 4480857A1A12A7BE00E13938 /* ConnectSDKTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + 44E98F761B1E694A0043BC70 /* ConnectSDKIntegrationTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 44E98F801B1E694A0043BC70 /* Build configuration list for PBXNativeTarget "ConnectSDKIntegrationTests" */; + buildPhases = ( + 44E98F731B1E694A0043BC70 /* Sources */, + 44E98F741B1E694A0043BC70 /* Frameworks */, + 44E98F751B1E694A0043BC70 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 44E98F7F1B1E694A0043BC70 /* PBXTargetDependency */, + ); + name = ConnectSDKIntegrationTests; + productName = ConnectSDKIntegrationTests; + productReference = 44E98F771B1E694A0043BC70 /* ConnectSDKIntegrationTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; EA61EB0F18FE485B00D75696 /* ConnectSDK */ = { isa = PBXNativeTarget; buildConfigurationList = EA61EB3318FE485B00D75696 /* Build configuration list for PBXNativeTarget "ConnectSDK" */; @@ -1373,6 +1465,9 @@ 448085791A12A7BE00E13938 = { CreatedOnToolsVersion = 6.1; }; + 44E98F761B1E694A0043BC70 = { + CreatedOnToolsVersion = 6.3.2; + }; }; }; buildConfigurationList = EA61EB0B18FE485B00D75696 /* Build configuration list for PBXProject "ConnectSDK" */; @@ -1390,6 +1485,7 @@ EA61EB0F18FE485B00D75696 /* ConnectSDK */, EECAED52193F611900D31F61 /* Framework */, 448085791A12A7BE00E13938 /* ConnectSDKTests */, + 44E98F761B1E694A0043BC70 /* ConnectSDKIntegrationTests */, ); }; /* End PBXProject section */ @@ -1433,6 +1529,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 44E98F751B1E694A0043BC70 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -1487,6 +1590,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 44E98F731B1E694A0043BC70 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 44E98F851B1E6A4D0043BC70 /* EXPMatchers+matchRegex.m in Sources */, + 44E98F861B1E6A500043BC70 /* DLNAServiceIntegrationTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; EA61EB0C18FE485B00D75696 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1579,6 +1691,11 @@ target = EA61EB0F18FE485B00D75696 /* ConnectSDK */; targetProxy = 448085811A12A7BE00E13938 /* PBXContainerItemProxy */; }; + 44E98F7F1B1E694A0043BC70 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = EA61EB0F18FE485B00D75696 /* ConnectSDK */; + targetProxy = 44E98F7E1B1E694A0043BC70 /* PBXContainerItemProxy */; + }; EECAED57193F612100D31F61 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = EA61EB0F18FE485B00D75696 /* ConnectSDK */; @@ -1658,6 +1775,75 @@ }; name = Release; }; + 44E98F811B1E694A0043BC70 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + "$(PROJECT_DIR)/core/ConnectSDKIntegrationTests/Frameworks", + "$(PROJECT_DIR)/core/ConnectSDKTests/Frameworks", + "$(PROJECT_DIR)/modules/google-cast", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "core/ConnectSDKIntegrationTests/ConnectSDKIntegrationTests-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = core/ConnectSDKIntegrationTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-ObjC", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 44E98F821B1E694A0043BC70 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + "$(PROJECT_DIR)/core/ConnectSDKIntegrationTests/Frameworks", + "$(PROJECT_DIR)/core/ConnectSDKTests/Frameworks", + "$(PROJECT_DIR)/modules/google-cast", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "core/ConnectSDKIntegrationTests/ConnectSDKIntegrationTests-Prefix.pch"; + INFOPLIST_FILE = core/ConnectSDKIntegrationTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-ObjC", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; EA61EB3118FE485B00D75696 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1810,6 +1996,14 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 44E98F801B1E694A0043BC70 /* Build configuration list for PBXNativeTarget "ConnectSDKIntegrationTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 44E98F811B1E694A0043BC70 /* Debug */, + 44E98F821B1E694A0043BC70 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; EA61EB0B18FE485B00D75696 /* Build configuration list for PBXProject "ConnectSDK" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDK.xcscheme b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDK.xcscheme index 60097319..793f81e0 100644 --- a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDK.xcscheme +++ b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDK.xcscheme @@ -34,6 +34,20 @@ ReferencedContainer = "container:ConnectSDK.xcodeproj"> + + + + Date: Tue, 26 May 2015 16:44:19 -0700 Subject: [PATCH 09/18] Share test schemes --- .../ConnectSDKIntegrationTests.xcscheme | 101 ++++++++++++++++++ .../xcschemes/ConnectSDKTests.xcscheme | 96 +++++++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKIntegrationTests.xcscheme create mode 100644 ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKTests.xcscheme diff --git a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKIntegrationTests.xcscheme b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKIntegrationTests.xcscheme new file mode 100644 index 00000000..d68151d9 --- /dev/null +++ b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKIntegrationTests.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKTests.xcscheme b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKTests.xcscheme new file mode 100644 index 00000000..7387c5db --- /dev/null +++ b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKTests.xcscheme @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From d15554ddab80efbfe415c2c1ad35777cee90b543 Mon Sep 17 00:00:00 2001 From: Eugene Nikolskyi Date: Tue, 26 May 2015 16:58:13 -0700 Subject: [PATCH 10/18] Test schemes: building one involves building the other --- .../ConnectSDKIntegrationTests.xcscheme | 23 +++++++++++-------- .../xcschemes/ConnectSDKTests.xcscheme | 23 +++++++++++-------- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKIntegrationTests.xcscheme b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKIntegrationTests.xcscheme index d68151d9..da236142 100644 --- a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKIntegrationTests.xcscheme +++ b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKIntegrationTests.xcscheme @@ -20,6 +20,20 @@ ReferencedContainer = "container:ConnectSDK.xcodeproj"> + + + + - - - - diff --git a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKTests.xcscheme b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKTests.xcscheme index 7387c5db..380afc93 100644 --- a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKTests.xcscheme +++ b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKTests.xcscheme @@ -20,6 +20,20 @@ ReferencedContainer = "container:ConnectSDK.xcodeproj"> + + + + - - - - From f1d1dce1be663bd056efb80c621ee325865a0d55 Mon Sep 17 00:00:00 2001 From: Eugene Nikolskyi Date: Wed, 27 May 2015 18:55:45 -0700 Subject: [PATCH 11/18] Create OCMStubRecorder+SpectaAsync category --- ConnectSDK.xcodeproj/project.pbxproj | 7 +++++++ core | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ConnectSDK.xcodeproj/project.pbxproj b/ConnectSDK.xcodeproj/project.pbxproj index 72fc3338..dc6c0019 100644 --- a/ConnectSDK.xcodeproj/project.pbxproj +++ b/ConnectSDK.xcodeproj/project.pbxproj @@ -95,6 +95,7 @@ 44E98F8B1B1E6D000043BC70 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBF118FE48EF00D75696 /* MobileCoreServices.framework */; }; 44E98F8C1B1E6D0E0043BC70 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBEF18FE48E900D75696 /* SystemConfiguration.framework */; }; 44E98F8D1B1E6D7F0043BC70 /* GoogleCast.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4485140C1A02FC3200D66710 /* GoogleCast.framework */; }; + 44E98F901B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F8F1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m */; }; 44EF618B1A12DC7E00CF344C /* ConnectSDK-Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = EA5FB79E199AEC550057B4B4 /* ConnectSDK-Prefix.pch */; }; 44EF618D1A12E02700CF344C /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBF118FE48EF00D75696 /* MobileCoreServices.framework */; }; 44EF618F1A12E0A400CF344C /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF618E1A12E0A400CF344C /* libz.dylib */; }; @@ -402,6 +403,8 @@ 44E98F6B1B1E67500043BC70 /* Specta.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Specta.framework; sourceTree = ""; }; 44E98F6C1B1E67500043BC70 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 44E98F771B1E694A0043BC70 /* ConnectSDKIntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConnectSDKIntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 44E98F8E1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OCMStubRecorder+SpectaAsync.h"; sourceTree = ""; }; + 44E98F8F1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OCMStubRecorder+SpectaAsync.m"; sourceTree = ""; }; 44EF618C1A12DF2D00CF344C /* ConnectSDKTests-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ConnectSDKTests-Prefix.pch"; sourceTree = ""; }; 44EF618E1A12E0A400CF344C /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; 44EF61971A12E1C800CF344C /* MediaAccessibility.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaAccessibility.framework; path = System/Library/Frameworks/MediaAccessibility.framework; sourceTree = SDKROOT; }; @@ -791,6 +794,8 @@ 44E98F691B1E67500043BC70 /* Frameworks */, 44E98F671B1E67500043BC70 /* EXPMatchers+matchRegex.h */, 44E98F681B1E67500043BC70 /* EXPMatchers+matchRegex.m */, + 44E98F8E1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.h */, + 44E98F8F1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m */, 44E98F661B1E67500043BC70 /* DLNAServiceIntegrationTests.m */, 44E98F651B1E67500043BC70 /* ConnectSDKIntegrationTests-Prefix.pch */, 44E98F721B1E67930043BC70 /* Supporting Files */, @@ -1594,6 +1599,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 44E98F901B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m in Sources */, 44E98F851B1E6A4D0043BC70 /* EXPMatchers+matchRegex.m in Sources */, 44E98F861B1E6A500043BC70 /* DLNAServiceIntegrationTests.m in Sources */, ); @@ -2003,6 +2009,7 @@ 44E98F821B1E694A0043BC70 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; EA61EB0B18FE485B00D75696 /* Build configuration list for PBXProject "ConnectSDK" */ = { isa = XCConfigurationList; diff --git a/core b/core index 0044f86d..bba5b0c5 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 0044f86d7785ba3f90b8e9807f060c45b207d9e6 +Subproject commit bba5b0c5a64ae08d2adcdac9877860026d1b4747 From c3d11af016c2f514515a0b58c959c9be0f350d0e Mon Sep 17 00:00:00 2001 From: Eugene Nikolskyi Date: Tue, 2 Jun 2015 16:16:48 -0700 Subject: [PATCH 12/18] DLNAServiceIntegrationTests: rename mock to stub to clarify usage --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index bba5b0c5..45f1dff5 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit bba5b0c5a64ae08d2adcdac9877860026d1b4747 +Subproject commit 45f1dff5b0af8c6536da7122817e8d5b8fb4869c From 72a37f85d216e434174568f073fdfb1d8b6ca5a0 Mon Sep 17 00:00:00 2001 From: Eugene Nikolskyi Date: Tue, 2 Jun 2015 16:49:32 -0700 Subject: [PATCH 13/18] README: add test frameworks to Credits --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 309871bf..776dd177 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ You can use `pod "ConnectSDK/Core"` to get the [lite version](https://github.com * Partnerships: partners@connectsdk.com ##Credits -Connect SDK for iOS makes use of the following projects, some of which are open-source. +Connect SDK for iOS makes use of the following projects, some of which are open-source: * [Google Cast SDK](https://developers.google.com/cast/) - [Google Cast SDK Additional Developer Terms of Service](https://developers.google.com/cast/docs/terms) @@ -88,6 +88,13 @@ Connect SDK for iOS makes use of the following projects, some of which are open- - modifications: - compiler warning fix +These projects are used in tests: + +* [OCMock](http://ocmock.org/) (Apache License, Version 2.0) +* [OHHTTPStubs](https://github.com/AliSoftware/OHHTTPStubs/) (MIT) +* [Specta](https://github.com/specta/specta/) (MIT) +* [Expecta](https://github.com/specta/expecta/) (MIT) + ##License Copyright (c) 2013-2014 LG Electronics. From e05bfb5b3385863eafc10791f51535a2c0a52acc Mon Sep 17 00:00:00 2001 From: Eugene Nikolskyi Date: Tue, 2 Jun 2015 14:45:49 -0700 Subject: [PATCH 14/18] Fix photo not displaying on Apple TV with OS 7.2 Fixes https://github.com/ConnectSDK/Connect-SDK-iOS/issues/157 --- ConnectSDK.xcodeproj/project.pbxproj | 50 +++++++++++++++++----------- README.md | 2 ++ core | 2 +- 3 files changed, 34 insertions(+), 20 deletions(-) diff --git a/ConnectSDK.xcodeproj/project.pbxproj b/ConnectSDK.xcodeproj/project.pbxproj index dc6c0019..df223ab7 100644 --- a/ConnectSDK.xcodeproj/project.pbxproj +++ b/ConnectSDK.xcodeproj/project.pbxproj @@ -96,6 +96,10 @@ 44E98F8C1B1E6D0E0043BC70 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBEF18FE48E900D75696 /* SystemConfiguration.framework */; }; 44E98F8D1B1E6D7F0043BC70 /* GoogleCast.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4485140C1A02FC3200D66710 /* GoogleCast.framework */; }; 44E98F901B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F8F1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m */; }; + 44E98F971B1E72DF0043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 44E98F961B1E72D80043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg */; }; + 44E98F981B1E72E00043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 44E98F961B1E72D80043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg */; }; + 44E98F9A1B1E733D0043BC70 /* AirPlayServiceIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F991B1E733D0043BC70 /* AirPlayServiceIntegrationTests.m */; }; + 44E98F9B1B1E738F0043BC70 /* OCMArg+ArgumentCaptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F621B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m */; }; 44EF618B1A12DC7E00CF344C /* ConnectSDK-Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = EA5FB79E199AEC550057B4B4 /* ConnectSDK-Prefix.pch */; }; 44EF618D1A12E02700CF344C /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBF118FE48EF00D75696 /* MobileCoreServices.framework */; }; 44EF618F1A12E0A400CF344C /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF618E1A12E0A400CF344C /* libz.dylib */; }; @@ -340,7 +344,6 @@ 44758BCC1AE7070500EC43A6 /* airplay_playbackinfo_playing.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = airplay_playbackinfo_playing.json; sourceTree = ""; }; 44758BCD1AE7070600EC43A6 /* airplay_playbackinfo_rewind.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = airplay_playbackinfo_rewind.json; sourceTree = ""; }; 4480857A1A12A7BE00E13938 /* ConnectSDKTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConnectSDKTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 4480857D1A12A7BE00E13938 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 4480857E1A12A7BE00E13938 /* ConnectSDKDefaultPlatformsTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConnectSDKDefaultPlatformsTests.m; sourceTree = ""; }; 448414F71AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OCMStubRecorder+XCTestExpectation.h"; sourceTree = ""; }; 448414F81AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OCMStubRecorder+XCTestExpectation.m"; sourceTree = ""; }; @@ -401,10 +404,13 @@ 44E98F681B1E67500043BC70 /* EXPMatchers+matchRegex.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+matchRegex.m"; sourceTree = ""; }; 44E98F6A1B1E67500043BC70 /* Expecta.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Expecta.framework; sourceTree = ""; }; 44E98F6B1B1E67500043BC70 /* Specta.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Specta.framework; sourceTree = ""; }; - 44E98F6C1B1E67500043BC70 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 44E98F771B1E694A0043BC70 /* ConnectSDKIntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConnectSDKIntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 44E98F8E1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OCMStubRecorder+SpectaAsync.h"; sourceTree = ""; }; 44E98F8F1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OCMStubRecorder+SpectaAsync.m"; sourceTree = ""; }; + 44E98F921B1E72CA0043BC70 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 44E98F951B1E72D80043BC70 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 44E98F961B1E72D80043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "the-san-francisco-peaks-of-flagstaff-718x544.jpg"; sourceTree = ""; }; + 44E98F991B1E733D0043BC70 /* AirPlayServiceIntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AirPlayServiceIntegrationTests.m; sourceTree = ""; }; 44EF618C1A12DF2D00CF344C /* ConnectSDKTests-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ConnectSDKTests-Prefix.pch"; sourceTree = ""; }; 44EF618E1A12E0A400CF344C /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; 44EF61971A12E1C800CF344C /* MediaAccessibility.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaAccessibility.framework; path = System/Library/Frameworks/MediaAccessibility.framework; sourceTree = SDKROOT; }; @@ -702,19 +708,11 @@ 4498D98E1A65A1B7008C0B72 /* Helpers */, 4433F3DC1A421733008D9A04 /* Services */, 44EF618C1A12DF2D00CF344C /* ConnectSDKTests-Prefix.pch */, - 4480857C1A12A7BE00E13938 /* Supporting Files */, + 44E98F941B1E72D80043BC70 /* SupportingFiles */, ); path = ConnectSDKTests; sourceTree = ""; }; - 4480857C1A12A7BE00E13938 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 4480857D1A12A7BE00E13938 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; 4498D98E1A65A1B7008C0B72 /* Helpers */ = { isa = PBXGroup; children = ( @@ -796,9 +794,10 @@ 44E98F681B1E67500043BC70 /* EXPMatchers+matchRegex.m */, 44E98F8E1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.h */, 44E98F8F1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m */, + 44E98F991B1E733D0043BC70 /* AirPlayServiceIntegrationTests.m */, 44E98F661B1E67500043BC70 /* DLNAServiceIntegrationTests.m */, 44E98F651B1E67500043BC70 /* ConnectSDKIntegrationTests-Prefix.pch */, - 44E98F721B1E67930043BC70 /* Supporting Files */, + 44E98F911B1E72CA0043BC70 /* SupportingFiles */, ); path = ConnectSDKIntegrationTests; sourceTree = ""; @@ -812,12 +811,21 @@ path = Frameworks; sourceTree = ""; }; - 44E98F721B1E67930043BC70 /* Supporting Files */ = { + 44E98F911B1E72CA0043BC70 /* SupportingFiles */ = { + isa = PBXGroup; + children = ( + 44E98F921B1E72CA0043BC70 /* Info.plist */, + ); + path = SupportingFiles; + sourceTree = ""; + }; + 44E98F941B1E72D80043BC70 /* SupportingFiles */ = { isa = PBXGroup; children = ( - 44E98F6C1B1E67500043BC70 /* Info.plist */, + 44E98F951B1E72D80043BC70 /* Info.plist */, + 44E98F961B1E72D80043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg */, ); - name = "Supporting Files"; + path = SupportingFiles; sourceTree = ""; }; 44EF61A11A12FC5000CF344C /* Discovery */ = { @@ -1520,6 +1528,7 @@ 44D88F8E1A71C4A8009D9608 /* ssdp_device_description_xbox_dial.xml in Resources */, 44D8F7D21AB224BB00559FE3 /* ssdp_device_description_lg_speaker.xml in Resources */, 44D88F8C1A71C4A8009D9608 /* ssdp_device_description_samsung_tv.xml in Resources */, + 44E98F971B1E72DF0043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg in Resources */, 4498D99B1A6601A7008C0B72 /* gettransportinfo_response_sonos.xml in Resources */, 44D88F8D1A71C4A8009D9608 /* ssdp_device_description_webos_minor.xml in Resources */, 44D88F931A71C4A8009D9608 /* ssdp_device_description_xbox.xml in Resources */, @@ -1538,6 +1547,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 44E98F981B1E72E00043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1601,6 +1611,8 @@ files = ( 44E98F901B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m in Sources */, 44E98F851B1E6A4D0043BC70 /* EXPMatchers+matchRegex.m in Sources */, + 44E98F9A1B1E733D0043BC70 /* AirPlayServiceIntegrationTests.m in Sources */, + 44E98F9B1B1E738F0043BC70 /* OCMArg+ArgumentCaptor.m in Sources */, 44E98F861B1E6A500043BC70 /* DLNAServiceIntegrationTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1739,7 +1751,7 @@ "DEBUG=1", "$(inherited)", ); - INFOPLIST_FILE = core/ConnectSDKTests/Info.plist; + INFOPLIST_FILE = core/ConnectSDKTests/SupportingFiles/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; @@ -1767,7 +1779,7 @@ ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "core/ConnectSDKTests/ConnectSDKTests-Prefix.pch"; - INFOPLIST_FILE = core/ConnectSDKTests/Info.plist; + INFOPLIST_FILE = core/ConnectSDKTests/SupportingFiles/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; @@ -1803,7 +1815,7 @@ "DEBUG=1", "$(inherited)", ); - INFOPLIST_FILE = core/ConnectSDKIntegrationTests/Info.plist; + INFOPLIST_FILE = core/ConnectSDKIntegrationTests/SupportingFiles/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; @@ -1836,7 +1848,7 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "core/ConnectSDKIntegrationTests/ConnectSDKIntegrationTests-Prefix.pch"; - INFOPLIST_FILE = core/ConnectSDKIntegrationTests/Info.plist; + INFOPLIST_FILE = core/ConnectSDKIntegrationTests/SupportingFiles/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; diff --git a/README.md b/README.md index 776dd177..a0726838 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,8 @@ These projects are used in tests: * [Specta](https://github.com/specta/specta/) (MIT) * [Expecta](https://github.com/specta/expecta/) (MIT) +This public domain image is used in tests: [The San Francisco peaks of flagstaff public domain image](http://www.public-domain-image.com/free-images/nature-landscapes/peaks/the-san-francisco-peaks-of-flagstaff). + ##License Copyright (c) 2013-2014 LG Electronics. diff --git a/core b/core index 3016756e..3385d165 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 3016756e0b0cb383635d81932076d08796254757 +Subproject commit 3385d165e537d66c45001ebc503d5892bffc241a From 9c42c7ef4a46f6db8d5491401d93e09be2aacb61 Mon Sep 17 00:00:00 2001 From: Ibrahim Adnan Date: Tue, 16 Jun 2015 13:17:54 -0700 Subject: [PATCH 15/18] Fixed Input Picker is not launching on new version of webOS --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 3385d165..ae982653 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 3385d165e537d66c45001ebc503d5892bffc241a +Subproject commit ae982653df4923fd8f7539ca69294de0488c3515 From 5d1695ae0e2c2576f13de677f26a7d1917e4bb26 Mon Sep 17 00:00:00 2001 From: Ibrahim Adnan Date: Thu, 18 Jun 2015 17:10:22 -0700 Subject: [PATCH 16/18] Added Error handling in playStateSubscription --- ConnectSDK.xcodeproj/project.pbxproj | 12 ++++++++++++ core | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ConnectSDK.xcodeproj/project.pbxproj b/ConnectSDK.xcodeproj/project.pbxproj index df223ab7..61a73c24 100644 --- a/ConnectSDK.xcodeproj/project.pbxproj +++ b/ConnectSDK.xcodeproj/project.pbxproj @@ -25,6 +25,7 @@ 0F446CC21A6D8353000BB1C0 /* PlayListControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F446CC11A6D8353000BB1C0 /* PlayListControl.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0F446CC91A6D924D000BB1C0 /* MediaLaunchObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F446CC71A6D924D000BB1C0 /* MediaLaunchObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0F446CCA1A6D924D000BB1C0 /* MediaLaunchObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F446CC81A6D924D000BB1C0 /* MediaLaunchObject.m */; }; + 0FE5F0B41B3370870009F27D /* WebOSWebAppSessionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FE5F0B31B3370870009F27D /* WebOSWebAppSessionTests.m */; }; 440A031D1A854EDE0007E3D3 /* WebOSTVServiceSocketClientTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 440A031C1A854EDE0007E3D3 /* WebOSTVServiceSocketClientTests.m */; }; 44291C521A68B4C000280E5C /* SSDPDiscoveryProvider_FilteringTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44291C511A68B4C000280E5C /* SSDPDiscoveryProvider_FilteringTests.m */; }; 443063C11A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.h in Headers */ = {isa = PBXBuildFile; fileRef = 443063BF1A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.h */; }; @@ -328,6 +329,7 @@ 0F446CC11A6D8353000BB1C0 /* PlayListControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlayListControl.h; sourceTree = ""; }; 0F446CC71A6D924D000BB1C0 /* MediaLaunchObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaLaunchObject.h; sourceTree = ""; }; 0F446CC81A6D924D000BB1C0 /* MediaLaunchObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MediaLaunchObject.m; sourceTree = ""; }; + 0FE5F0B31B3370870009F27D /* WebOSWebAppSessionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WebOSWebAppSessionTests.m; path = Sessions/WebOSWebAppSessionTests.m; sourceTree = ""; }; 440A031C1A854EDE0007E3D3 /* WebOSTVServiceSocketClientTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebOSTVServiceSocketClientTests.m; sourceTree = ""; }; 440A031E1A85536A0007E3D3 /* WebOSTVServiceSocketClient_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebOSTVServiceSocketClient_Private.h; sourceTree = ""; }; 44291C481A6705E400280E5C /* DLNAHTTPServer_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DLNAHTTPServer_Private.h; sourceTree = ""; }; @@ -648,9 +650,18 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 0FE5F0B21B33705A0009F27D /* Sessions */ = { + isa = PBXGroup; + children = ( + 0FE5F0B31B3370870009F27D /* WebOSWebAppSessionTests.m */, + ); + name = Sessions; + sourceTree = ""; + }; 4433F3DC1A421733008D9A04 /* Services */ = { isa = PBXGroup; children = ( + 0FE5F0B21B33705A0009F27D /* Sessions */, 4433F3DD1A421733008D9A04 /* Helpers */, 4498D9911A65B69F008C0B72 /* DLNAServiceTests.m */, 44A5518E1AC1DF4C001AF783 /* NetcastTVServiceTests.m */, @@ -1597,6 +1608,7 @@ 448F36C51A1BD64200536649 /* ZeroConfDiscoveryProviderTests.m in Sources */, 4498D9921A65B69F008C0B72 /* DLNAServiceTests.m in Sources */, 44758BBB1AE6C06200EC43A6 /* AirPlayServiceHTTPTests.m in Sources */, + 0FE5F0B41B3370870009F27D /* WebOSWebAppSessionTests.m in Sources */, 440A031D1A854EDE0007E3D3 /* WebOSTVServiceSocketClientTests.m in Sources */, 448414F91AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.m in Sources */, 44A5518F1AC1DF4C001AF783 /* NetcastTVServiceTests.m in Sources */, diff --git a/core b/core index ae982653..f4c08e1b 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit ae982653df4923fd8f7539ca69294de0488c3515 +Subproject commit f4c08e1b87c218a7e6b90d2ce4bdcc6536a338f4 From b848642b0f0aec0e209be48f44fdc28b5efab039 Mon Sep 17 00:00:00 2001 From: Eugene Nikolskyi Date: Fri, 19 Jun 2015 12:42:28 -0700 Subject: [PATCH 17/18] WebOSWebAppSessionTests: fix test crashes in Release mode --- ConnectSDK.xcodeproj/project.pbxproj | 4 ++++ core | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ConnectSDK.xcodeproj/project.pbxproj b/ConnectSDK.xcodeproj/project.pbxproj index 61a73c24..2ac6bcdd 100644 --- a/ConnectSDK.xcodeproj/project.pbxproj +++ b/ConnectSDK.xcodeproj/project.pbxproj @@ -65,6 +65,7 @@ 44C2CC951AB7948300B20E46 /* XMLWriter+ConvenienceMethods.m in Sources */ = {isa = PBXBuildFile; fileRef = 44C2CC931AB7948300B20E46 /* XMLWriter+ConvenienceMethods.m */; }; 44C2CCA11AB7A33500B20E46 /* NSString+Common.h in Headers */ = {isa = PBXBuildFile; fileRef = 44C2CC9F1AB7A33500B20E46 /* NSString+Common.h */; }; 44C2CCA21AB7A33500B20E46 /* NSString+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 44C2CCA01AB7A33500B20E46 /* NSString+Common.m */; }; + 44C3900F1B34A7B500723388 /* WebOSWebAppSession_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 44C3900E1B34A7B500723388 /* WebOSWebAppSession_Private.h */; }; 44D88F891A71C4A8009D9608 /* ssdp_device_description_chromecast.xml in Resources */ = {isa = PBXBuildFile; fileRef = 44D88F7A1A71C4A8009D9608 /* ssdp_device_description_chromecast.xml */; }; 44D88F8A1A71C4A8009D9608 /* ssdp_device_description_firetv.xml in Resources */ = {isa = PBXBuildFile; fileRef = 44D88F7B1A71C4A8009D9608 /* ssdp_device_description_firetv.xml */; }; 44D88F8B1A71C4A8009D9608 /* ssdp_device_description_roku2.xml in Resources */ = {isa = PBXBuildFile; fileRef = 44D88F7C1A71C4A8009D9608 /* ssdp_device_description_roku2.xml */; }; @@ -378,6 +379,7 @@ 44C2CC931AB7948300B20E46 /* XMLWriter+ConvenienceMethods.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "XMLWriter+ConvenienceMethods.m"; sourceTree = ""; }; 44C2CC9F1AB7A33500B20E46 /* NSString+Common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Common.h"; sourceTree = ""; }; 44C2CCA01AB7A33500B20E46 /* NSString+Common.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Common.m"; sourceTree = ""; }; + 44C3900E1B34A7B500723388 /* WebOSWebAppSession_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebOSWebAppSession_Private.h; sourceTree = ""; }; 44D88F7A1A71C4A8009D9608 /* ssdp_device_description_chromecast.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ssdp_device_description_chromecast.xml; sourceTree = ""; }; 44D88F7B1A71C4A8009D9608 /* ssdp_device_description_firetv.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ssdp_device_description_firetv.xml; sourceTree = ""; }; 44D88F7C1A71C4A8009D9608 /* ssdp_device_description_roku2.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ssdp_device_description_roku2.xml; sourceTree = ""; }; @@ -1234,6 +1236,7 @@ EA5FB853199AEC550057B4B4 /* WebAppSession.m */, EA5FB854199AEC550057B4B4 /* WebAppSessionDelegate.h */, EA5FB855199AEC550057B4B4 /* WebOSWebAppSession.h */, + 44C3900E1B34A7B500723388 /* WebOSWebAppSession_Private.h */, EA5FB856199AEC550057B4B4 /* WebOSWebAppSession.m */, ); path = Sessions; @@ -1368,6 +1371,7 @@ EA5FB8A0199AEC560057B4B4 /* GCDWebServerPrivate.h in Headers */, EA5FB8F6199AEC570057B4B4 /* AirPlayServiceMirrored.h in Headers */, EA5FB883199AEC550057B4B4 /* CTASIAuthenticationDialog.h in Headers */, + 44C3900F1B34A7B500723388 /* WebOSWebAppSession_Private.h in Headers */, EA5FB8A3199AEC560057B4B4 /* GCDWebServerResponse.h in Headers */, EA5FB86E199AEC550057B4B4 /* ConnectableDevice.h in Headers */, EA5FB87F199AEC550057B4B4 /* SSDPDiscoveryProvider.h in Headers */, diff --git a/core b/core index f4c08e1b..3b356cff 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit f4c08e1b87c218a7e6b90d2ce4bdcc6536a338f4 +Subproject commit 3b356cff6b38703be592e5b916333dd42e558547 From f38cd215997d59dc1e98af8d429383ca53308d58 Mon Sep 17 00:00:00 2001 From: Eugene Nikolskyi Date: Thu, 9 Jul 2015 15:41:43 -0700 Subject: [PATCH 18/18] Add Fire TV support with Fling SDK --- .gitmodules | 3 + AUTHORS.md | 18 + CHANGELOG.md | 15 + CONTRIBUTING.md | 33 +- ConnectSDK.podspec | 39 +- ConnectSDK.xcodeproj/project.pbxproj | 721 ++++++++++++++---- .../xcschemes/ConnectSDK.xcscheme | 16 +- .../ConnectSDKAcceptanceTests.xcscheme | 129 ++++ .../ConnectSDKIntegrationTests.xcscheme | 31 +- .../xcschemes/ConnectSDKTests.xcscheme | 25 +- ConnectSDKDefaultPlatforms.h | 7 +- LICENSE | 2 +- README.md | 78 +- VERSION | 2 - core | 2 +- modules/firetv | 1 + modules/google-cast | 2 +- 17 files changed, 913 insertions(+), 211 deletions(-) create mode 100644 ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKAcceptanceTests.xcscheme delete mode 100644 VERSION create mode 160000 modules/firetv diff --git a/.gitmodules b/.gitmodules index 6a31d67f..479d55cc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -6,3 +6,6 @@ path = core url = https://github.com/ConnectSDK/Connect-SDK-iOS-Core.git branch = dev +[submodule "modules/firetv"] + path = modules/firetv + url = https://github.com/ConnectSDK/Connect-SDK-iOS-FireTV.git diff --git a/AUTHORS.md b/AUTHORS.md index 5f3c4314..4be9b3ba 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -1,3 +1,21 @@ +Ibrahim Adnan -- [GitHub](https://github.com/iadnan) | [Twitter](https://twitter.com/ibrahimadnan) + +iOS SDK, iOS sample apps, documentation + +--- + +Eugene Nikolskyi -- [GitHub](https://github.com/eunikolsky) + +iOS SDK, iOS sample apps, documentation + +--- + +Oleksii Frolov -- [GitHub](https://github.com/frolov-alexey) + +Android SDK, Android sample apps, documentation + +--- + Henry Levak -- [GitHub](https://github.com/henrylevak) | [Twitter](http://www.twitter.com/HenryLevak) Product Manager, Provider of Bubble Teas diff --git a/CHANGELOG.md b/CHANGELOG.md index 4cf07ad0..fe245773 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Connect SDK iOS Changelog +## 1.5.0 -- 09 Jul 2015 + +- Supports Amazon Fling SDK to play and control media on Fire TV devices +- Added playlist support for WebOS TVs +- Added media player loop capability for WebOS TVs +- Added feature to pin web apps on WebOS TVs +- Fixed photos not displaying on Apple TV with OS 7.2 +- Fixed launching input picker for new versions of WebOS TVs +- Extended play state subscription to handle media playback errors on WebOS TVs +- Created a first set of integration and acceptance tests +- Miscellaneous bug fixes +- [See commits between 1.4.4 and 1.5.0](https://github.com/ConnectSDK/Connect-SDK-iOS/compare/1.4.4...1.5.0) + +[View files at version 1.5.0](https://github.com/ConnectSDK/Connect-SDK-iOS/tree/1.5.0) + ## 1.4.4 -- 29 Apr 2015 - Allow to set pairing type for WebOS TVs diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c39813ee..4f82a7f3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,10 +2,10 @@ ##General Questions -Please do not use GitHub issues for general questions about the SDK. Instead, use any of the following services to reach out to the development team. +Please do not use GitHub issues for general questions about the SDK. Instead, use any of the following services to reach out to the development team: -- [@ConnectSDK](https://twitter.com/ConnectSDK) -- [Stack Overflow TV Tag](http://www.stackoverflow.com/tags/tv) +- Twitter: [@ConnectSDK](https://twitter.com/ConnectSDK) +- Stack Overflow: [Connect-SDK tag](https://stackoverflow.com/tags/connect-sdk) (or [TV tag](https://stackoverflow.com/tags/tv)) - [support@connectsdk.com](mailto:support@connectsdk.com) ##Versioning @@ -14,22 +14,11 @@ We use [semantic versioning](http://semver.org/) in our tagged releases. ##Branching Strategy -- master - + latest stable, QA'd, tagged release of the SDK - + assume that this is safe for production use - + each tagged release will be made available as a CocoaPod -- sdk_MAJOR.MINOR - + stable branch working towards the next major/minor/patch release - + safe for checking out new features, but do not use in any production apps -- sdk_MAJOR.MINOR-dev - + unstable development branch working towards the next major/minor/patch release - + may not compile/run without errors - + for development only - + submit pull requests against this branch +We use the [successful git branching model](http://nvie.com/posts/a-successful-git-branching-model/), except without release branches, and the `develop` branch is named `dev`. -##Bug Reports & Feature Requests +##Bug Reports & Feature Requests -We use GitHub's issues system for managing bug reports and some upcoming features. Just open an issue and a member of the team will set the appropriate assignee, label, & milestone. +We use [GitHub's issues](https://github.com/ConnectSDK/Connect-SDK-iOS/issues) system for managing bug reports and some upcoming features. Just open an issue and a member of the team will set the appropriate assignee, label, & milestone. ###Crash Reports @@ -37,11 +26,15 @@ If you experience a crash, please attach your symbolicated crash log or stack tr ##Pull Requests -If you would like to submit code, please fork the repository on GitHub and develop on the latest sdk-X.Y-dev branch. We do not accept pull requests on the master branch, as we only merge QA'd & tagged code into the master branch. See the description of our branching strategy above. +If you would like to submit code, please fork the repository on GitHub and develop in a feature branch, created from the latest `dev` commit. We do not accept pull requests on the `master` branch, as we only merge QA'd and tagged code into the `master` branch. + +###Tests + +Please include unit/integration tests for the new/changed functionality with your pull request. It will help to verify the code is working as designed and make sure there are no regressions in future releases. Read more about our tests here: [README.md#tests](https://github.com/ConnectSDK/Connect-SDK-iOS/blob/dev/README.md#tests). ###Use of third party libraries -Connect SDK does include some third party libraries, but we try to avoid using them. If you'd like to integrate a library with a pull request, make sure that library has an open source license (MIT, Apache 2.0, etc). +Connect SDK includes some third party libraries. If you'd like to integrate a library with a pull request, make sure that library has an open source license (MIT, Apache 2.0, etc). ###Licensing @@ -49,4 +42,4 @@ If you submit a pull request, you acknowledge that your code will be released to ##Testing Lab -In the development of Connect SDK, we have gathered a number of devices for testing purposes. If you are contributing to and/or integrating Connect SDK & would like something tested in our lab, you may contact [partners@connectsdk.com](mailto:partners@connectsdk.com) with your request. +In the development of Connect SDK, we have gathered a number of devices for testing purposes. If you are contributing to and/or integrating Connect SDK and would like something tested in our lab, you may contact [partners@connectsdk.com](mailto:partners@connectsdk.com) with your request. diff --git a/ConnectSDK.podspec b/ConnectSDK.podspec index a23b2b0a..1220cc89 100644 --- a/ConnectSDK.podspec +++ b/ConnectSDK.podspec @@ -1,11 +1,16 @@ # There are two usage options of this podspec: -# * pod "ConnectSDK" will install the full ConnectSDK version; +# * pod "ConnectSDK" will install the full ConnectSDK version (without Amazon +# Fling SDK support; if you need it, please use the source ConnectSDK project +# directly); # * pod "ConnectSDK/Core" will install the core only (Lite version) without # external dependencies. +# +# Unfortunately, Amazon Fling SDK is not distributed via CocoaPods, so we +# cannot include its support in a subspec in an automated way. Pod::Spec.new do |s| s.name = "ConnectSDK" - s.version = "1.4.4" + s.version = "1.5.0" s.summary = "Connect SDK is an open source framework that connects your mobile apps with multiple TV platforms." s.description = <<-DESC @@ -24,8 +29,8 @@ Pod::Spec.new do |s| s.license = { :type => "Apache License, Version 2.0", :file => "LICENSE" } s.author = { "Connect SDK" => "support@connectsdk.com" } s.social_media_url = "http://twitter.com/ConnectSDK" - s.platform = :ios, "6.0" - s.ios.deployment_target = "6.0" + s.platform = :ios, "7.1" + s.ios.deployment_target = "7.1" s.source = { :git => "https://github.com/ConnectSDK/Connect-SDK-iOS.git", :tag => s.version, :submodules => true } @@ -37,6 +42,26 @@ Pod::Spec.new do |s| s.requires_arc = true s.libraries = "z", "icucore" s.prefix_header_contents = <<-PREFIX + // + // Prefix header + // + // The contents of this file are implicitly included at the beginning of every source file. + // + // Copyright (c) 2015 LG Electronics. + // + // 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. + // + #define CONNECT_SDK_VERSION @"#{s.version}" // Uncomment this line to enable SDK logging @@ -64,7 +89,7 @@ Pod::Spec.new do |s| s.subspec 'Core' do |sp| sp.source_files = "ConnectSDKDefaultPlatforms.h", "core/**/*.{h,m}" - sp.exclude_files = (non_arc_files.dup << "core/ConnectSDKTests") + sp.exclude_files = (non_arc_files.dup << "core/ConnectSDK*Tests/**/*") sp.private_header_files = "core/**/*_Private.h" sp.requires_arc = true @@ -80,8 +105,8 @@ Pod::Spec.new do |s| s.subspec 'GoogleCast' do |sp| sp.dependency 'ConnectSDK/Core' - sp.source_files = "modules/**/*.{h,m}" - sp.private_header_files = "modules/**/*_Private.h" + sp.source_files = "modules/google-cast/**/*.{h,m}" + sp.private_header_files = "modules/google-cast/**/*_Private.h" cast_version = "2.6.0" sp.dependency "google-cast-sdk", cast_version diff --git a/ConnectSDK.xcodeproj/project.pbxproj b/ConnectSDK.xcodeproj/project.pbxproj index 2ac6bcdd..dbb1fc04 100644 --- a/ConnectSDK.xcodeproj/project.pbxproj +++ b/ConnectSDK.xcodeproj/project.pbxproj @@ -25,23 +25,73 @@ 0F446CC21A6D8353000BB1C0 /* PlayListControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F446CC11A6D8353000BB1C0 /* PlayListControl.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0F446CC91A6D924D000BB1C0 /* MediaLaunchObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F446CC71A6D924D000BB1C0 /* MediaLaunchObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0F446CCA1A6D924D000BB1C0 /* MediaLaunchObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F446CC81A6D924D000BB1C0 /* MediaLaunchObject.m */; }; - 0FE5F0B41B3370870009F27D /* WebOSWebAppSessionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FE5F0B31B3370870009F27D /* WebOSWebAppSessionTests.m */; }; + 146A7D1B1B2896C300260441 /* FireTVIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 146A7D1A1B2896C300260441 /* FireTVIntegrationTests.m */; }; 440A031D1A854EDE0007E3D3 /* WebOSTVServiceSocketClientTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 440A031C1A854EDE0007E3D3 /* WebOSTVServiceSocketClientTests.m */; }; + 44166C561B4203880052F9EC /* libConnectSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EB1018FE485B00D75696 /* libConnectSDK.a */; }; + 44166C5C1B420B6A0052F9EC /* AirPlayServiceAcceptanceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F991B1E733D0043BC70 /* AirPlayServiceAcceptanceTests.m */; }; + 44166C5D1B420B6A0052F9EC /* DLNAServiceAcceptanceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 447F63431B14FDC600699843 /* DLNAServiceAcceptanceTests.m */; }; + 44166C5E1B420C270052F9EC /* Expecta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 449A37101B0FE03400E47DAC /* Expecta.framework */; }; + 44166C5F1B420C270052F9EC /* Specta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 449A37111B0FE03400E47DAC /* Specta.framework */; }; + 44166C601B420C2D0052F9EC /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316F251AF3F17A000FE655 /* OCMock.framework */; }; + 44166C611B420C4E0052F9EC /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBEF18FE48E900D75696 /* SystemConfiguration.framework */; }; + 44166C621B420C550052F9EC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF618E1A12E0A400CF344C /* libz.dylib */; }; + 44166C631B420C860052F9EC /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBF118FE48EF00D75696 /* MobileCoreServices.framework */; }; + 44166C641B420D960052F9EC /* GoogleCast.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4485140C1A02FC3200D66710 /* GoogleCast.framework */; }; + 44166C651B420DA60052F9EC /* AmazonFling.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316EF31AF2EBF5000FE655 /* AmazonFling.framework */; }; + 44166C661B420DA60052F9EC /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316EF41AF2EBF5000FE655 /* Bolts.framework */; }; + 44166C671B420DAD0052F9EC /* libc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316F051AF2F9AD000FE655 /* libc++.dylib */; }; + 44166C681B420DB50052F9EC /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316F071AF2F9BF000FE655 /* AdSupport.framework */; }; + 44166C691B420DC20052F9EC /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF619A1A12E23200CF344C /* libicucore.dylib */; }; + 44166C6A1B420DE40052F9EC /* OCMArg+ArgumentCaptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 448B286A1B03DAEA00DFF18F /* OCMArg+ArgumentCaptor.m */; }; + 44166C6B1B420DF60052F9EC /* OCMStubRecorder+SpectaAsync.m in Sources */ = {isa = PBXBuildFile; fileRef = 44B11F511B16827C00F0156C /* OCMStubRecorder+SpectaAsync.m */; }; + 44166C6C1B420E1A0052F9EC /* EXPMatchers+matchRegex.m in Sources */ = {isa = PBXBuildFile; fileRef = 441FE0EE1B1528D0006C47CE /* EXPMatchers+matchRegex.m */; }; + 44166C6E1B420ED80052F9EC /* FireTVAcceptanceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44B4C5B71B0E96E80024F229 /* FireTVAcceptanceTests.m */; }; + 44166CB31B4AFE060052F9EC /* the-san-francisco-peaks-of-flagstaff-718x544.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 44E98F961B1E72D80043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg */; }; + 441C9ED51B3DBCB200F912D5 /* SubscriptionDeduplicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 441C9ED31B3DBCB200F912D5 /* SubscriptionDeduplicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 441C9ED61B3DBCB200F912D5 /* SubscriptionDeduplicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 441C9ED41B3DBCB200F912D5 /* SubscriptionDeduplicator.m */; }; + 441C9EFF1B3DD8C500F912D5 /* SubscriptionDeduplicatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 441C9EFE1B3DD8C500F912D5 /* SubscriptionDeduplicatorTests.m */; }; + 441FE0EF1B1528D0006C47CE /* EXPMatchers+matchRegex.m in Sources */ = {isa = PBXBuildFile; fileRef = 441FE0EE1B1528D0006C47CE /* EXPMatchers+matchRegex.m */; }; 44291C521A68B4C000280E5C /* SSDPDiscoveryProvider_FilteringTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44291C511A68B4C000280E5C /* SSDPDiscoveryProvider_FilteringTests.m */; }; - 443063C11A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.h in Headers */ = {isa = PBXBuildFile; fileRef = 443063BF1A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.h */; }; + 443063C11A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.h in Headers */ = {isa = PBXBuildFile; fileRef = 443063BF1A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.h */; settings = {ATTRIBUTES = (Public, ); }; }; 443063C21A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.m in Sources */ = {isa = PBXBuildFile; fileRef = 443063C01A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.m */; }; + 44316EFE1AF2F04B000FE655 /* FireTVDiscoveryProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 44316EFC1AF2F04B000FE655 /* FireTVDiscoveryProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44316EFF1AF2F04B000FE655 /* FireTVDiscoveryProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 44316EFD1AF2F04B000FE655 /* FireTVDiscoveryProvider.m */; }; + 44316F021AF2F09B000FE655 /* FireTVDiscoveryProviderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44316F011AF2F09B000FE655 /* FireTVDiscoveryProviderTests.m */; }; + 44316F031AF2F77C000FE655 /* AmazonFling.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316EF31AF2EBF5000FE655 /* AmazonFling.framework */; }; + 44316F041AF2F936000FE655 /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316EF41AF2EBF5000FE655 /* Bolts.framework */; }; + 44316F061AF2F9AD000FE655 /* libc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316F051AF2F9AD000FE655 /* libc++.dylib */; }; + 44316F081AF2F9BF000FE655 /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316F071AF2F9BF000FE655 /* AdSupport.framework */; }; + 44316F291AF3F17A000FE655 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316F251AF3F17A000FE655 /* OCMock.framework */; }; + 44316F2B1AF3F17A000FE655 /* OHHTTPStubs.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316F271AF3F17A000FE655 /* OHHTTPStubs.framework */; }; 4433F3DF1A421750008D9A04 /* AirPlayServiceHTTPKeepAliveTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4433F3DE1A421750008D9A04 /* AirPlayServiceHTTPKeepAliveTests.m */; }; + 444287CA1B055E0C00B1F875 /* XCTestCase+TaskTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 444287C91B055E0C00B1F875 /* XCTestCase+TaskTests.m */; }; 44758BBB1AE6C06200EC43A6 /* AirPlayServiceHTTPTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44758BBA1AE6C06200EC43A6 /* AirPlayServiceHTTPTests.m */; }; 44758BCE1AE7070600EC43A6 /* airplay_playbackinfo_ff.json in Resources */ = {isa = PBXBuildFile; fileRef = 44758BC91AE7070500EC43A6 /* airplay_playbackinfo_ff.json */; }; 44758BCF1AE7070600EC43A6 /* airplay_playbackinfo_finished.json in Resources */ = {isa = PBXBuildFile; fileRef = 44758BCA1AE7070500EC43A6 /* airplay_playbackinfo_finished.json */; }; 44758BD01AE7070600EC43A6 /* airplay_playbackinfo_paused.json in Resources */ = {isa = PBXBuildFile; fileRef = 44758BCB1AE7070500EC43A6 /* airplay_playbackinfo_paused.json */; }; 44758BD11AE7070600EC43A6 /* airplay_playbackinfo_playing.json in Resources */ = {isa = PBXBuildFile; fileRef = 44758BCC1AE7070500EC43A6 /* airplay_playbackinfo_playing.json */; }; 44758BD21AE7070600EC43A6 /* airplay_playbackinfo_rewind.json in Resources */ = {isa = PBXBuildFile; fileRef = 44758BCD1AE7070600EC43A6 /* airplay_playbackinfo_rewind.json */; }; + 447F63411B14F35900699843 /* GoogleCast.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4485140C1A02FC3200D66710 /* GoogleCast.framework */; }; 4480857F1A12A7BE00E13938 /* ConnectSDKDefaultPlatformsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4480857E1A12A7BE00E13938 /* ConnectSDKDefaultPlatformsTests.m */; }; 448085801A12A7BE00E13938 /* libConnectSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EB1018FE485B00D75696 /* libConnectSDK.a */; }; 448414F91AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.m in Sources */ = {isa = PBXBuildFile; fileRef = 448414F81AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.m */; }; + 448B286B1B03DAEA00DFF18F /* OCMArg+ArgumentCaptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 448B286A1B03DAEA00DFF18F /* OCMArg+ArgumentCaptor.m */; }; + 448B286F1B041A3A00DFF18F /* FireTVMediaControlTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 448B286D1B041A3A00DFF18F /* FireTVMediaControlTests.m */; }; + 448B28701B041A3B00DFF18F /* FireTVMediaPlayerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 448B286E1B041A3A00DFF18F /* FireTVMediaPlayerTests.m */; }; + 448B28761B041A5600DFF18F /* FireTVMediaControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 448B28721B041A5600DFF18F /* FireTVMediaControl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 448B28771B041A5600DFF18F /* FireTVMediaControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 448B28731B041A5600DFF18F /* FireTVMediaControl.m */; }; + 448B28781B041A5600DFF18F /* FireTVMediaPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 448B28741B041A5600DFF18F /* FireTVMediaPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 448B28791B041A5600DFF18F /* FireTVMediaPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 448B28751B041A5600DFF18F /* FireTVMediaPlayer.m */; }; 448F36C51A1BD64200536649 /* ZeroConfDiscoveryProviderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 448F36C41A1BD64200536649 /* ZeroConfDiscoveryProviderTests.m */; }; - 4498D98C1A659F43008C0B72 /* NSDictionary+KeyPredicateSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = 4498D98A1A659F43008C0B72 /* NSDictionary+KeyPredicateSearch.h */; }; + 449426301AF82F49006BAFF2 /* BlockRunner.h in Headers */ = {isa = PBXBuildFile; fileRef = 4494262F1AF82F49006BAFF2 /* BlockRunner.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 449426331AF82F8E006BAFF2 /* BlockRunnerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 449426321AF82F8E006BAFF2 /* BlockRunnerTests.m */; }; + 449426351AF83055006BAFF2 /* SynchronousBlockRunnerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 449426341AF83055006BAFF2 /* SynchronousBlockRunnerTests.m */; }; + 449426381AF830A1006BAFF2 /* SynchronousBlockRunner.h in Headers */ = {isa = PBXBuildFile; fileRef = 449426361AF830A1006BAFF2 /* SynchronousBlockRunner.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 449426391AF830A1006BAFF2 /* SynchronousBlockRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = 449426371AF830A1006BAFF2 /* SynchronousBlockRunner.m */; }; + 4494263B1AF8353A006BAFF2 /* DispatchQueueBlockRunnerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4494263A1AF8353A006BAFF2 /* DispatchQueueBlockRunnerTests.m */; }; + 4494263E1AF83588006BAFF2 /* DispatchQueueBlockRunner.h in Headers */ = {isa = PBXBuildFile; fileRef = 4494263C1AF83588006BAFF2 /* DispatchQueueBlockRunner.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4494263F1AF83588006BAFF2 /* DispatchQueueBlockRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = 4494263D1AF83588006BAFF2 /* DispatchQueueBlockRunner.m */; }; + 4498D98C1A659F43008C0B72 /* NSDictionary+KeyPredicateSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = 4498D98A1A659F43008C0B72 /* NSDictionary+KeyPredicateSearch.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4498D98D1A659F43008C0B72 /* NSDictionary+KeyPredicateSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = 4498D98B1A659F43008C0B72 /* NSDictionary+KeyPredicateSearch.m */; }; 4498D9901A65A1D7008C0B72 /* NSDictionary+KeyPredicateSearchTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4498D98F1A65A1D7008C0B72 /* NSDictionary+KeyPredicateSearchTests.m */; }; 4498D9921A65B69F008C0B72 /* DLNAServiceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4498D9911A65B69F008C0B72 /* DLNAServiceTests.m */; }; @@ -56,16 +106,37 @@ 4498D9A51A66148F008C0B72 /* upnperror_response_xbox.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4498D9A41A66148F008C0B72 /* upnperror_response_xbox.xml */; }; 4498D9A71A661500008C0B72 /* upnperror_response_sonos.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4498D9A61A661500008C0B72 /* upnperror_response_sonos.xml */; }; 4498D9A91A66F027008C0B72 /* DLNAHTTPServerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4498D9A81A66F027008C0B72 /* DLNAHTTPServerTests.m */; }; + 449A37081B0FDC1C00E47DAC /* libConnectSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EB1018FE485B00D75696 /* libConnectSDK.a */; }; + 449A37121B0FE03400E47DAC /* Expecta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 449A37101B0FE03400E47DAC /* Expecta.framework */; }; + 449A37131B0FE03400E47DAC /* Specta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 449A37111B0FE03400E47DAC /* Specta.framework */; }; + 449A37141B0FE30700E47DAC /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316F251AF3F17A000FE655 /* OCMock.framework */; }; + 449A37151B0FE32E00E47DAC /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF619A1A12E23200CF344C /* libicucore.dylib */; }; + 449A37161B0FE33100E47DAC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF618E1A12E0A400CF344C /* libz.dylib */; }; + 449A37171B0FE36E00E47DAC /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316EF41AF2EBF5000FE655 /* Bolts.framework */; }; + 449A37181B0FE37100E47DAC /* AmazonFling.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316EF31AF2EBF5000FE655 /* AmazonFling.framework */; }; + 449A37191B0FE37B00E47DAC /* libc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316F051AF2F9AD000FE655 /* libc++.dylib */; }; + 449A371A1B0FE38700E47DAC /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBEF18FE48E900D75696 /* SystemConfiguration.framework */; }; + 449A371B1B0FE39700E47DAC /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44316F071AF2F9BF000FE655 /* AdSupport.framework */; }; + 449A371C1B0FE3A500E47DAC /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBF118FE48EF00D75696 /* MobileCoreServices.framework */; }; + 449CC26B1AF9458E0064F2F7 /* ServiceDescriptionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 449CC26A1AF9458E0064F2F7 /* ServiceDescriptionTests.m */; }; + 44A0E1A71B3B31DC00ADF95F /* WebOSWebAppSessionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A0E1A51B3B2F5C00ADF95F /* WebOSWebAppSessionTests.m */; }; + 44A499051B0AD0C1002C94E7 /* FireTVCapabilityMixin.h in Headers */ = {isa = PBXBuildFile; fileRef = 44A499031B0AD0C1002C94E7 /* FireTVCapabilityMixin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44A499061B0AD0C1002C94E7 /* FireTVCapabilityMixin.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A499041B0AD0C1002C94E7 /* FireTVCapabilityMixin.m */; }; 44A5518F1AC1DF4C001AF783 /* NetcastTVServiceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A5518E1AC1DF4C001AF783 /* NetcastTVServiceTests.m */; }; 44A551991AC338E0001AF783 /* WebOSTVServiceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A551981AC338E0001AF783 /* WebOSTVServiceTests.m */; }; - 44A5519F1AC36672001AF783 /* CommonMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 44A5519D1AC36672001AF783 /* CommonMacros.h */; }; - 44BCC3F61AB77F7D001BCDAA /* XMLWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 44BCC3F41AB77F7D001BCDAA /* XMLWriter.h */; }; + 44A5519F1AC36672001AF783 /* CommonMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 44A5519D1AC36672001AF783 /* CommonMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44AD91741AF9A02300C23A71 /* FireTVServiceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44AD91731AF9A02300C23A71 /* FireTVServiceTests.m */; }; + 44AD91771AFA7F1000C23A71 /* FireTVService.h in Headers */ = {isa = PBXBuildFile; fileRef = 44AD91751AFA7F1000C23A71 /* FireTVService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44AD91781AFA7F1000C23A71 /* FireTVService.m in Sources */ = {isa = PBXBuildFile; fileRef = 44AD91761AFA7F1000C23A71 /* FireTVService.m */; }; + 44B11F521B16827C00F0156C /* OCMStubRecorder+SpectaAsync.m in Sources */ = {isa = PBXBuildFile; fileRef = 44B11F511B16827C00F0156C /* OCMStubRecorder+SpectaAsync.m */; }; + 44BCC3F61AB77F7D001BCDAA /* XMLWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 44BCC3F41AB77F7D001BCDAA /* XMLWriter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 44BCC3F71AB77F7D001BCDAA /* XMLWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 44BCC3F51AB77F7D001BCDAA /* XMLWriter.m */; }; - 44C2CC941AB7948300B20E46 /* XMLWriter+ConvenienceMethods.h in Headers */ = {isa = PBXBuildFile; fileRef = 44C2CC921AB7948300B20E46 /* XMLWriter+ConvenienceMethods.h */; }; + 44C2CC941AB7948300B20E46 /* XMLWriter+ConvenienceMethods.h in Headers */ = {isa = PBXBuildFile; fileRef = 44C2CC921AB7948300B20E46 /* XMLWriter+ConvenienceMethods.h */; settings = {ATTRIBUTES = (Public, ); }; }; 44C2CC951AB7948300B20E46 /* XMLWriter+ConvenienceMethods.m in Sources */ = {isa = PBXBuildFile; fileRef = 44C2CC931AB7948300B20E46 /* XMLWriter+ConvenienceMethods.m */; }; - 44C2CCA11AB7A33500B20E46 /* NSString+Common.h in Headers */ = {isa = PBXBuildFile; fileRef = 44C2CC9F1AB7A33500B20E46 /* NSString+Common.h */; }; + 44C2CCA11AB7A33500B20E46 /* NSString+Common.h in Headers */ = {isa = PBXBuildFile; fileRef = 44C2CC9F1AB7A33500B20E46 /* NSString+Common.h */; settings = {ATTRIBUTES = (Public, ); }; }; 44C2CCA21AB7A33500B20E46 /* NSString+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 44C2CCA01AB7A33500B20E46 /* NSString+Common.m */; }; - 44C3900F1B34A7B500723388 /* WebOSWebAppSession_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 44C3900E1B34A7B500723388 /* WebOSWebAppSession_Private.h */; }; + 44C390121B34DCAE00723388 /* DiscoveryManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44C390111B34DCAE00723388 /* DiscoveryManagerTests.m */; }; + 44CF0E1A1B16ACD800B80FEF /* OCMArg+ArgumentCaptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 448B286A1B03DAEA00DFF18F /* OCMArg+ArgumentCaptor.m */; }; 44D88F891A71C4A8009D9608 /* ssdp_device_description_chromecast.xml in Resources */ = {isa = PBXBuildFile; fileRef = 44D88F7A1A71C4A8009D9608 /* ssdp_device_description_chromecast.xml */; }; 44D88F8A1A71C4A8009D9608 /* ssdp_device_description_firetv.xml in Resources */ = {isa = PBXBuildFile; fileRef = 44D88F7B1A71C4A8009D9608 /* ssdp_device_description_firetv.xml */; }; 44D88F8B1A71C4A8009D9608 /* ssdp_device_description_roku2.xml in Resources */ = {isa = PBXBuildFile; fileRef = 44D88F7C1A71C4A8009D9608 /* ssdp_device_description_roku2.xml */; }; @@ -83,25 +154,12 @@ 44D88F991A71DB15009D9608 /* ssdp_device_description_dlna_root_no_required_services.xml in Resources */ = {isa = PBXBuildFile; fileRef = 44D88F981A71DB15009D9608 /* ssdp_device_description_dlna_root_no_required_services.xml */; }; 44D8F7D21AB224BB00559FE3 /* ssdp_device_description_lg_speaker.xml in Resources */ = {isa = PBXBuildFile; fileRef = 44D8F7D11AB223BF00559FE3 /* ssdp_device_description_lg_speaker.xml */; }; 44D8F7DA1AB27B4800559FE3 /* NSInvocation+ObjectGetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 44D8F7D91AB27B4800559FE3 /* NSInvocation+ObjectGetter.m */; }; + 44D90AA91B06AA9E00A5CF2A /* AppStateChangeNotifierTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44D90AA81B06AA9E00A5CF2A /* AppStateChangeNotifierTests.m */; }; + 44D90AAC1B06B26C00A5CF2A /* AppStateChangeNotifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 44D90AAA1B06B26C00A5CF2A /* AppStateChangeNotifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44D90AAD1B06B26C00A5CF2A /* AppStateChangeNotifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 44D90AAB1B06B26C00A5CF2A /* AppStateChangeNotifier.m */; }; 44E98F5F1B1E63570043BC70 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F5D1B1E63570043BC70 /* OCMock.framework */; }; 44E98F601B1E63570043BC70 /* OHHTTPStubs.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F5E1B1E63570043BC70 /* OHHTTPStubs.framework */; }; - 44E98F631B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F621B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m */; }; - 44E98F7D1B1E694A0043BC70 /* libConnectSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EB1018FE485B00D75696 /* libConnectSDK.a */; }; - 44E98F831B1E6A430043BC70 /* Expecta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F6A1B1E67500043BC70 /* Expecta.framework */; }; - 44E98F841B1E6A430043BC70 /* Specta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F6B1B1E67500043BC70 /* Specta.framework */; }; - 44E98F851B1E6A4D0043BC70 /* EXPMatchers+matchRegex.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F681B1E67500043BC70 /* EXPMatchers+matchRegex.m */; }; - 44E98F861B1E6A500043BC70 /* DLNAServiceIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F661B1E67500043BC70 /* DLNAServiceIntegrationTests.m */; }; - 44E98F881B1E6CBE0043BC70 /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44E98F5D1B1E63570043BC70 /* OCMock.framework */; }; - 44E98F891B1E6CE10043BC70 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF618E1A12E0A400CF344C /* libz.dylib */; }; - 44E98F8A1B1E6CE30043BC70 /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF619A1A12E23200CF344C /* libicucore.dylib */; }; - 44E98F8B1B1E6D000043BC70 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBF118FE48EF00D75696 /* MobileCoreServices.framework */; }; - 44E98F8C1B1E6D0E0043BC70 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBEF18FE48E900D75696 /* SystemConfiguration.framework */; }; - 44E98F8D1B1E6D7F0043BC70 /* GoogleCast.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4485140C1A02FC3200D66710 /* GoogleCast.framework */; }; - 44E98F901B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F8F1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m */; }; 44E98F971B1E72DF0043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 44E98F961B1E72D80043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg */; }; - 44E98F981B1E72E00043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 44E98F961B1E72D80043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg */; }; - 44E98F9A1B1E733D0043BC70 /* AirPlayServiceIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F991B1E733D0043BC70 /* AirPlayServiceIntegrationTests.m */; }; - 44E98F9B1B1E738F0043BC70 /* OCMArg+ArgumentCaptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 44E98F621B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m */; }; 44EF618B1A12DC7E00CF344C /* ConnectSDK-Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = EA5FB79E199AEC550057B4B4 /* ConnectSDK-Prefix.pch */; }; 44EF618D1A12E02700CF344C /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA61EBF118FE48EF00D75696 /* MobileCoreServices.framework */; }; 44EF618F1A12E0A400CF344C /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF618E1A12E0A400CF344C /* libz.dylib */; }; @@ -111,7 +169,7 @@ 44EF619B1A12E23200CF344C /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EF619A1A12E23200CF344C /* libicucore.dylib */; }; 44EF61A41A12FC8800CF344C /* SSDPDiscoveryProviderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 44EF61A31A12FC8800CF344C /* SSDPDiscoveryProviderTests.m */; }; BB9F706B1155B806AFBF3336 /* DLNAHTTPServer.m in Sources */ = {isa = PBXBuildFile; fileRef = BB9F703F509283F37E26C0B4 /* DLNAHTTPServer.m */; }; - BB9F712900733DE480F64D8E /* DLNAHTTPServer.h in Headers */ = {isa = PBXBuildFile; fileRef = BB9F7271D17DCAE1C615A59A /* DLNAHTTPServer.h */; }; + BB9F712900733DE480F64D8E /* DLNAHTTPServer.h in Headers */ = {isa = PBXBuildFile; fileRef = BB9F7271D17DCAE1C615A59A /* DLNAHTTPServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; BB9F726F85973936620CDADD /* MediaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BB9F735CB760F4387DDA84B4 /* MediaInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; BB9F776F4924E08D116738B1 /* ImageInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = BB9F7AF5170CE02632778263 /* ImageInfo.m */; }; BB9F7AD33329FD4AC66C2D12 /* ImageInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BB9F71B68553DCA74ED1C43E /* ImageInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -291,6 +349,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 44166C571B4203880052F9EC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = EA61EB0818FE485B00D75696 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EA61EB0F18FE485B00D75696; + remoteInfo = ConnectSDK; + }; 448085811A12A7BE00E13938 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = EA61EB0818FE485B00D75696 /* Project object */; @@ -298,7 +363,7 @@ remoteGlobalIDString = EA61EB0F18FE485B00D75696; remoteInfo = ConnectSDK; }; - 44E98F7E1B1E694A0043BC70 /* PBXContainerItemProxy */ = { + 449A37091B0FDC1C00E47DAC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = EA61EB0818FE485B00D75696 /* Project object */; proxyType = 1; @@ -330,15 +395,33 @@ 0F446CC11A6D8353000BB1C0 /* PlayListControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlayListControl.h; sourceTree = ""; }; 0F446CC71A6D924D000BB1C0 /* MediaLaunchObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaLaunchObject.h; sourceTree = ""; }; 0F446CC81A6D924D000BB1C0 /* MediaLaunchObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MediaLaunchObject.m; sourceTree = ""; }; - 0FE5F0B31B3370870009F27D /* WebOSWebAppSessionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WebOSWebAppSessionTests.m; path = Sessions/WebOSWebAppSessionTests.m; sourceTree = ""; }; + 146A7D1A1B2896C300260441 /* FireTVIntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FireTVIntegrationTests.m; sourceTree = ""; }; 440A031C1A854EDE0007E3D3 /* WebOSTVServiceSocketClientTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebOSTVServiceSocketClientTests.m; sourceTree = ""; }; 440A031E1A85536A0007E3D3 /* WebOSTVServiceSocketClient_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebOSTVServiceSocketClient_Private.h; sourceTree = ""; }; + 44166C501B4203880052F9EC /* ConnectSDKAcceptanceTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConnectSDKAcceptanceTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 44166C531B4203880052F9EC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 441C9ED31B3DBCB200F912D5 /* SubscriptionDeduplicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SubscriptionDeduplicator.h; sourceTree = ""; }; + 441C9ED41B3DBCB200F912D5 /* SubscriptionDeduplicator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SubscriptionDeduplicator.m; sourceTree = ""; }; + 441C9EFE1B3DD8C500F912D5 /* SubscriptionDeduplicatorTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SubscriptionDeduplicatorTests.m; sourceTree = ""; }; + 441FE0ED1B1528D0006C47CE /* EXPMatchers+matchRegex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+matchRegex.h"; sourceTree = ""; }; + 441FE0EE1B1528D0006C47CE /* EXPMatchers+matchRegex.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+matchRegex.m"; sourceTree = ""; }; 44291C481A6705E400280E5C /* DLNAHTTPServer_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DLNAHTTPServer_Private.h; sourceTree = ""; }; 44291C511A68B4C000280E5C /* SSDPDiscoveryProvider_FilteringTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SSDPDiscoveryProvider_FilteringTests.m; sourceTree = ""; }; 442B9A431A153F240053AE51 /* SSDPDiscoveryProvider_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SSDPDiscoveryProvider_Private.h; sourceTree = ""; }; 443063BF1A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AirPlayServiceHTTPKeepAlive.h; sourceTree = ""; }; 443063C01A4210F0007779DA /* AirPlayServiceHTTPKeepAlive.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AirPlayServiceHTTPKeepAlive.m; sourceTree = ""; }; + 44316EF31AF2EBF5000FE655 /* AmazonFling.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AmazonFling.framework; sourceTree = ""; }; + 44316EF41AF2EBF5000FE655 /* Bolts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Bolts.framework; sourceTree = ""; }; + 44316EFC1AF2F04B000FE655 /* FireTVDiscoveryProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FireTVDiscoveryProvider.h; sourceTree = ""; }; + 44316EFD1AF2F04B000FE655 /* FireTVDiscoveryProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FireTVDiscoveryProvider.m; sourceTree = ""; }; + 44316F011AF2F09B000FE655 /* FireTVDiscoveryProviderTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FireTVDiscoveryProviderTests.m; sourceTree = ""; }; + 44316F051AF2F9AD000FE655 /* libc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.dylib"; path = "usr/lib/libc++.dylib"; sourceTree = SDKROOT; }; + 44316F071AF2F9BF000FE655 /* AdSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdSupport.framework; path = System/Library/Frameworks/AdSupport.framework; sourceTree = SDKROOT; }; + 44316F251AF3F17A000FE655 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCMock.framework; sourceTree = ""; }; + 44316F271AF3F17A000FE655 /* OHHTTPStubs.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OHHTTPStubs.framework; sourceTree = ""; }; 4433F3DE1A421750008D9A04 /* AirPlayServiceHTTPKeepAliveTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AirPlayServiceHTTPKeepAliveTests.m; sourceTree = ""; }; + 444287C81B055E0C00B1F875 /* XCTestCase+TaskTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "XCTestCase+TaskTests.h"; sourceTree = ""; }; + 444287C91B055E0C00B1F875 /* XCTestCase+TaskTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "XCTestCase+TaskTests.m"; sourceTree = ""; }; 44758BBA1AE6C06200EC43A6 /* AirPlayServiceHTTPTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AirPlayServiceHTTPTests.m; sourceTree = ""; }; 44758BBC1AE6C6E300EC43A6 /* AirPlayServiceHTTP_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AirPlayServiceHTTP_Private.h; sourceTree = ""; }; 44758BC91AE7070500EC43A6 /* airplay_playbackinfo_ff.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = airplay_playbackinfo_ff.json; sourceTree = ""; }; @@ -346,13 +429,32 @@ 44758BCB1AE7070500EC43A6 /* airplay_playbackinfo_paused.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = airplay_playbackinfo_paused.json; sourceTree = ""; }; 44758BCC1AE7070500EC43A6 /* airplay_playbackinfo_playing.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = airplay_playbackinfo_playing.json; sourceTree = ""; }; 44758BCD1AE7070600EC43A6 /* airplay_playbackinfo_rewind.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = airplay_playbackinfo_rewind.json; sourceTree = ""; }; + 447F63431B14FDC600699843 /* DLNAServiceAcceptanceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DLNAServiceAcceptanceTests.m; sourceTree = ""; }; + 447F63451B15000800699843 /* ConnectSDKIntegrationTests-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ConnectSDKIntegrationTests-Prefix.pch"; sourceTree = ""; }; 4480857A1A12A7BE00E13938 /* ConnectSDKTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConnectSDKTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 4480857E1A12A7BE00E13938 /* ConnectSDKDefaultPlatformsTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConnectSDKDefaultPlatformsTests.m; sourceTree = ""; }; 448414F71AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OCMStubRecorder+XCTestExpectation.h"; sourceTree = ""; }; 448414F81AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OCMStubRecorder+XCTestExpectation.m"; sourceTree = ""; }; 4485140C1A02FC3200D66710 /* GoogleCast.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GoogleCast.framework; sourceTree = ""; }; + 448B28691B03DAEA00DFF18F /* OCMArg+ArgumentCaptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OCMArg+ArgumentCaptor.h"; sourceTree = ""; }; + 448B286A1B03DAEA00DFF18F /* OCMArg+ArgumentCaptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OCMArg+ArgumentCaptor.m"; sourceTree = ""; }; + 448B286D1B041A3A00DFF18F /* FireTVMediaControlTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FireTVMediaControlTests.m; sourceTree = ""; }; + 448B286E1B041A3A00DFF18F /* FireTVMediaPlayerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FireTVMediaPlayerTests.m; sourceTree = ""; }; + 448B28721B041A5600DFF18F /* FireTVMediaControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FireTVMediaControl.h; sourceTree = ""; }; + 448B28731B041A5600DFF18F /* FireTVMediaControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FireTVMediaControl.m; sourceTree = ""; }; + 448B28741B041A5600DFF18F /* FireTVMediaPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FireTVMediaPlayer.h; sourceTree = ""; }; + 448B28751B041A5600DFF18F /* FireTVMediaPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FireTVMediaPlayer.m; sourceTree = ""; }; 448F36C41A1BD64200536649 /* ZeroConfDiscoveryProviderTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZeroConfDiscoveryProviderTests.m; sourceTree = ""; }; 448F36C61A1C16FE00536649 /* ZeroConfDiscoveryProvider_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZeroConfDiscoveryProvider_Private.h; sourceTree = ""; }; + 4494262F1AF82F49006BAFF2 /* BlockRunner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlockRunner.h; sourceTree = ""; }; + 449426321AF82F8E006BAFF2 /* BlockRunnerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BlockRunnerTests.m; sourceTree = ""; }; + 449426341AF83055006BAFF2 /* SynchronousBlockRunnerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SynchronousBlockRunnerTests.m; sourceTree = ""; }; + 449426361AF830A1006BAFF2 /* SynchronousBlockRunner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SynchronousBlockRunner.h; sourceTree = ""; }; + 449426371AF830A1006BAFF2 /* SynchronousBlockRunner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SynchronousBlockRunner.m; sourceTree = ""; }; + 4494263A1AF8353A006BAFF2 /* DispatchQueueBlockRunnerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DispatchQueueBlockRunnerTests.m; sourceTree = ""; }; + 4494263C1AF83588006BAFF2 /* DispatchQueueBlockRunner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DispatchQueueBlockRunner.h; sourceTree = ""; }; + 4494263D1AF83588006BAFF2 /* DispatchQueueBlockRunner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DispatchQueueBlockRunner.m; sourceTree = ""; }; + 449426401AF847D1006BAFF2 /* FireTVDiscoveryProvider_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FireTVDiscoveryProvider_Private.h; sourceTree = ""; }; 4498D98A1A659F43008C0B72 /* NSDictionary+KeyPredicateSearch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+KeyPredicateSearch.h"; sourceTree = ""; }; 4498D98B1A659F43008C0B72 /* NSDictionary+KeyPredicateSearch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+KeyPredicateSearch.m"; sourceTree = ""; }; 4498D98F1A65A1D7008C0B72 /* NSDictionary+KeyPredicateSearchTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+KeyPredicateSearchTests.m"; sourceTree = ""; }; @@ -369,10 +471,24 @@ 4498D9A41A66148F008C0B72 /* upnperror_response_xbox.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = upnperror_response_xbox.xml; sourceTree = ""; }; 4498D9A61A661500008C0B72 /* upnperror_response_sonos.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = upnperror_response_sonos.xml; sourceTree = ""; }; 4498D9A81A66F027008C0B72 /* DLNAHTTPServerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DLNAHTTPServerTests.m; sourceTree = ""; }; + 449A37021B0FDC1C00E47DAC /* ConnectSDKIntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConnectSDKIntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 449A37051B0FDC1C00E47DAC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 449A37101B0FE03400E47DAC /* Expecta.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Expecta.framework; sourceTree = ""; }; + 449A37111B0FE03400E47DAC /* Specta.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Specta.framework; sourceTree = ""; }; + 449CC26A1AF9458E0064F2F7 /* ServiceDescriptionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServiceDescriptionTests.m; sourceTree = ""; }; + 44A0E1A51B3B2F5C00ADF95F /* WebOSWebAppSessionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebOSWebAppSessionTests.m; sourceTree = ""; }; + 44A499031B0AD0C1002C94E7 /* FireTVCapabilityMixin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FireTVCapabilityMixin.h; sourceTree = ""; }; + 44A499041B0AD0C1002C94E7 /* FireTVCapabilityMixin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FireTVCapabilityMixin.m; sourceTree = ""; }; 44A5518B1AC1D924001AF783 /* NetcastTVService_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetcastTVService_Private.h; sourceTree = ""; }; 44A5518E1AC1DF4C001AF783 /* NetcastTVServiceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NetcastTVServiceTests.m; sourceTree = ""; }; 44A551981AC338E0001AF783 /* WebOSTVServiceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebOSTVServiceTests.m; sourceTree = ""; }; 44A5519D1AC36672001AF783 /* CommonMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommonMacros.h; sourceTree = ""; }; + 44AD91731AF9A02300C23A71 /* FireTVServiceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FireTVServiceTests.m; sourceTree = ""; }; + 44AD91751AFA7F1000C23A71 /* FireTVService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FireTVService.h; sourceTree = ""; }; + 44AD91761AFA7F1000C23A71 /* FireTVService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FireTVService.m; sourceTree = ""; }; + 44B11F501B16827C00F0156C /* OCMStubRecorder+SpectaAsync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OCMStubRecorder+SpectaAsync.h"; sourceTree = ""; }; + 44B11F511B16827C00F0156C /* OCMStubRecorder+SpectaAsync.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OCMStubRecorder+SpectaAsync.m"; sourceTree = ""; }; + 44B4C5B71B0E96E80024F229 /* FireTVAcceptanceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FireTVAcceptanceTests.m; sourceTree = ""; }; 44BCC3F41AB77F7D001BCDAA /* XMLWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLWriter.h; sourceTree = ""; }; 44BCC3F51AB77F7D001BCDAA /* XMLWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XMLWriter.m; sourceTree = ""; }; 44C2CC921AB7948300B20E46 /* XMLWriter+ConvenienceMethods.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "XMLWriter+ConvenienceMethods.h"; sourceTree = ""; }; @@ -380,6 +496,8 @@ 44C2CC9F1AB7A33500B20E46 /* NSString+Common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Common.h"; sourceTree = ""; }; 44C2CCA01AB7A33500B20E46 /* NSString+Common.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Common.m"; sourceTree = ""; }; 44C3900E1B34A7B500723388 /* WebOSWebAppSession_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebOSWebAppSession_Private.h; sourceTree = ""; }; + 44C390111B34DCAE00723388 /* DiscoveryManagerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DiscoveryManagerTests.m; sourceTree = ""; }; + 44D2ACD21B30B07700CE4A3A /* DiscoveryManager_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiscoveryManager_Private.h; sourceTree = ""; }; 44D88F7A1A71C4A8009D9608 /* ssdp_device_description_chromecast.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ssdp_device_description_chromecast.xml; sourceTree = ""; }; 44D88F7B1A71C4A8009D9608 /* ssdp_device_description_firetv.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ssdp_device_description_firetv.xml; sourceTree = ""; }; 44D88F7C1A71C4A8009D9608 /* ssdp_device_description_roku2.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ssdp_device_description_roku2.xml; sourceTree = ""; }; @@ -398,23 +516,14 @@ 44D8F7D11AB223BF00559FE3 /* ssdp_device_description_lg_speaker.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ssdp_device_description_lg_speaker.xml; sourceTree = ""; }; 44D8F7D81AB27B4800559FE3 /* NSInvocation+ObjectGetter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSInvocation+ObjectGetter.h"; sourceTree = ""; }; 44D8F7D91AB27B4800559FE3 /* NSInvocation+ObjectGetter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSInvocation+ObjectGetter.m"; sourceTree = ""; }; + 44D90AA81B06AA9E00A5CF2A /* AppStateChangeNotifierTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppStateChangeNotifierTests.m; sourceTree = ""; }; + 44D90AAA1B06B26C00A5CF2A /* AppStateChangeNotifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppStateChangeNotifier.h; sourceTree = ""; }; + 44D90AAB1B06B26C00A5CF2A /* AppStateChangeNotifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppStateChangeNotifier.m; sourceTree = ""; }; 44E98F5D1B1E63570043BC70 /* OCMock.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCMock.framework; sourceTree = ""; }; 44E98F5E1B1E63570043BC70 /* OHHTTPStubs.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OHHTTPStubs.framework; sourceTree = ""; }; - 44E98F611B1E650C0043BC70 /* OCMArg+ArgumentCaptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OCMArg+ArgumentCaptor.h"; sourceTree = ""; }; - 44E98F621B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OCMArg+ArgumentCaptor.m"; sourceTree = ""; }; - 44E98F651B1E67500043BC70 /* ConnectSDKIntegrationTests-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ConnectSDKIntegrationTests-Prefix.pch"; sourceTree = ""; }; - 44E98F661B1E67500043BC70 /* DLNAServiceIntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DLNAServiceIntegrationTests.m; sourceTree = ""; }; - 44E98F671B1E67500043BC70 /* EXPMatchers+matchRegex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+matchRegex.h"; sourceTree = ""; }; - 44E98F681B1E67500043BC70 /* EXPMatchers+matchRegex.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+matchRegex.m"; sourceTree = ""; }; - 44E98F6A1B1E67500043BC70 /* Expecta.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Expecta.framework; sourceTree = ""; }; - 44E98F6B1B1E67500043BC70 /* Specta.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Specta.framework; sourceTree = ""; }; - 44E98F771B1E694A0043BC70 /* ConnectSDKIntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConnectSDKIntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 44E98F8E1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OCMStubRecorder+SpectaAsync.h"; sourceTree = ""; }; - 44E98F8F1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OCMStubRecorder+SpectaAsync.m"; sourceTree = ""; }; - 44E98F921B1E72CA0043BC70 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 44E98F951B1E72D80043BC70 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 44E98F961B1E72D80043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "the-san-francisco-peaks-of-flagstaff-718x544.jpg"; sourceTree = ""; }; - 44E98F991B1E733D0043BC70 /* AirPlayServiceIntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AirPlayServiceIntegrationTests.m; sourceTree = ""; }; + 44E98F991B1E733D0043BC70 /* AirPlayServiceAcceptanceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AirPlayServiceAcceptanceTests.m; sourceTree = ""; }; 44EF618C1A12DF2D00CF344C /* ConnectSDKTests-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ConnectSDKTests-Prefix.pch"; sourceTree = ""; }; 44EF618E1A12E0A400CF344C /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; 44EF61971A12E1C800CF344C /* MediaAccessibility.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaAccessibility.framework; path = System/Library/Frameworks/MediaAccessibility.framework; sourceTree = SDKROOT; }; @@ -605,35 +714,65 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 44166C4D1B4203880052F9EC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 44166C641B420D960052F9EC /* GoogleCast.framework in Frameworks */, + 44166C601B420C2D0052F9EC /* OCMock.framework in Frameworks */, + 44166C631B420C860052F9EC /* MobileCoreServices.framework in Frameworks */, + 44166C611B420C4E0052F9EC /* SystemConfiguration.framework in Frameworks */, + 44166C561B4203880052F9EC /* libConnectSDK.a in Frameworks */, + 44166C681B420DB50052F9EC /* AdSupport.framework in Frameworks */, + 44166C661B420DA60052F9EC /* Bolts.framework in Frameworks */, + 44166C5F1B420C270052F9EC /* Specta.framework in Frameworks */, + 44166C671B420DAD0052F9EC /* libc++.dylib in Frameworks */, + 44166C5E1B420C270052F9EC /* Expecta.framework in Frameworks */, + 44166C691B420DC20052F9EC /* libicucore.dylib in Frameworks */, + 44166C651B420DA60052F9EC /* AmazonFling.framework in Frameworks */, + 44166C621B420C550052F9EC /* libz.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 448085771A12A7BE00E13938 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 44316F081AF2F9BF000FE655 /* AdSupport.framework in Frameworks */, + 44316F061AF2F9AD000FE655 /* libc++.dylib in Frameworks */, 44E98F601B1E63570043BC70 /* OHHTTPStubs.framework in Frameworks */, 44E98F5F1B1E63570043BC70 /* OCMock.framework in Frameworks */, 448085801A12A7BE00E13938 /* libConnectSDK.a in Frameworks */, + 44316F031AF2F77C000FE655 /* AmazonFling.framework in Frameworks */, 44EF61951A12E18D00CF344C /* GoogleCast.framework in Frameworks */, 44EF61981A12E1C800CF344C /* MediaAccessibility.framework in Frameworks */, 44EF618D1A12E02700CF344C /* MobileCoreServices.framework in Frameworks */, 44EF61921A12E10500CF344C /* SystemConfiguration.framework in Frameworks */, + 44316F041AF2F936000FE655 /* Bolts.framework in Frameworks */, 44EF619B1A12E23200CF344C /* libicucore.dylib in Frameworks */, + 44316F2B1AF3F17A000FE655 /* OHHTTPStubs.framework in Frameworks */, + 44316F291AF3F17A000FE655 /* OCMock.framework in Frameworks */, 44EF618F1A12E0A400CF344C /* libz.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 44E98F741B1E694A0043BC70 /* Frameworks */ = { + 449A36FF1B0FDC1C00E47DAC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 44E98F881B1E6CBE0043BC70 /* OCMock.framework in Frameworks */, - 44E98F8B1B1E6D000043BC70 /* MobileCoreServices.framework in Frameworks */, - 44E98F8A1B1E6CE30043BC70 /* libicucore.dylib in Frameworks */, - 44E98F8D1B1E6D7F0043BC70 /* GoogleCast.framework in Frameworks */, - 44E98F891B1E6CE10043BC70 /* libz.dylib in Frameworks */, - 44E98F7D1B1E694A0043BC70 /* libConnectSDK.a in Frameworks */, - 44E98F841B1E6A430043BC70 /* Specta.framework in Frameworks */, - 44E98F8C1B1E6D0E0043BC70 /* SystemConfiguration.framework in Frameworks */, - 44E98F831B1E6A430043BC70 /* Expecta.framework in Frameworks */, + 449A37161B0FE33100E47DAC /* libz.dylib in Frameworks */, + 449A37151B0FE32E00E47DAC /* libicucore.dylib in Frameworks */, + 449A37141B0FE30700E47DAC /* OCMock.framework in Frameworks */, + 449A37081B0FDC1C00E47DAC /* libConnectSDK.a in Frameworks */, + 449A37191B0FE37B00E47DAC /* libc++.dylib in Frameworks */, + 449A37131B0FE03400E47DAC /* Specta.framework in Frameworks */, + 447F63411B14F35900699843 /* GoogleCast.framework in Frameworks */, + 449A371A1B0FE38700E47DAC /* SystemConfiguration.framework in Frameworks */, + 449A371B1B0FE39700E47DAC /* AdSupport.framework in Frameworks */, + 449A37121B0FE03400E47DAC /* Expecta.framework in Frameworks */, + 449A371C1B0FE3A500E47DAC /* MobileCoreServices.framework in Frameworks */, + 449A37171B0FE36E00E47DAC /* Bolts.framework in Frameworks */, + 449A37181B0FE37100E47DAC /* AmazonFling.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -652,19 +791,103 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0FE5F0B21B33705A0009F27D /* Sessions */ = { + 44166C511B4203880052F9EC /* ConnectSDKAcceptanceTests */ = { + isa = PBXGroup; + children = ( + 44E98F991B1E733D0043BC70 /* AirPlayServiceAcceptanceTests.m */, + 447F63431B14FDC600699843 /* DLNAServiceAcceptanceTests.m */, + 44166C521B4203880052F9EC /* Supporting Files */, + ); + path = ConnectSDKAcceptanceTests; + sourceTree = ""; + }; + 44166C521B4203880052F9EC /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 44166C531B4203880052F9EC /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 44166C6D1B420E830052F9EC /* FireTVAcceptanceTests */ = { + isa = PBXGroup; + children = ( + 44B4C5B71B0E96E80024F229 /* FireTVAcceptanceTests.m */, + ); + path = FireTVAcceptanceTests; + sourceTree = ""; + }; + 44316EED1AF2EBF5000FE655 /* firetv */ = { + isa = PBXGroup; + children = ( + 448B28711B041A5600DFF18F /* Capabilities */, + 44316EFB1AF2F01F000FE655 /* Discovery */, + 44166C6D1B420E830052F9EC /* FireTVAcceptanceTests */, + 449A36FD1B0FD96200E47DAC /* FireTVIntegrationTests */, + 44316EEF1AF2EBF5000FE655 /* FireTVTests */, + 44316EF11AF2EBF5000FE655 /* Frameworks */, + 44AD91751AFA7F1000C23A71 /* FireTVService.h */, + 44AD91761AFA7F1000C23A71 /* FireTVService.m */, + ); + path = firetv; + sourceTree = ""; + }; + 44316EEF1AF2EBF5000FE655 /* FireTVTests */ = { + isa = PBXGroup; + children = ( + 448B286C1B041A3A00DFF18F /* Capabilities */, + 44316F001AF2F09B000FE655 /* Discovery */, + 44AD91731AF9A02300C23A71 /* FireTVServiceTests.m */, + 444287C81B055E0C00B1F875 /* XCTestCase+TaskTests.h */, + 444287C91B055E0C00B1F875 /* XCTestCase+TaskTests.m */, + ); + path = FireTVTests; + sourceTree = ""; + }; + 44316EF11AF2EBF5000FE655 /* Frameworks */ = { isa = PBXGroup; children = ( - 0FE5F0B31B3370870009F27D /* WebOSWebAppSessionTests.m */, + 44316EF31AF2EBF5000FE655 /* AmazonFling.framework */, + 44316EF41AF2EBF5000FE655 /* Bolts.framework */, + 44316F071AF2F9BF000FE655 /* AdSupport.framework */, + 44316F051AF2F9AD000FE655 /* libc++.dylib */, ); - name = Sessions; + path = Frameworks; + sourceTree = ""; + }; + 44316EFB1AF2F01F000FE655 /* Discovery */ = { + isa = PBXGroup; + children = ( + 44316EFC1AF2F04B000FE655 /* FireTVDiscoveryProvider.h */, + 449426401AF847D1006BAFF2 /* FireTVDiscoveryProvider_Private.h */, + 44316EFD1AF2F04B000FE655 /* FireTVDiscoveryProvider.m */, + ); + path = Discovery; + sourceTree = ""; + }; + 44316F001AF2F09B000FE655 /* Discovery */ = { + isa = PBXGroup; + children = ( + 44316F011AF2F09B000FE655 /* FireTVDiscoveryProviderTests.m */, + ); + path = Discovery; + sourceTree = ""; + }; + 44316F231AF3F17A000FE655 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 44316F251AF3F17A000FE655 /* OCMock.framework */, + 44316F271AF3F17A000FE655 /* OHHTTPStubs.framework */, + ); + path = Frameworks; sourceTree = ""; }; 4433F3DC1A421733008D9A04 /* Services */ = { isa = PBXGroup; children = ( - 0FE5F0B21B33705A0009F27D /* Sessions */, + 449CC2691AF945800064F2F7 /* Config */, 4433F3DD1A421733008D9A04 /* Helpers */, + 44A0E1A41B3B2F5C00ADF95F /* Sessions */, 4498D9911A65B69F008C0B72 /* DLNAServiceTests.m */, 44A5518E1AC1DF4C001AF783 /* NetcastTVServiceTests.m */, 44A551981AC338E0001AF783 /* WebOSTVServiceTests.m */, @@ -709,9 +932,9 @@ 4480857B1A12A7BE00E13938 /* ConnectSDKTests */ = { isa = PBXGroup; children = ( - 44E98F5C1B1E63570043BC70 /* Frameworks */, - 44E98F611B1E650C0043BC70 /* OCMArg+ArgumentCaptor.h */, - 44E98F621B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m */, + 44316F231AF3F17A000FE655 /* Frameworks */, + 448B28691B03DAEA00DFF18F /* OCMArg+ArgumentCaptor.h */, + 448B286A1B03DAEA00DFF18F /* OCMArg+ArgumentCaptor.m */, 448414F71AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.h */, 448414F81AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.m */, 44D8F7D81AB27B4800559FE3 /* NSInvocation+ObjectGetter.h */, @@ -726,14 +949,116 @@ path = ConnectSDKTests; sourceTree = ""; }; + 448B286C1B041A3A00DFF18F /* Capabilities */ = { + isa = PBXGroup; + children = ( + 448B286D1B041A3A00DFF18F /* FireTVMediaControlTests.m */, + 448B286E1B041A3A00DFF18F /* FireTVMediaPlayerTests.m */, + ); + path = Capabilities; + sourceTree = ""; + }; + 448B28711B041A5600DFF18F /* Capabilities */ = { + isa = PBXGroup; + children = ( + 44A499031B0AD0C1002C94E7 /* FireTVCapabilityMixin.h */, + 44A499041B0AD0C1002C94E7 /* FireTVCapabilityMixin.m */, + 448B28721B041A5600DFF18F /* FireTVMediaControl.h */, + 448B28731B041A5600DFF18F /* FireTVMediaControl.m */, + 448B28741B041A5600DFF18F /* FireTVMediaPlayer.h */, + 448B28751B041A5600DFF18F /* FireTVMediaPlayer.m */, + ); + path = Capabilities; + sourceTree = ""; + }; + 4494262E1AF82F28006BAFF2 /* BlockRunner */ = { + isa = PBXGroup; + children = ( + 4494262F1AF82F49006BAFF2 /* BlockRunner.h */, + 4494263C1AF83588006BAFF2 /* DispatchQueueBlockRunner.h */, + 4494263D1AF83588006BAFF2 /* DispatchQueueBlockRunner.m */, + 449426361AF830A1006BAFF2 /* SynchronousBlockRunner.h */, + 449426371AF830A1006BAFF2 /* SynchronousBlockRunner.m */, + ); + path = BlockRunner; + sourceTree = ""; + }; + 449426311AF82F75006BAFF2 /* BlockRunner */ = { + isa = PBXGroup; + children = ( + 449426321AF82F8E006BAFF2 /* BlockRunnerTests.m */, + 449426341AF83055006BAFF2 /* SynchronousBlockRunnerTests.m */, + 4494263A1AF8353A006BAFF2 /* DispatchQueueBlockRunnerTests.m */, + ); + path = BlockRunner; + sourceTree = ""; + }; 4498D98E1A65A1B7008C0B72 /* Helpers */ = { isa = PBXGroup; children = ( + 449426311AF82F75006BAFF2 /* BlockRunner */, + 44D90AA81B06AA9E00A5CF2A /* AppStateChangeNotifierTests.m */, 4498D98F1A65A1D7008C0B72 /* NSDictionary+KeyPredicateSearchTests.m */, + 441C9EFE1B3DD8C500F912D5 /* SubscriptionDeduplicatorTests.m */, ); path = Helpers; sourceTree = ""; }; + 449A36FD1B0FD96200E47DAC /* FireTVIntegrationTests */ = { + isa = PBXGroup; + children = ( + 146A7D1A1B2896C300260441 /* FireTVIntegrationTests.m */, + ); + path = FireTVIntegrationTests; + sourceTree = ""; + }; + 449A37031B0FDC1C00E47DAC /* ConnectSDKIntegrationTests */ = { + isa = PBXGroup; + children = ( + 449A370F1B0FE03400E47DAC /* Frameworks */, + 441FE0ED1B1528D0006C47CE /* EXPMatchers+matchRegex.h */, + 441FE0EE1B1528D0006C47CE /* EXPMatchers+matchRegex.m */, + 44B11F501B16827C00F0156C /* OCMStubRecorder+SpectaAsync.h */, + 44B11F511B16827C00F0156C /* OCMStubRecorder+SpectaAsync.m */, + 447F63451B15000800699843 /* ConnectSDKIntegrationTests-Prefix.pch */, + 449A37041B0FDC1C00E47DAC /* Supporting Files */, + ); + path = ConnectSDKIntegrationTests; + sourceTree = ""; + }; + 449A37041B0FDC1C00E47DAC /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 449A37051B0FDC1C00E47DAC /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 449A370F1B0FE03400E47DAC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 449A37101B0FE03400E47DAC /* Expecta.framework */, + 449A37111B0FE03400E47DAC /* Specta.framework */, + ); + path = Frameworks; + sourceTree = ""; + }; + 449CC2691AF945800064F2F7 /* Config */ = { + isa = PBXGroup; + children = ( + 449CC26A1AF9458E0064F2F7 /* ServiceDescriptionTests.m */, + ); + path = Config; + sourceTree = ""; + }; + 44A0E1A41B3B2F5C00ADF95F /* Sessions */ = { + isa = PBXGroup; + children = ( + 44A0E1A51B3B2F5C00ADF95F /* WebOSWebAppSessionTests.m */, + ); + path = Sessions; + sourceTree = ""; + }; 44BCC3F31AB77F7D001BCDAA /* xswi */ = { isa = PBXGroup; children = ( @@ -790,48 +1115,6 @@ path = webos; sourceTree = ""; }; - 44E98F5C1B1E63570043BC70 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 44E98F5D1B1E63570043BC70 /* OCMock.framework */, - 44E98F5E1B1E63570043BC70 /* OHHTTPStubs.framework */, - ); - path = Frameworks; - sourceTree = ""; - }; - 44E98F641B1E67500043BC70 /* ConnectSDKIntegrationTests */ = { - isa = PBXGroup; - children = ( - 44E98F691B1E67500043BC70 /* Frameworks */, - 44E98F671B1E67500043BC70 /* EXPMatchers+matchRegex.h */, - 44E98F681B1E67500043BC70 /* EXPMatchers+matchRegex.m */, - 44E98F8E1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.h */, - 44E98F8F1B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m */, - 44E98F991B1E733D0043BC70 /* AirPlayServiceIntegrationTests.m */, - 44E98F661B1E67500043BC70 /* DLNAServiceIntegrationTests.m */, - 44E98F651B1E67500043BC70 /* ConnectSDKIntegrationTests-Prefix.pch */, - 44E98F911B1E72CA0043BC70 /* SupportingFiles */, - ); - path = ConnectSDKIntegrationTests; - sourceTree = ""; - }; - 44E98F691B1E67500043BC70 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 44E98F6A1B1E67500043BC70 /* Expecta.framework */, - 44E98F6B1B1E67500043BC70 /* Specta.framework */, - ); - path = Frameworks; - sourceTree = ""; - }; - 44E98F911B1E72CA0043BC70 /* SupportingFiles */ = { - isa = PBXGroup; - children = ( - 44E98F921B1E72CA0043BC70 /* Info.plist */, - ); - path = SupportingFiles; - sourceTree = ""; - }; 44E98F941B1E72D80043BC70 /* SupportingFiles */ = { isa = PBXGroup; children = ( @@ -845,6 +1128,7 @@ isa = PBXGroup; children = ( 44EF61A21A12FC5000CF344C /* Providers */, + 44C390111B34DCAE00723388 /* DiscoveryManagerTests.m */, ); path = Discovery; sourceTree = ""; @@ -881,7 +1165,8 @@ EA5FB7B9199AEC550057B4B4 /* Frameworks */, EA5FB802199AEC550057B4B4 /* Helpers */, EA5FB816199AEC550057B4B4 /* Services */, - 44E98F641B1E67500043BC70 /* ConnectSDKIntegrationTests */, + 44166C511B4203880052F9EC /* ConnectSDKAcceptanceTests */, + 449A37031B0FDC1C00E47DAC /* ConnectSDKIntegrationTests */, 4480857B1A12A7BE00E13938 /* ConnectSDKTests */, ); path = core; @@ -909,6 +1194,7 @@ EA5FB7AA199AEC550057B4B4 /* CapabilityFilter.h */, EA5FB7AB199AEC550057B4B4 /* CapabilityFilter.m */, EA5FB7AC199AEC550057B4B4 /* DiscoveryManager.h */, + 44D2ACD21B30B07700CE4A3A /* DiscoveryManager_Private.h */, EA5FB7AD199AEC550057B4B4 /* DiscoveryManager.m */, EA5FB7AE199AEC550057B4B4 /* DiscoveryManagerDelegate.h */, EA5FB7AF199AEC550057B4B4 /* DiscoveryProvider.h */, @@ -1087,6 +1373,7 @@ EA5FB802199AEC550057B4B4 /* Helpers */ = { isa = PBXGroup; children = ( + 4494262E1AF82F28006BAFF2 /* BlockRunner */, EA5FB803199AEC550057B4B4 /* AppInfo.h */, EA5FB804199AEC550057B4B4 /* AppInfo.m */, EA5FB805199AEC550057B4B4 /* ChannelInfo.h */, @@ -1117,6 +1404,10 @@ 44C2CC9F1AB7A33500B20E46 /* NSString+Common.h */, 44C2CCA01AB7A33500B20E46 /* NSString+Common.m */, 44A5519D1AC36672001AF783 /* CommonMacros.h */, + 44D90AAA1B06B26C00A5CF2A /* AppStateChangeNotifier.h */, + 44D90AAB1B06B26C00A5CF2A /* AppStateChangeNotifier.m */, + 441C9ED31B3DBCB200F912D5 /* SubscriptionDeduplicator.h */, + 441C9ED41B3DBCB200F912D5 /* SubscriptionDeduplicator.m */, ); path = Helpers; sourceTree = ""; @@ -1245,6 +1536,7 @@ EA5FB859199AEC550057B4B4 /* modules */ = { isa = PBXGroup; children = ( + 44316EED1AF2EBF5000FE655 /* firetv */, EA5FB85A199AEC550057B4B4 /* google-cast */, ); path = modules; @@ -1280,7 +1572,8 @@ children = ( EA61EB1018FE485B00D75696 /* libConnectSDK.a */, 4480857A1A12A7BE00E13938 /* ConnectSDKTests.xctest */, - 44E98F771B1E694A0043BC70 /* ConnectSDKIntegrationTests.xctest */, + 449A37021B0FDC1C00E47DAC /* ConnectSDKIntegrationTests.xctest */, + 44166C501B4203880052F9EC /* ConnectSDKAcceptanceTests.xctest */, ); name = Products; sourceTree = ""; @@ -1310,6 +1603,7 @@ files = ( EA5FB8D9199AEC560057B4B4 /* ToastControl.h in Headers */, 44C2CC941AB7948300B20E46 /* XMLWriter+ConvenienceMethods.h in Headers */, + 44316EFE1AF2F04B000FE655 /* FireTVDiscoveryProvider.h in Headers */, EA5FB8A9199AEC560057B4B4 /* GCDWebServerMultiPartFormRequest.h in Headers */, EA5FB891199AEC560057B4B4 /* CTASIHTTPRequestDelegate.h in Headers */, EA5FB8B9199AEC560057B4B4 /* CTXMLReader.h in Headers */, @@ -1319,6 +1613,7 @@ EA5FB8DB199AEC560057B4B4 /* VolumeControl.h in Headers */, EA5FB872199AEC550057B4B4 /* DefaultConnectableDeviceStore.h in Headers */, EA5FB8D5199AEC560057B4B4 /* MediaPlayer.h in Headers */, + 449426381AF830A1006BAFF2 /* SynchronousBlockRunner.h in Headers */, EA5FB907199AEC570057B4B4 /* WebOSWebAppSession.h in Headers */, EA5FB892199AEC560057B4B4 /* CTASIInputStream.h in Headers */, EA5FB8DC199AEC560057B4B4 /* WebAppLauncher.h in Headers */, @@ -1336,6 +1631,7 @@ EA5FB89F199AEC560057B4B4 /* GCDWebServerHTTPStatusCodes.h in Headers */, EA5FB8E4199AEC560057B4B4 /* NetcastTVServiceConfig.h in Headers */, EA5FB906199AEC570057B4B4 /* WebAppSessionDelegate.h in Headers */, + 44D90AAC1B06B26C00A5CF2A /* AppStateChangeNotifier.h in Headers */, EA5FB8DD199AEC560057B4B4 /* ServiceAsyncCommand.h in Headers */, EA5FB90B199AEC570057B4B4 /* CastDiscoveryProvider.h in Headers */, 0F446CC91A6D924D000BB1C0 /* MediaLaunchObject.h in Headers */, @@ -1345,6 +1641,7 @@ EA5FB8D1199AEC560057B4B4 /* ExternalInputControl.h in Headers */, EA5FB8AB199AEC560057B4B4 /* GCDWebServerURLEncodedFormRequest.h in Headers */, EA5FB911199AEC570057B4B4 /* CastWebAppSession.h in Headers */, + 441C9ED51B3DBCB200F912D5 /* SubscriptionDeduplicator.h in Headers */, EA5FB90F199AEC570057B4B4 /* CastServiceChannel.h in Headers */, EA5FB8CC199AEC560057B4B4 /* TextInputStatusInfo.h in Headers */, EA5FB88C199AEC560057B4B4 /* CTASIFormDataRequest.h in Headers */, @@ -1370,8 +1667,8 @@ EA5FB8D2199AEC560057B4B4 /* KeyControl.h in Headers */, EA5FB8A0199AEC560057B4B4 /* GCDWebServerPrivate.h in Headers */, EA5FB8F6199AEC570057B4B4 /* AirPlayServiceMirrored.h in Headers */, + 448B28781B041A5600DFF18F /* FireTVMediaPlayer.h in Headers */, EA5FB883199AEC550057B4B4 /* CTASIAuthenticationDialog.h in Headers */, - 44C3900F1B34A7B500723388 /* WebOSWebAppSession_Private.h in Headers */, EA5FB8A3199AEC560057B4B4 /* GCDWebServerResponse.h in Headers */, EA5FB86E199AEC550057B4B4 /* ConnectableDevice.h in Headers */, EA5FB87F199AEC550057B4B4 /* SSDPDiscoveryProvider.h in Headers */, @@ -1383,6 +1680,7 @@ EA5FB894199AEC560057B4B4 /* CTASINetworkQueue.h in Headers */, EA5FB881199AEC550057B4B4 /* ZeroConfDiscoveryProvider.h in Headers */, EA5FB877199AEC550057B4B4 /* CapabilityFilter.h in Headers */, + 44A499051B0AD0C1002C94E7 /* FireTVCapabilityMixin.h in Headers */, EA5FB876199AEC550057B4B4 /* DevicePickerDelegate.h in Headers */, EA5FB879199AEC550057B4B4 /* DiscoveryManager.h in Headers */, EA5FB888199AEC560057B4B4 /* CTASIDataDecompressor.h in Headers */, @@ -1392,6 +1690,7 @@ EA5FB8EB199AEC570057B4B4 /* WebOSTVServiceConfig.h in Headers */, EA5FB8D0199AEC560057B4B4 /* Capability.h in Headers */, EA5FB8EF199AEC570057B4B4 /* DeviceServiceDelegate.h in Headers */, + 4494263E1AF83588006BAFF2 /* DispatchQueueBlockRunner.h in Headers */, EA5FB87C199AEC550057B4B4 /* DiscoveryProvider.h in Headers */, EA5FB8C7199AEC560057B4B4 /* JSONObjectCoding.h in Headers */, EA5FB8F8199AEC570057B4B4 /* WebOSTVServiceMouse.h in Headers */, @@ -1407,6 +1706,8 @@ EA5FB89D199AEC560057B4B4 /* GCDWebServerFunctions.h in Headers */, EA5FB8D8199AEC560057B4B4 /* TextInputControl.h in Headers */, EA5FB8C8199AEC560057B4B4 /* ProgramInfo.h in Headers */, + 449426301AF82F49006BAFF2 /* BlockRunner.h in Headers */, + 44AD91771AFA7F1000C23A71 /* FireTVService.h in Headers */, EA5FB87B199AEC550057B4B4 /* DiscoveryManagerDelegate.h in Headers */, EA5FB8A7199AEC560057B4B4 /* GCDWebServerFileRequest.h in Headers */, EA5FB8AF199AEC560057B4B4 /* GCDWebServerErrorResponse.h in Headers */, @@ -1418,6 +1719,7 @@ EA5F82F4199BDCD300B7302B /* ConnectSDK.h in Headers */, EA5F82F0199BDA2100B7302B /* ConnectSDKDefaultPlatforms.h in Headers */, BB9F726F85973936620CDADD /* MediaInfo.h in Headers */, + 448B28761B041A5600DFF18F /* FireTVMediaControl.h in Headers */, BB9F7AD33329FD4AC66C2D12 /* ImageInfo.h in Headers */, BB9F712900733DE480F64D8E /* DLNAHTTPServer.h in Headers */, ); @@ -1426,6 +1728,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + 44166C4F1B4203880052F9EC /* ConnectSDKAcceptanceTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 44166C5B1B4203880052F9EC /* Build configuration list for PBXNativeTarget "ConnectSDKAcceptanceTests" */; + buildPhases = ( + 44166C4C1B4203880052F9EC /* Sources */, + 44166C4D1B4203880052F9EC /* Frameworks */, + 44166C4E1B4203880052F9EC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 44166C581B4203880052F9EC /* PBXTargetDependency */, + ); + name = ConnectSDKAcceptanceTests; + productName = ConnectSDKAcceptanceTests; + productReference = 44166C501B4203880052F9EC /* ConnectSDKAcceptanceTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; 448085791A12A7BE00E13938 /* ConnectSDKTests */ = { isa = PBXNativeTarget; buildConfigurationList = 448085851A12A7BE00E13938 /* Build configuration list for PBXNativeTarget "ConnectSDKTests" */; @@ -1444,22 +1764,22 @@ productReference = 4480857A1A12A7BE00E13938 /* ConnectSDKTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 44E98F761B1E694A0043BC70 /* ConnectSDKIntegrationTests */ = { + 449A37011B0FDC1C00E47DAC /* ConnectSDKIntegrationTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 44E98F801B1E694A0043BC70 /* Build configuration list for PBXNativeTarget "ConnectSDKIntegrationTests" */; + buildConfigurationList = 449A370B1B0FDC1C00E47DAC /* Build configuration list for PBXNativeTarget "ConnectSDKIntegrationTests" */; buildPhases = ( - 44E98F731B1E694A0043BC70 /* Sources */, - 44E98F741B1E694A0043BC70 /* Frameworks */, - 44E98F751B1E694A0043BC70 /* Resources */, + 449A36FE1B0FDC1C00E47DAC /* Sources */, + 449A36FF1B0FDC1C00E47DAC /* Frameworks */, + 449A37001B0FDC1C00E47DAC /* Resources */, ); buildRules = ( ); dependencies = ( - 44E98F7F1B1E694A0043BC70 /* PBXTargetDependency */, + 449A370A1B0FDC1C00E47DAC /* PBXTargetDependency */, ); name = ConnectSDKIntegrationTests; productName = ConnectSDKIntegrationTests; - productReference = 44E98F771B1E694A0043BC70 /* ConnectSDKIntegrationTests.xctest */; + productReference = 449A37021B0FDC1C00E47DAC /* ConnectSDKIntegrationTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; EA61EB0F18FE485B00D75696 /* ConnectSDK */ = { @@ -1490,11 +1810,14 @@ LastUpgradeCheck = 0510; ORGANIZATIONNAME = "LG Electronics"; TargetAttributes = { + 44166C4F1B4203880052F9EC = { + CreatedOnToolsVersion = 6.3.2; + }; 448085791A12A7BE00E13938 = { CreatedOnToolsVersion = 6.1; }; - 44E98F761B1E694A0043BC70 = { - CreatedOnToolsVersion = 6.3.2; + 449A37011B0FDC1C00E47DAC = { + CreatedOnToolsVersion = 6.3.1; }; }; }; @@ -1513,12 +1836,21 @@ EA61EB0F18FE485B00D75696 /* ConnectSDK */, EECAED52193F611900D31F61 /* Framework */, 448085791A12A7BE00E13938 /* ConnectSDKTests */, - 44E98F761B1E694A0043BC70 /* ConnectSDKIntegrationTests */, + 449A37011B0FDC1C00E47DAC /* ConnectSDKIntegrationTests */, + 44166C4F1B4203880052F9EC /* ConnectSDKAcceptanceTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 44166C4E1B4203880052F9EC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 44166CB31B4AFE060052F9EC /* the-san-francisco-peaks-of-flagstaff-718x544.jpg in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 448085781A12A7BE00E13938 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -1558,11 +1890,10 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 44E98F751B1E694A0043BC70 /* Resources */ = { + 449A37001B0FDC1C00E47DAC /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 44E98F981B1E72E00043BC70 /* the-san-francisco-peaks-of-flagstaff-718x544.jpg in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1598,38 +1929,62 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 44166C4C1B4203880052F9EC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 44166C6B1B420DF60052F9EC /* OCMStubRecorder+SpectaAsync.m in Sources */, + 44166C5C1B420B6A0052F9EC /* AirPlayServiceAcceptanceTests.m in Sources */, + 44166C6E1B420ED80052F9EC /* FireTVAcceptanceTests.m in Sources */, + 44166C6A1B420DE40052F9EC /* OCMArg+ArgumentCaptor.m in Sources */, + 44166C5D1B420B6A0052F9EC /* DLNAServiceAcceptanceTests.m in Sources */, + 44166C6C1B420E1A0052F9EC /* EXPMatchers+matchRegex.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 448085761A12A7BE00E13938 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 44C390121B34DCAE00723388 /* DiscoveryManagerTests.m in Sources */, 44EF61A41A12FC8800CF344C /* SSDPDiscoveryProviderTests.m in Sources */, + 449426351AF83055006BAFF2 /* SynchronousBlockRunnerTests.m in Sources */, 4433F3DF1A421750008D9A04 /* AirPlayServiceHTTPKeepAliveTests.m in Sources */, 44A551991AC338E0001AF783 /* WebOSTVServiceTests.m in Sources */, + 448B28701B041A3B00DFF18F /* FireTVMediaPlayerTests.m in Sources */, + 449426331AF82F8E006BAFF2 /* BlockRunnerTests.m in Sources */, + 4494263B1AF8353A006BAFF2 /* DispatchQueueBlockRunnerTests.m in Sources */, 44D8F7DA1AB27B4800559FE3 /* NSInvocation+ObjectGetter.m in Sources */, + 449CC26B1AF9458E0064F2F7 /* ServiceDescriptionTests.m in Sources */, + 444287CA1B055E0C00B1F875 /* XCTestCase+TaskTests.m in Sources */, + 448B286F1B041A3A00DFF18F /* FireTVMediaControlTests.m in Sources */, + 448B286B1B03DAEA00DFF18F /* OCMArg+ArgumentCaptor.m in Sources */, 44291C521A68B4C000280E5C /* SSDPDiscoveryProvider_FilteringTests.m in Sources */, 4480857F1A12A7BE00E13938 /* ConnectSDKDefaultPlatformsTests.m in Sources */, + 44316F021AF2F09B000FE655 /* FireTVDiscoveryProviderTests.m in Sources */, 4498D9A91A66F027008C0B72 /* DLNAHTTPServerTests.m in Sources */, 448F36C51A1BD64200536649 /* ZeroConfDiscoveryProviderTests.m in Sources */, + 441C9EFF1B3DD8C500F912D5 /* SubscriptionDeduplicatorTests.m in Sources */, 4498D9921A65B69F008C0B72 /* DLNAServiceTests.m in Sources */, 44758BBB1AE6C06200EC43A6 /* AirPlayServiceHTTPTests.m in Sources */, - 0FE5F0B41B3370870009F27D /* WebOSWebAppSessionTests.m in Sources */, + 44AD91741AF9A02300C23A71 /* FireTVServiceTests.m in Sources */, 440A031D1A854EDE0007E3D3 /* WebOSTVServiceSocketClientTests.m in Sources */, 448414F91AEB27F400124EE9 /* OCMStubRecorder+XCTestExpectation.m in Sources */, + 44D90AA91B06AA9E00A5CF2A /* AppStateChangeNotifierTests.m in Sources */, 44A5518F1AC1DF4C001AF783 /* NetcastTVServiceTests.m in Sources */, - 44E98F631B1E650C0043BC70 /* OCMArg+ArgumentCaptor.m in Sources */, 4498D9901A65A1D7008C0B72 /* NSDictionary+KeyPredicateSearchTests.m in Sources */, + 44A0E1A71B3B31DC00ADF95F /* WebOSWebAppSessionTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 44E98F731B1E694A0043BC70 /* Sources */ = { + 449A36FE1B0FDC1C00E47DAC /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 44E98F901B1E705C0043BC70 /* OCMStubRecorder+SpectaAsync.m in Sources */, - 44E98F851B1E6A4D0043BC70 /* EXPMatchers+matchRegex.m in Sources */, - 44E98F9A1B1E733D0043BC70 /* AirPlayServiceIntegrationTests.m in Sources */, - 44E98F9B1B1E738F0043BC70 /* OCMArg+ArgumentCaptor.m in Sources */, - 44E98F861B1E6A500043BC70 /* DLNAServiceIntegrationTests.m in Sources */, + 441FE0EF1B1528D0006C47CE /* EXPMatchers+matchRegex.m in Sources */, + 44B11F521B16827C00F0156C /* OCMStubRecorder+SpectaAsync.m in Sources */, + 44CF0E1A1B16ACD800B80FEF /* OCMArg+ArgumentCaptor.m in Sources */, + 146A7D1B1B2896C300260441 /* FireTVIntegrationTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1643,6 +1998,7 @@ EA5FB8F1199AEC570057B4B4 /* DIALService.m in Sources */, EA5FB887199AEC560057B4B4 /* CTASIDataCompressor.m in Sources */, EA5FB8AC199AEC560057B4B4 /* GCDWebServerURLEncodedFormRequest.m in Sources */, + 448B28771B041A5600DFF18F /* FireTVMediaControl.m in Sources */, EA5FB8CB199AEC560057B4B4 /* SSDPSocketListener.m in Sources */, EA5FB8DE199AEC560057B4B4 /* ServiceAsyncCommand.m in Sources */, EA5FB8B2199AEC560057B4B4 /* GCDWebServerFileResponse.m in Sources */, @@ -1650,14 +2006,17 @@ EA5FB8C4199AEC560057B4B4 /* DeviceServiceReachability.m in Sources */, 0F446CCA1A6D924D000BB1C0 /* MediaLaunchObject.m in Sources */, EA5FB873199AEC550057B4B4 /* DefaultConnectableDeviceStore.m in Sources */, + 44D90AAD1B06B26C00A5CF2A /* AppStateChangeNotifier.m in Sources */, EA5FB8E3199AEC560057B4B4 /* ServiceSubscription.m in Sources */, EA5FB8F9199AEC570057B4B4 /* WebOSTVServiceMouse.m in Sources */, EA5FB88B199AEC560057B4B4 /* CTASIDownloadCache.m in Sources */, EA5FB878199AEC550057B4B4 /* CapabilityFilter.m in Sources */, EA5FB8F3199AEC570057B4B4 /* DLNAService.m in Sources */, EA5FB8B8199AEC560057B4B4 /* LGSRWebSocket.m in Sources */, + 44AD91781AFA7F1000C23A71 /* FireTVService.m in Sources */, EA5FB8EC199AEC570057B4B4 /* WebOSTVServiceConfig.m in Sources */, EA5FB8B6199AEC560057B4B4 /* CTGuid.m in Sources */, + 4494263F1AF83588006BAFF2 /* DispatchQueueBlockRunner.m in Sources */, EA5FB8FB199AEC570057B4B4 /* WebOSTVServiceSocketClient.m in Sources */, EA5FB8C9199AEC560057B4B4 /* ProgramInfo.m in Sources */, EA5FB8C6199AEC560057B4B4 /* ExternalInputInfo.m in Sources */, @@ -1686,6 +2045,7 @@ EA5FB893199AEC560057B4B4 /* CTASIInputStream.m in Sources */, EA5FB8B4199AEC560057B4B4 /* GCDWebServerStreamedResponse.m in Sources */, EA5FB90E199AEC570057B4B4 /* CastService.m in Sources */, + 44316EFF1AF2F04B000FE655 /* FireTVDiscoveryProvider.m in Sources */, EA5FB8F7199AEC570057B4B4 /* AirPlayServiceMirrored.m in Sources */, EA5FB86F199AEC550057B4B4 /* ConnectableDevice.m in Sources */, EA5FB8E7199AEC560057B4B4 /* ServiceConfig.m in Sources */, @@ -1696,15 +2056,19 @@ EA5FB8BC199AEC560057B4B4 /* AppInfo.m in Sources */, EA5FB8A4199AEC560057B4B4 /* GCDWebServerResponse.m in Sources */, 44BCC3F71AB77F7D001BCDAA /* XMLWriter.m in Sources */, + 44A499061B0AD0C1002C94E7 /* FireTVCapabilityMixin.m in Sources */, EA5FB89A199AEC560057B4B4 /* GCDWebServer.m in Sources */, EA5FB8FD199AEC570057B4B4 /* NetcastTVService.m in Sources */, EA5FB901199AEC570057B4B4 /* AirPlayWebAppSession.m in Sources */, 4498D98D1A659F43008C0B72 /* NSDictionary+KeyPredicateSearch.m in Sources */, EA5FB882199AEC550057B4B4 /* ZeroConfDiscoveryProvider.m in Sources */, 44C2CC951AB7948300B20E46 /* XMLWriter+ConvenienceMethods.m in Sources */, + 448B28791B041A5600DFF18F /* FireTVMediaPlayer.m in Sources */, EA5FB8F5199AEC570057B4B4 /* AirPlayServiceHTTP.m in Sources */, + 449426391AF830A1006BAFF2 /* SynchronousBlockRunner.m in Sources */, EA5FB8E5199AEC560057B4B4 /* NetcastTVServiceConfig.m in Sources */, EA5FB88F199AEC560057B4B4 /* CTASIHTTPRequest.m in Sources */, + 441C9ED61B3DBCB200F912D5 /* SubscriptionDeduplicator.m in Sources */, EA5FB89C199AEC560057B4B4 /* GCDWebServerConnection.m in Sources */, EA5FB8A2199AEC560057B4B4 /* GCDWebServerRequest.m in Sources */, EA5FB889199AEC560057B4B4 /* CTASIDataDecompressor.m in Sources */, @@ -1720,15 +2084,20 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + 44166C581B4203880052F9EC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = EA61EB0F18FE485B00D75696 /* ConnectSDK */; + targetProxy = 44166C571B4203880052F9EC /* PBXContainerItemProxy */; + }; 448085821A12A7BE00E13938 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = EA61EB0F18FE485B00D75696 /* ConnectSDK */; targetProxy = 448085811A12A7BE00E13938 /* PBXContainerItemProxy */; }; - 44E98F7F1B1E694A0043BC70 /* PBXTargetDependency */ = { + 449A370A1B0FDC1C00E47DAC /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = EA61EB0F18FE485B00D75696 /* ConnectSDK */; - targetProxy = 44E98F7E1B1E694A0043BC70 /* PBXContainerItemProxy */; + targetProxy = 449A37091B0FDC1C00E47DAC /* PBXContainerItemProxy */; }; EECAED57193F612100D31F61 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -1749,6 +2118,73 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ + 44166C591B4203880052F9EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + "$(PROJECT_DIR)/core/ConnectSDKTests/Frameworks", + "$(PROJECT_DIR)/core/ConnectSDKIntegrationTests/Frameworks", + "$(PROJECT_DIR)/modules/google-cast", + "$(PROJECT_DIR)/modules/firetv/Frameworks", + ); + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "core/ConnectSDKIntegrationTests/ConnectSDKIntegrationTests-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = core/ConnectSDKAcceptanceTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-ObjC", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 44166C5A1B4203880052F9EC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + "$(PROJECT_DIR)/core/ConnectSDKTests/Frameworks", + "$(PROJECT_DIR)/core/ConnectSDKIntegrationTests/Frameworks", + "$(PROJECT_DIR)/modules/google-cast", + "$(PROJECT_DIR)/modules/firetv/Frameworks", + ); + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "core/ConnectSDKIntegrationTests/ConnectSDKIntegrationTests-Prefix.pch"; + INFOPLIST_FILE = core/ConnectSDKAcceptanceTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-ObjC", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; 448085831A12A7BE00E13938 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1759,6 +2195,7 @@ "$(SDKROOT)/Developer/Library/Frameworks", "$(inherited)", "$(PROJECT_DIR)/modules/google-cast", + "$(PROJECT_DIR)/modules/firetv/Frameworks", "$(PROJECT_DIR)/core/ConnectSDKTests/Frameworks", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -1791,6 +2228,7 @@ "$(SDKROOT)/Developer/Library/Frameworks", "$(inherited)", "$(PROJECT_DIR)/modules/google-cast", + "$(PROJECT_DIR)/modules/firetv/Frameworks", "$(PROJECT_DIR)/core/ConnectSDKTests/Frameworks", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -1809,7 +2247,7 @@ }; name = Release; }; - 44E98F811B1E694A0043BC70 /* Debug */ = { + 449A370C1B0FDC1C00E47DAC /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CLANG_WARN_UNREACHABLE_CODE = YES; @@ -1821,17 +2259,16 @@ "$(inherited)", "$(PROJECT_DIR)/core/ConnectSDKIntegrationTests/Frameworks", "$(PROJECT_DIR)/core/ConnectSDKTests/Frameworks", + "$(PROJECT_DIR)/modules/firetv/Frameworks", "$(PROJECT_DIR)/modules/google-cast", ); - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "core/ConnectSDKIntegrationTests/ConnectSDKIntegrationTests-Prefix.pch"; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); - INFOPLIST_FILE = core/ConnectSDKIntegrationTests/SupportingFiles/Info.plist; + INFOPLIST_FILE = core/ConnectSDKIntegrationTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; @@ -1845,7 +2282,7 @@ }; name = Debug; }; - 44E98F821B1E694A0043BC70 /* Release */ = { + 449A370D1B0FDC1C00E47DAC /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CLANG_WARN_UNREACHABLE_CODE = YES; @@ -1858,13 +2295,12 @@ "$(inherited)", "$(PROJECT_DIR)/core/ConnectSDKIntegrationTests/Frameworks", "$(PROJECT_DIR)/core/ConnectSDKTests/Frameworks", + "$(PROJECT_DIR)/modules/firetv/Frameworks", "$(PROJECT_DIR)/modules/google-cast", ); - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "core/ConnectSDKIntegrationTests/ConnectSDKIntegrationTests-Prefix.pch"; - INFOPLIST_FILE = core/ConnectSDKIntegrationTests/SupportingFiles/Info.plist; + INFOPLIST_FILE = core/ConnectSDKIntegrationTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; @@ -1959,8 +2395,7 @@ "$(inherited)", "$(PROJECT_DIR)/modules/**", "$(PROJECT_DIR)/modules/google-cast", - "$(PROJECT_DIR)/core/Frameworks/OCMock", - "$(PROJECT_DIR)/core/Frameworks/OHHTTPStubs", + "$(PROJECT_DIR)/modules/firetv/Frameworks", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "core/ConnectSDK-Prefix.pch"; @@ -1985,8 +2420,7 @@ "$(inherited)", "$(PROJECT_DIR)/modules/**", "$(PROJECT_DIR)/modules/google-cast", - "$(PROJECT_DIR)/core/Frameworks/OCMock", - "$(PROJECT_DIR)/core/Frameworks/OHHTTPStubs", + "$(PROJECT_DIR)/modules/firetv/Frameworks", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "core/ConnectSDK-Prefix.pch"; @@ -2021,6 +2455,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 44166C5B1B4203880052F9EC /* Build configuration list for PBXNativeTarget "ConnectSDKAcceptanceTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 44166C591B4203880052F9EC /* Debug */, + 44166C5A1B4203880052F9EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 448085851A12A7BE00E13938 /* Build configuration list for PBXNativeTarget "ConnectSDKTests" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -2030,11 +2473,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 44E98F801B1E694A0043BC70 /* Build configuration list for PBXNativeTarget "ConnectSDKIntegrationTests" */ = { + 449A370B1B0FDC1C00E47DAC /* Build configuration list for PBXNativeTarget "ConnectSDKIntegrationTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 44E98F811B1E694A0043BC70 /* Debug */, - 44E98F821B1E694A0043BC70 /* Release */, + 449A370C1B0FDC1C00E47DAC /* Debug */, + 449A370D1B0FDC1C00E47DAC /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDK.xcscheme b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDK.xcscheme index 793f81e0..9ff11038 100644 --- a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDK.xcscheme +++ b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDK.xcscheme @@ -42,12 +42,26 @@ buildForAnalyzing = "YES"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKIntegrationTests.xcscheme b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKIntegrationTests.xcscheme index da236142..29c8b87f 100644 --- a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKIntegrationTests.xcscheme +++ b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKIntegrationTests.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -34,6 +34,20 @@ ReferencedContainer = "container:ConnectSDK.xcodeproj"> + + + + @@ -56,7 +70,7 @@ @@ -75,7 +89,7 @@ @@ -95,6 +109,15 @@ useCustomWorkingDirectory = "NO" buildConfiguration = "Release" debugDocumentVersioning = "YES"> + + + + diff --git a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKTests.xcscheme b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKTests.xcscheme index 380afc93..b78b23d0 100644 --- a/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKTests.xcscheme +++ b/ConnectSDK.xcodeproj/xcshareddata/xcschemes/ConnectSDKTests.xcscheme @@ -28,12 +28,26 @@ buildForAnalyzing = "NO"> + + + + + + + + diff --git a/ConnectSDKDefaultPlatforms.h b/ConnectSDKDefaultPlatforms.h index 2404bbb6..cdf1b4fc 100644 --- a/ConnectSDKDefaultPlatforms.h +++ b/ConnectSDKDefaultPlatforms.h @@ -20,14 +20,15 @@ #ifndef kConnectSDKDefaultPlatforms -#define kConnectSDKDefaultPlatforms @{ \ +#define kConnectSDKDefaultPlatforms (@{ \ @"AirPlayService" : @"ZeroConfDiscoveryProvider", \ @"DIALService" : @"SSDPDiscoveryProvider", \ @"DLNAService" : @"SSDPDiscoveryProvider", \ @"NetcastTVService" : @"SSDPDiscoveryProvider", \ @"RokuService" : @"SSDPDiscoveryProvider", \ @"WebOSTVService" : @"SSDPDiscoveryProvider", \ - @"CastService" : @"CastDiscoveryProvider" \ -} + @"CastService" : @"CastDiscoveryProvider", \ + @"FireTVService" : @"FireTVDiscoveryProvider", \ +}) #endif diff --git a/LICENSE b/LICENSE index 52b14da3..61f6e5e0 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ Apache License same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright (c) 2013-2014 LG Electronics. + Copyright (c) 2013-2015 LG Electronics. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index a0726838..dbe654d5 100644 --- a/README.md +++ b/README.md @@ -10,13 +10,15 @@ For more information, visit our [website](http://www.connectsdk.com/). ##Dependencies This project has the following dependencies, some of which require manual setup. If you would like to use a version of the SDK which has no manual setup, consider using the [lite version](https://github.com/ConnectSDK/Connect-SDK-iOS-Lite) of the SDK. -* libicucore.dylib -* libz.dylib -* Other linker flags: -ObjC +* `libicucore.dylib` +* `libz.dylib` +* Other linker flags: `-ObjC` * Automatic Reference Counting (ARC) * [Connect-SDK-iOS-Core](https://github.com/ConnectSDK/Connect-SDK-iOS-Core) submodule * [Connect-SDK-iOS-Google-Cast](https://github.com/ConnectSDK/Connect-SDK-iOS-Google-Cast) submodule - - Requires [GoogleCast.framework](https://developers.google.com/cast/docs/downloads) + - Requires [`GoogleCast.framework`](https://developers.google.com/cast/docs/downloads) +* [Connect-SDK-iOS-FireTV](https://github.com/ConnectSDK/Connect-SDK-iOS-FireTV) submodule + - Requires [`AmazonFling.framework`](https://developer.amazon.com/public/apis/experience/fling/docs/amazon-fling-sdk-download) ##Including Connect SDK in your app ###Using CocoaPods @@ -24,45 +26,57 @@ This project has the following dependencies, some of which require manual setup. 2. Run `pod install` 3. Open the workspace file and run your project +**Important**: Unfortunately, Amazon Fling SDK is not distributed via CocoaPods, so we cannot include its support in a subspec in an automated way. If you need it, please use the source ConnectSDK project directly. + You can use `pod "ConnectSDK/Core"` to get the [lite version](https://github.com/ConnectSDK/Connect-SDK-iOS-Lite). ###Without CocoaPods -1. Clone repository (or download & unzip) -2. Set up the submodules by running the following commands in Terminal - - `git submodule init` - - `git submodule update` +1. Clone the repository (`git clone https://github.com/ConnectSDK/Connect-SDK-iOS.git`) +2. Set up the submodules by running the following command (in the `Connect-SDK-iOS/` directory in this example): `git submodule update --init` 3. Open your project in Xcode -4. Locate the Connect SDK Xcode project in the Finder -5. Drag the Connect SDK Xcode project into your project's Xcode library -6. Navigate to your project's settings screen, then navigate to the Build Phases tab -7. Add ConnectSDK as a Target Dependency -8. Add the following in the `Link Binary With Libraries` section - - libConnectSDK.a - - libz.dylib - - libicucore.dylib -9. Navigate to the `Build Settings` tab and add `-ObjC` to your target's `Other Linker Flags` -10. Follow the setup instructions for each of the service submodules +4. Locate the Connect SDK Xcode project in Finder +5. Drag the Connect SDK Xcode project (`ConnectSDK.xcodeproj`) into your project's Xcode library +6. Navigate to your target's settings screen, then navigate to the "Build Phases" tab +7. Add the following in the "Link Binary With Libraries" section: + - `libConnectSDK.a` + - `libz.dylib` + - `libicucore.dylib` +8. Navigate to the "Build Settings" tab and add `-ObjC` to your target's "Other Linker Flags" +9. Follow the setup instructions for the service submodules: - [Connect-SDK-iOS-Google-Cast](https://github.com/ConnectSDK/Connect-SDK-iOS-Google-Cast) + - [Connect-SDK-iOS-FireTV](https://github.com/ConnectSDK/Connect-SDK-iOS-FireTV) -###Migrating from 1.3 to 1.4 release - -1. Open terminal and go to your local Connect-SDK-iOS repo -2. Pull the latest updates by running command `git pull` in Terminal -3. Set up the submodules by running the following commands in Terminal - - `git submodule init` - - `git submodule update` - ###Include Strings File for Localization (optional) 1. Locate the Connect SDK Xcode project in the Finder 2. Drag the ConnectSDKStrings folder into your project's library 3. You may make whatever changes you would like to the values and the SDK will use your strings file +## Tests + +Connect SDK has tests for some parts of the code, and we are continuing to increase the test coverage. There are currently three types of tests: + +Type | Target & Scheme | Frameworks used | Uses network | Fast | Reliable +-----|---------------------|-----------------|:------------:|:----:|:-------: +Unit tests | `ConnectSDKTests` | `OCMock`, `OHHTTPStubs`, `XCTest` | **-** | **+** | **+** +Integration tests | `ConnectSDKIntegrationTests` | `Expecta`, `OCMock`, `Specta` | **-** | **+** | **+** +Acceptance (aka End-To-End) tests | `ConnectSDKAcceptanceTests` | `Expecta`, `OCMock`, `Specta` | **+** | **-** | **±** + +* **Unit** tests are for small components and usually test one class/method. They use mocks to inject the dependencies. + +* **Integration** tests verify the behavior of the whole Connect SDK, but without external environment (network and devices), so that they can be reliable and fast. + +* **Acceptance** tests verify the end-to-end behavior of Connect SDK and real devices, so they won't work out of the box in a different environment. Some acceptance tests also expect certain properties of those devices, such as name or IP address, which should be altered to match your particular setup. + +The required third-party test frameworks are already pre-built and included in the `core` submodule. + +All of the test targets are compiled when the main `ConnectSDK` scheme is built, but only the unit tests are setup to run when testing the scheme. The other tests can be run by selecting the corresponding scheme. + ##Contact -* Twitter: [@ConnectSDK](https://www.twitter.com/ConnectSDK) -* Ask a question with the "tv" tag on [Stack Overflow](http://stackoverflow.com/tags/tv) -* Developer Support: support@connectsdk.com -* Partnerships: partners@connectsdk.com +- Twitter: [@ConnectSDK](https://twitter.com/ConnectSDK) +- Ask a question on Stack Overflow with the [Connect-SDK tag](https://stackoverflow.com/tags/connect-sdk) (or [TV tag](https://stackoverflow.com/tags/tv)) +- Developer Support: [support@connectsdk.com](mailto:support@connectsdk.com) +- Partnerships: [partners@connectsdk.com](mailto:partners@connectsdk.com) ##Credits Connect SDK for iOS makes use of the following projects, some of which are open-source: @@ -70,6 +84,8 @@ Connect SDK for iOS makes use of the following projects, some of which are open- * [Google Cast SDK](https://developers.google.com/cast/) - [Google Cast SDK Additional Developer Terms of Service](https://developers.google.com/cast/docs/terms) - [Google APIs Terms of Service](https://developers.google.com/terms/) +* [Amazon Fling SDK](https://developer.amazon.com/fling) + - [Amazon Fling SDK Terms of Service](https://developer.amazon.com/public/support/pml.html) * [SocketRocket](https://github.com/Square/SocketRocket) (Apache License, Version 2.0) - modifications: - stability @@ -98,7 +114,7 @@ These projects are used in tests: This public domain image is used in tests: [The San Francisco peaks of flagstaff public domain image](http://www.public-domain-image.com/free-images/nature-landscapes/peaks/the-san-francisco-peaks-of-flagstaff). ##License -Copyright (c) 2013-2014 LG Electronics. +Copyright (c) 2013-2015 LG Electronics. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/VERSION b/VERSION deleted file mode 100644 index f5678e62..00000000 --- a/VERSION +++ /dev/null @@ -1,2 +0,0 @@ -2.4 -f01307b2a70ed43aaa6df40273524bec0e687e95 diff --git a/core b/core index 3b356cff..68364f2d 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 3b356cff6b38703be592e5b916333dd42e558547 +Subproject commit 68364f2dceb2763d8fdbc0fffc699c390dabd374 diff --git a/modules/firetv b/modules/firetv new file mode 160000 index 00000000..51c3d136 --- /dev/null +++ b/modules/firetv @@ -0,0 +1 @@ +Subproject commit 51c3d1367cc9a77af794107bbf280c2e42701a54 diff --git a/modules/google-cast b/modules/google-cast index 0786d8b2..17200b3f 160000 --- a/modules/google-cast +++ b/modules/google-cast @@ -1 +1 @@ -Subproject commit 0786d8b24950bfcd01d007ffce39e54e852ad9ac +Subproject commit 17200b3f6df859aef8094051addff6e10722a09c