From cb24174d68f7457b794823f1eceb24f6f1c230e0 Mon Sep 17 00:00:00 2001 From: Gorjan Shukov Date: Thu, 28 Nov 2024 17:40:45 +0100 Subject: [PATCH 1/2] Introduce PendingRequest to allow loading media concurrently - Update ResourceLoaderDelegate to use PendingDataRequests and PendingContentInfoRequest for loading requests data/contentInfo response - Fix AVPlayer infinite silent stalling by instant data response to loading requests - Refactor and simplify ResourceLoaderDelegate - Add URLResponseExtension --- CachingPlayerItem.podspec | 2 +- Example/Podfile.lock | 6 +- .../CachingPlayerItem.podspec.json | 4 +- Example/Pods/Manifest.lock | 6 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 1242 +++++++++-------- .../CachingPlayerItem-Info.plist | 4 +- .../CachingPlayerItem.debug.xcconfig | 2 + .../CachingPlayerItem.release.xcconfig | 2 + .../Nimble/Nimble-Info.plist | 2 +- .../Nimble/Nimble.debug.xcconfig | 3 +- .../Nimble/Nimble.release.xcconfig | 3 +- .../Pods-CachingPlayerItem_Example-Info.plist | 2 +- ...ds-CachingPlayerItem_Example-frameworks.sh | 5 +- ...s-CachingPlayerItem_Example.debug.xcconfig | 3 +- ...CachingPlayerItem_Example.release.xcconfig | 3 +- .../Pods-CachingPlayerItem_Tests-Info.plist | 2 +- ...Pods-CachingPlayerItem_Tests-frameworks.sh | 5 +- ...ods-CachingPlayerItem_Tests.debug.xcconfig | 3 +- ...s-CachingPlayerItem_Tests.release.xcconfig | 3 +- .../Quick/Quick-Info.plist | 2 +- .../Quick/Quick.debug.xcconfig | 3 +- .../Quick/Quick.release.xcconfig | 3 +- Source/CachingPlayerItem.swift | 2 +- Source/PendingRequest.swift | 159 +++ Source/ResourceLoaderDelegate.swift | 244 ++-- Source/URLResponseExtension.swift | 79 ++ 26 files changed, 1060 insertions(+), 734 deletions(-) create mode 100644 Source/PendingRequest.swift create mode 100644 Source/URLResponseExtension.swift diff --git a/CachingPlayerItem.podspec b/CachingPlayerItem.podspec index 0a0afea..3d6ad3a 100644 --- a/CachingPlayerItem.podspec +++ b/CachingPlayerItem.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'CachingPlayerItem' - s.version = '1.1.3' + s.version = '2.0.0' s.summary = 'Cache & Play audio and video files' s.homepage = 'https://github.com/sukov/CachingPlayerItem' diff --git a/Example/Podfile.lock b/Example/Podfile.lock index eee8dbd..f05abc8 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - CachingPlayerItem (1.0.4) + - CachingPlayerItem (2.0.0) - Nimble (9.2.1) - Quick (4.0.0) @@ -18,10 +18,10 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - CachingPlayerItem: 7f6792912f2b186fededb6dd3d62250f76c088a5 + CachingPlayerItem: 61dfcd2931cf590d8f461d4cbee65cd2e643f69b Nimble: e7e615c0335ee4bf5b0d786685451e62746117d5 Quick: 6473349e43b9271a8d43839d9ba1c442ed1b7ac4 PODFILE CHECKSUM: 0b648f8072442c1ace440db05048c9726462e88a -COCOAPODS: 1.10.1 +COCOAPODS: 1.15.2 diff --git a/Example/Pods/Local Podspecs/CachingPlayerItem.podspec.json b/Example/Pods/Local Podspecs/CachingPlayerItem.podspec.json index 12444e3..c9dfa36 100644 --- a/Example/Pods/Local Podspecs/CachingPlayerItem.podspec.json +++ b/Example/Pods/Local Podspecs/CachingPlayerItem.podspec.json @@ -1,6 +1,6 @@ { "name": "CachingPlayerItem", - "version": "1.0.4", + "version": "2.0.0", "summary": "Cache & Play audio and video files", "homepage": "https://github.com/sukov/CachingPlayerItem", "license": { @@ -12,7 +12,7 @@ }, "source": { "git": "https://github.com/sukov/CachingPlayerItem.git", - "tag": "1.0.4" + "tag": "2.0.0" }, "swift_versions": "5.0", "platforms": { diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index eee8dbd..f05abc8 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - CachingPlayerItem (1.0.4) + - CachingPlayerItem (2.0.0) - Nimble (9.2.1) - Quick (4.0.0) @@ -18,10 +18,10 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - CachingPlayerItem: 7f6792912f2b186fededb6dd3d62250f76c088a5 + CachingPlayerItem: 61dfcd2931cf590d8f461d4cbee65cd2e643f69b Nimble: e7e615c0335ee4bf5b0d786685451e62746117d5 Quick: 6473349e43b9271a8d43839d9ba1c442ed1b7ac4 PODFILE CHECKSUM: 0b648f8072442c1ace440db05048c9726462e88a -COCOAPODS: 1.10.1 +COCOAPODS: 1.15.2 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index e4220f5..604fe08 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,170 +7,174 @@ objects = { /* Begin PBXBuildFile section */ - 01A04218EC99765ADC0409631E60BB97 /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7984E2929E13FE9962030FA664F09CB2 /* BeVoid.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 03D2B9651FD82FC0D5C97AD6F0E561D4 /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = F01872A5724C80F9F66F85BE505EF41E /* BeLessThanOrEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 096A350DACDDDFF8805FDAEBE86EC2F6 /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CA7814D47356EA90B9ECB4FDB3F859 /* NimbleEnvironment.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 0A363AD0A93A6F9E8961F52B10580718 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4097A6637537D84D28A10721A2E7EC6 /* NMBExpectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 0D76A5CAF71781C4E1CC5E0D70D3426D /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C572C7D93AF0E9B50A517675CD4D665 /* QuickSpec.m */; }; - 0DFBCBE5C1E75DC9CD38757ACF33E0A7 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = B25751F36800946C1A1A22406B3596FE /* ToSucceed.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 0E48962ACAEDD1289D7DAE793F3A731F /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19A3558661CEF3BE87C498E32AEC3EB0 /* Expectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 1126E10683633A8503EE54632EE12803 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEB539966A7AFD5CB6811DAA9B761F1B /* Contain.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 113CB0649F1C41E6358C27C4DC19D0A7 /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C42CFB5518B1F634F1B99EBB383B6B0 /* XCTestObservationCenter+Register.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 15DB927C7009266E077993F38882D40E /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = FDB97E529E69C80140CF90C16575922D /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1AF9A29318570C093E7F92579080C6C4 /* Nimble-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DD3495984E50717EE5951C04EAFB788 /* Nimble-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1DA94F92235E0C3A0FD7768DD848068C /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3107E43F634AF3B221072AD06EDC701 /* Closures.swift */; }; - 1E3B805AA2F844C715C9F3135A7D7BD5 /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB293BEEC38AC66C26BFE450BF27D14F /* ContainElementSatisfying.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 1F5967DC89CF19ABF6F288617010D900 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FD90DC04A8EE437DF70BED5C4A8D946 /* DSL.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 20A7D607CEC9E4D0F0B7ECC1A545A05F /* QuickConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D864B01792C2475774D9271679F17B9A /* QuickConfiguration.swift */; }; - 2145470ED629F29ABCCBF304F24DA354 /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = 4C2D1D1C6474F27A8FCC8D6856C47704 /* mach_excServer.c */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 2432100DBFB954DDC3AC2CEA3E170B9D /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07B58265E7E51E07AFB8D2BD2A392369 /* BeIdenticalTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 2513544A87AE23B204407637DC8CF5AF /* CachingPlayerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3865CFB2696EFCD1419295CEA9266165 /* CachingPlayerItem.swift */; }; - 2551CBC318614FA2BF169B2844F46724 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E8072728FE77384B733518CEDD0A251 /* XCTest.framework */; }; - 27C96AB21C9D153E5EEE8CD305935088 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = E5207C4D8365FB324A7064CEAED8E497 /* NMBExceptionCapture.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 2A7FA62A2799B4F51D2B3B4463763BE5 /* String+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D790CFC0DD27CF5E3726D13716B8457 /* String+C99ExtendedIdentifier.swift */; }; - 2AC400B28F334D89B97F36620EF4F362 /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 487FC1B156A23E9FE1FB704254E44A12 /* CwlDarwinDefinitions.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 2C7EA1D1F721BB8C5AFBA3D6427C1034 /* Nimble-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A565AB2A63D27ACF855DE572A8749763 /* Nimble-dummy.m */; }; - 2D1BD8BC036C099C617457E7BF7AC8CB /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5912F55BE3AA373DBEF439FEAE802EC /* CwlCatchBadInstruction.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 31F310A182C07209B212AC43C4AD699E /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = E44D64C97F0EB045C86340CAD74FF65D /* CwlCatchException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 351C5491EB39A1A8CC635F0A27C3E372 /* QuickTestObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FDF855D797FF314FA501247ABF1FEC7 /* QuickTestObservation.swift */; }; - 3D88FA031800EAD5410C710DC430D909 /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F792826C2A1DCA549A626F8B6BB9048 /* World.swift */; }; - 3F31BA28AEC03B51AF90221CC4AD864B /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90A8B866BF1B5741F3E8FDA8E728708F /* World+DSL.swift */; }; - 416FEB65425C4D4A5BD9A56DBB994F72 /* QuickConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A1E6D0F0B64E0881BB387BFDBBAEDE64 /* QuickConfiguration.m */; }; - 44CC283E83FE6CCCAAB2F327740770E7 /* QuickObjCRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 917DABFABA971087CC881C67BBCB896A /* QuickObjCRuntime.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4507C3FA3B3C2A7A13D9C503CFD9CC19 /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = B778739B132B4FEC875F9615ED37CAEA /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 45718892681E27BFB3CA4F77FB637189 /* Behavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7C9BFBE17C3F91CEB7AEF368D4BF50 /* Behavior.swift */; }; - 45E7CAF07B6469F2BBA312440782C90B /* ResourceLoaderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDB248F1686720332ACF9DA3B8BDBE56 /* ResourceLoaderDelegate.swift */; }; - 4BB64DB9E1A1717C926E9A2FA7D5DA97 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5808B9A93D2F619B1FB8E6A7D46F1C /* RaisesException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 501A30CB9F16F63F7FBABA667043DCCC /* ElementsEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E79BFE04E48F6AC4C63F2B0CAF4E210 /* ElementsEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 520E7371FE7DB9BF712762793CC0BB4B /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACCFB9311ED98345A6282A28A6CFAD83 /* AssertionDispatcher.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 5A7CA27F8A4CB0DCBDBFB48B301E26D6 /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0366B612A2ACEBDB6626EBF65E107253 /* URL+FileName.swift */; }; - 5DD0B3311BB289641928D6E734F4ED55 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A80B6F8B82934D9A77E355D2A690124 /* MatcherFunc.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 5FF3D0D8B874D76C903952F8E318E006 /* Quick-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B9973833824E7ED01540C73DCB2C1247 /* Quick-dummy.m */; }; - 606F220B87194FFF5D050FC4942120C5 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73141CA135219B195CA9C9BBE8BC38E0 /* NimbleXCTestHandler.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 610CEB4BDE1C763C5CA2025801FA6C19 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B06D0635479264C16188B060A5FF26 /* Foundation.framework */; }; - 62B4411C147375E0F1D0639B40963428 /* Quick.h in Headers */ = {isa = PBXBuildFile; fileRef = E0FE7DF20C0080F14BDF5F181BF2345F /* Quick.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 64FF7B082BBD75946F6B6342F202F6CC /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = D23387148BE56CC3EB877BEE9F509DA9 /* DSL+Wait.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 6651438A66A1DEB7B86EC4814EA9DA16 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5700BD6275F82CB443901CE97C7FBFE2 /* Callsite.swift */; }; - 665B3B718611BE55F338D2CF4602AC74 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A8FC83ADFAB68A939D061B9DA7B2C3 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69FB2A0E963C18660AA3B8CFE72FE3C4 /* Await.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6971FF4FC2D354A79275D7A0E176A2EC /* Await.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 6C53B0695A60489C1FFCBE9FABBFA47A /* QCKDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 39008AE1E1CAEB0064DAD5FE36764295 /* QCKDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6CE2E10D6237472E319B05C3F16A2237 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2DD27CB90704924D6D50162205BD97 /* ExpectationMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 6D2EB1AA036F99007BFB31045522F459 /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = C234427DC01A4C983F67F5875E295B28 /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6E5819480E972CA10D8D9A34D94405BF /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0EE0182653D00926C08100E31BD3795 /* Filter.swift */; }; - 7433873AD9AFAE2CA71EFD10FA2CD88C /* QuickSpecBase.h in Headers */ = {isa = PBXBuildFile; fileRef = FCA2F2ED2C8A41C278097D187DEBE989 /* QuickSpecBase.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 784F57A0959BD334BD0D1158C8359135 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0CC2D566D5FDF7981081C8C4D3648C2 /* HaveCount.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 79A86162B6B82D7F8795DCED169BE954 /* QCKDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = A789DFAD27D89A0DA5B60793DB255366 /* QCKDSL.m */; }; - 7D171247CA2ABB73A04421806294736F /* Pods-CachingPlayerItem_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DA1CAF837E658527708A866443BF5F75 /* Pods-CachingPlayerItem_Tests-dummy.m */; }; - 7FA57A4E6F31FBD1C126E7689E1AD61C /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25030C0A2B44B4AFE6D77A9BAAF84088 /* Configuration.swift */; }; - 7FA979F226052E7C77BA9D37FEDA95D2 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE05B0AC3FA989A47A0C2BCE00A237B9 /* Predicate.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 800D781D242F5E551B42C4D8393CBB0B /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75423B81B53812C99CD2B45F03DB3037 /* SatisfyAnyOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 80D116D3CC62170FF258E5AEABE6792A /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 030CD2D7B5E0A8B711B3F24711647E5D /* BeEmpty.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 8510469EB9B18B318478019A11F7D784 /* SatisfyAllOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11CD7AC874836F8DA7EC88B0872CDBAE /* SatisfyAllOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 86D9716ADE347B2916F9CB715A3B26D5 /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = C9F5C65CA8F308F74190933D608601A6 /* CwlCatchException.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 89396273444D853480B62B113EE22623 /* BeginWithPrefix.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802103650A4E5841D47428C4B297B890 /* BeginWithPrefix.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 8A7A3AFF694933726D4726769068AC14 /* Pods-CachingPlayerItem_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CF1C6A9E80DE2E1C8426BA657C2EE62 /* Pods-CachingPlayerItem_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8E2D915F77F55ADEBC7C3B223A4F3A9C /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A81330D968B34C59FC40E730C91DA50 /* NMBObjCMatcher.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 8F01AC0753C01A52C349A233690D7938 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3A6C6DA8267274529580FC6BB388664 /* AdapterProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 95079B04F2442FF22611EA7AC48EF81E /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2CC867E16210A5E3628561E0E52DAED /* Example.swift */; }; - 97FA3A0D9196BB3D170B7F7F2A6BDFCD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B06D0635479264C16188B060A5FF26 /* Foundation.framework */; }; - 98D4C88DB61717125A36A5334F27E5C6 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB69E074D53782BE2F1E1AEC1CAA6797 /* NSBundle+CurrentTestBundle.swift */; }; - 9A1BE88CE8717D03F12BF668F2ACF766 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADA676B386635A5851AD41777A665907 /* BeginWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 9D1731F108FFD33C034F6A859A8A625B /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8599C685A6E9088137A44D9BD36F320D /* DSL.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 9D56BAD608CA598B071D591E0112F6BE /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 817BE9A694522F7F4026799121CBA1C7 /* NMBStringify.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 9F2643593B001BED9C62BEF8FB0EBF9D /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0803F35E782099A482A475DC094AA98B /* QuickTestSuite.swift */; }; - A1D30A36109E6A90E1791B51BAE55A72 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7425C80AFE5874C82C321C25C8FD8E4E /* BeLessThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - A4E1AC7A059F8774AECC57EB095245DA /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB3DC3139A1280CF034113B965D1A718 /* CwlBadInstructionException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - A5EB253AF98ECD3895797CF40302FA39 /* QuickConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = EA20C87137C7C7A9356234D9535104D4 /* QuickConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A9AF3F7AB8269225790D01ABD9F559D7 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81545145A1C5A4394570ECEC1644AC94 /* DSL.swift */; }; - AD4AC85D286EF36E94059676F912BE33 /* Equal+Tuple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 431CBAEE164D12511676DF2CA2E5F6E1 /* Equal+Tuple.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - AE9B8D884D9817D95AE9547AC70C9641 /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17550890BB023B26063ABDFE4B258145 /* SuiteHooks.swift */; }; - AEB5246A054AE75A5BFA7D8C770E9E8E /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B7283F4C347135472840AFDA74C4E5A /* PostNotification.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - B1748512B443FCEA0F846B5E93F8DDF0 /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D2329236D787235A5653D38E8B2060A /* URLExtension.swift */; }; - B212BEE5869453F67DE16621A5388954 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9817083983497DB3ED6001E3E97533CB /* BeGreaterThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - B2D03C30992D861A3C55D5301D718518 /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3862A4029F0AE7BD5D04E22605C911F /* ExampleHooks.swift */; }; - B844C53365327CB75CC1645AE73CDCED /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4533A88B2DE8230A61D3FE3F4CD5BC98 /* CwlMachBadInstructionHandler.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - C0D3EDC5F8D2546D5B5CB583230606B7 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E9D232917B7F9161AD32800BD7188F6 /* Errors.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - C12A5EDA29052D6AB6B5C08EB827147F /* mach_excServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B2EF8A720D0EAA49000115560DF7BBC /* mach_excServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2D906D76A9597A6C5B496D316893560 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = FECCD0DFA1B5AC88BE310179E43A5722 /* AllPass.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - C759FEB2A9EF6B829DF536816DF4CABB /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1014F88FBB418E7E9B24F6C3E73E89DA /* ExampleMetadata.swift */; }; - C7B3848543A19E420CA7638FBF6775CB /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B085943B46F49A20A9E6E3DE9F200FE /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C9EFD79787203ED7436E0436ABE69A4A /* CachingPlayerItemConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56D6F310AC1B803DD8342372DCC6B11 /* CachingPlayerItemConfiguration.swift */; }; - CA791EB47A2D4F838A353E79B693A4B8 /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B63A49E44A8499A1A97B90F2A37A90C /* Match.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - CC9476F9485F3506AE3374888A29D0AA /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B0AADE582B5BD22FA91D3DAD8844B92 /* Expression.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - CFB78DAD8A511C9123F8559BA702B5E4 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42246731B3D9A2B8790893EBBD465FFF /* AssertionRecorder.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - D392F6B2FA170B0C80F8ACE74BD724C9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B06D0635479264C16188B060A5FF26 /* Foundation.framework */; }; - D562A34837C271ABE23892804EABFC83 /* QuickSpecBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 10C36E789BFF17B70EC945692C82D859 /* QuickSpecBase.m */; }; - D5909A235107CDC9E1B0C12CB08B6505 /* DispatchTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85BB1858F6652DC026D80938BD29DD97 /* DispatchTimeInterval.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - D5F9007B27D8A964A59DEF1B1FF9836C /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7CAC455B538657F71487C6E76079952 /* AVFoundation.framework */; }; - D6276432FE863185A68BC069E47F1BD9 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2924BBEE0618BF7EC93C2C9016D0CCCA /* ThrowAssertion.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - D989AA28FF39931A8E9F6FFD665FD0B7 /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 68BC691C67B0A64F7510D5C6298F4A80 /* CwlMachBadInstructionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DB4F2A50A04E673714C6A8AA32D94D53 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086F10523AFF38648C15FCA6AA129C23 /* Stringers.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - DBB0B80C28F80394644E12D3C4EE2CB3 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD69990709ED1315032AA1A075A30E4A /* Async.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - DD13D7F39BF525E3E515719845C3D951 /* CachingPlayerItem-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E2FC18655E1BBFB9C9F5D12662EDD26B /* CachingPlayerItem-dummy.m */; }; - E0E2E724288F13C852B9DB0C323ABBE4 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D419D9857BEDF4AABA8218936B3677E /* BeAnInstanceOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E1F708C047C1B3C52B13F4D322D15F69 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07FE7135B910B114C8F5096BEF6D8C97 /* Equal.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E282A90FA01DE2C5003A3E17907E17A9 /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = E6B078FDEFF43D01A46CEC09B78FA029 /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E41DA6DEFB27EE0BCF12DC39EF0E1E1A /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 791E6CD5C8804BBD715C9D08D4BEC854 /* BeNil.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E5FA00B2EC7B07285D2AE732D338BBDC /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09731733D98B8FD7224447F776E75441 /* BeGreaterThanOrEqualTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E6E826B1E39D4EDF688F84781E0EF0FA /* MediaFileHandle.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF9F1F48C5FAA3EDE19E0743CC822906 /* MediaFileHandle.swift */; }; - E80FC1D79D4A8DCA72F3C9A023D7BBD8 /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E30B4EFCE7868E0DBE8E364AD275301 /* MatchError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E8AE858EC457AE28E23FE08EFB32E892 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 757BAF37999C9047D1AE2770EE6A4A6E /* QuickSelectedTestSuiteBuilder.swift */; }; - E9EB5895A3C64621F2D5D153BD103D6E /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96F8F92D4F337391CA98495AED7459FB /* BeAKindOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - EA3B734318B9E04D966DB61ED42B08EC /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = E762B92915992D34CF1197690DD6C504 /* ErrorUtility.swift */; }; - EC614D9F4E90768EDAD8867FDF1AA3DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B06D0635479264C16188B060A5FF26 /* Foundation.framework */; }; - ED19AC2F490C66E0DE2E2ACFBFBA7371 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B06D0635479264C16188B060A5FF26 /* Foundation.framework */; }; - EE7C2A10D09991BF6E14ECE2C8F41243 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = DBCE4BA046CAEB42619707DBED53725C /* XCTestSuite+QuickTestSuiteBuilder.m */; }; - F02B60DD96EB7DE9CA25530D09966391 /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54786640730EAADE6139B51A243CA4B7 /* ExampleGroup.swift */; }; - F0BE82B3C81BDAF3B7134D8C76E8819E /* CachingPlayerItem-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F6143C60E17F82DE4AB560DA2CA9F39 /* CachingPlayerItem-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F17CCA8ABDDEE4BA268DC3D82A9C59BC /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEE0135D5FDA5A4415EADADB336B9246 /* FailureMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - F1EDFF4C8CD256D625C5B46E0768AEFB /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACA8E066CB31D5BC83F54CCFE6CFD9B8 /* BeCloseTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - F655BE2E98E916AC0EB09E627C43C3AA /* Pods-CachingPlayerItem_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AEBDEDD0143A4CF89941F8FCFD386262 /* Pods-CachingPlayerItem_Example-dummy.m */; }; - F74B14337C89364EAABE436EEF56705D /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 599A5A20097CA4DD27ECE4579DDE32BD /* HooksPhase.swift */; }; - F7FF348727315821588F9F0C635BEE2C /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1209032F9B9026846B05C17994D723B3 /* SourceLocation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - F92273C61B48AB0E00CC817DF18A4C47 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5898400AEF7989EB1C4B445B05061557 /* BeLogical.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - F9D4AB9515DB3E931E4AF493DE11895E /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD192718D9180DF715E2B12BD4F99324 /* ThrowError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - FC740FFCEA8E90C8F3DB11189FD9FA9D /* Quick-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = ED05FA78925BC3E8E8D05CC3D3321291 /* Quick-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FCC23B8552E01DB23CA349EB8921842C /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D9304D037786B05B215A100D854D943 /* MatcherProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - FD1E01D8C3414F0495353334492BF4A9 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = C398A9D17862A4A4F45ADB5FA7444E92 /* EndWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - FF19798801098184A22810834528D1AC /* Pods-CachingPlayerItem_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 87A99AE39108DEFB24B13DDF873EAD04 /* Pods-CachingPlayerItem_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0132BCEC809FC6B0731C8FD25329B011 /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C572C7D93AF0E9B50A517675CD4D665 /* QuickSpec.m */; }; + 04B815FC0ACB3FED6290C6E0505587E7 /* Pods-CachingPlayerItem_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 87A99AE39108DEFB24B13DDF873EAD04 /* Pods-CachingPlayerItem_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 053B88AAB25D8E9E247314D1A1933B19 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 757BAF37999C9047D1AE2770EE6A4A6E /* QuickSelectedTestSuiteBuilder.swift */; }; + 0779B89F9C0D5D853C7308F616A5A849 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0CC2D566D5FDF7981081C8C4D3648C2 /* HaveCount.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 07B8533B93693FCEAA99BF09F9253B2F /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E30B4EFCE7868E0DBE8E364AD275301 /* MatchError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 0AB4D69A223EE91B885F7EBFB50DE156 /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4533A88B2DE8230A61D3FE3F4CD5BC98 /* CwlMachBadInstructionHandler.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 0AF0D94CD930C1500995605C433F383E /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 817BE9A694522F7F4026799121CBA1C7 /* NMBStringify.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 0D476A8577141576F5FDB1046C02B11A /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D9304D037786B05B215A100D854D943 /* MatcherProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 0EA459BD6662050D9560047C9F812C11 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2924BBEE0618BF7EC93C2C9016D0CCCA /* ThrowAssertion.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 14CF863FE8B157437FF2B78AEBB7B413 /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75423B81B53812C99CD2B45F03DB3037 /* SatisfyAnyOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 18D714FD70EA5AD28403F0EA57869F3E /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 599A5A20097CA4DD27ECE4579DDE32BD /* HooksPhase.swift */; }; + 19A8009537BCAD56435B2DDC620B29AA /* mach_excServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B2EF8A720D0EAA49000115560DF7BBC /* mach_excServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1AE2F33DF9F5F77B8F992AD620C5DE94 /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = E762B92915992D34CF1197690DD6C504 /* ErrorUtility.swift */; }; + 1CB7927791B377DB30E9CE046A2C664C /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEB539966A7AFD5CB6811DAA9B761F1B /* Contain.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 1ECBA6E84244B735031FF3F42C5393D5 /* URLResponseExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 229B5EBF1D386F6C99A7C196B5A9636F /* URLResponseExtension.swift */; }; + 21F3408E9BD0BE7C7A9FFBF43B4F28A0 /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = B778739B132B4FEC875F9615ED37CAEA /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2237E6E22D72C7C15435869831F2DCE2 /* Await.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6971FF4FC2D354A79275D7A0E176A2EC /* Await.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 23000995DBD093C7D33D8BE08AFC3D7D /* Nimble-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A565AB2A63D27ACF855DE572A8749763 /* Nimble-dummy.m */; }; + 259BF5B2716811449046CBCF05FA5C38 /* Pods-CachingPlayerItem_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AEBDEDD0143A4CF89941F8FCFD386262 /* Pods-CachingPlayerItem_Example-dummy.m */; }; + 288A9262472730459EFECA301BF7F08A /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B0AADE582B5BD22FA91D3DAD8844B92 /* Expression.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 2BDF0A0BCDCCB4CDB35FC276EBE18FB6 /* String+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D790CFC0DD27CF5E3726D13716B8457 /* String+C99ExtendedIdentifier.swift */; }; + 2CF2036F269D92D594037180F346C926 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 791E6CD5C8804BBD715C9D08D4BEC854 /* BeNil.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 31231B6154E000C8C27019B50071D010 /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = E12E1CBA9A786855CE4A5EF87AE72907 /* URLExtension.swift */; }; + 32995147DC30DF5022DD66C0470BFDE9 /* QuickSpecBase.h in Headers */ = {isa = PBXBuildFile; fileRef = FCA2F2ED2C8A41C278097D187DEBE989 /* QuickSpecBase.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 36FBD4F8D6EE81B6E753EC3612C90779 /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB293BEEC38AC66C26BFE450BF27D14F /* ContainElementSatisfying.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 37D7E98EFCBDBA089CD46482EF1F21C4 /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5912F55BE3AA373DBEF439FEAE802EC /* CwlCatchBadInstruction.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 39EB6F3F4D4BC1FB786A3C25827D26BC /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7984E2929E13FE9962030FA664F09CB2 /* BeVoid.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 39F7D7CBD814A4DD7A8907951314A36C /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25030C0A2B44B4AFE6D77A9BAAF84088 /* Configuration.swift */; }; + 40B9F78D86FB4CE884EA9F73CDDF27E6 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2CC867E16210A5E3628561E0E52DAED /* Example.swift */; }; + 418D281C0D9DFECE0BC865C95471EE7F /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C42CFB5518B1F634F1B99EBB383B6B0 /* XCTestObservationCenter+Register.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 42BBE0E315E36B784C0B87F8FF47BFE4 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8599C685A6E9088137A44D9BD36F320D /* DSL.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 43053D4C139B803727E485CB5EC2BDE7 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE5808B9A93D2F619B1FB8E6A7D46F1C /* RaisesException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 456B5082BEA7D6DC9203FC95F2275427 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEE0135D5FDA5A4415EADADB336B9246 /* FailureMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 4933DA60945D792DFF5BFD12C8EA041E /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9817083983497DB3ED6001E3E97533CB /* BeGreaterThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 49857B3D7D3AE323F25A8663A569ADD8 /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90A8B866BF1B5741F3E8FDA8E728708F /* World+DSL.swift */; }; + 4A7DE0C16571E49896074F0152E5B0F8 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = B25751F36800946C1A1A22406B3596FE /* ToSucceed.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 4DC21C433B0E7FC92A8C7956943EDBAE /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3862A4029F0AE7BD5D04E22605C911F /* ExampleHooks.swift */; }; + 5691B93A51512304D117B4A69DDD507E /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17550890BB023B26063ABDFE4B258145 /* SuiteHooks.swift */; }; + 583B5AF27B91E2F4EE8D1547443E1C75 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96F8F92D4F337391CA98495AED7459FB /* BeAKindOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 59E81A3529AA2EA5F274387B207DE008 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0EE0182653D00926C08100E31BD3795 /* Filter.swift */; }; + 604A73AD1D0E82356F2A073C53BC6517 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B06D0635479264C16188B060A5FF26 /* Foundation.framework */; }; + 60A059AA3734D5D3F2F73D07C427F4C1 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A8FC83ADFAB68A939D061B9DA7B2C3 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60E7AE4194948B5824E3BA84B9BD7B41 /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACCFB9311ED98345A6282A28A6CFAD83 /* AssertionDispatcher.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 612581CCD8346C696A80E6BC09D24C1F /* QCKDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 39008AE1E1CAEB0064DAD5FE36764295 /* QCKDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6210C7C9A6CBFEC7C4EDE39D753D6780 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73141CA135219B195CA9C9BBE8BC38E0 /* NimbleXCTestHandler.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 65BB115F57E7BCEB6908D5000AEA0A81 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5898400AEF7989EB1C4B445B05061557 /* BeLogical.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 6612F33BD20A641C4E57C96E7E0EBD7A /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = F01872A5724C80F9F66F85BE505EF41E /* BeLessThanOrEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 66797F8F43C1222974E9CF45F7A3498B /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = D23387148BE56CC3EB877BEE9F509DA9 /* DSL+Wait.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 69D887264BF5A2D300A09A92BBABB408 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09731733D98B8FD7224447F776E75441 /* BeGreaterThanOrEqualTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 6A47C53473FBCF2FF5C85069FBD4CA8D /* QuickConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = EA20C87137C7C7A9356234D9535104D4 /* QuickConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7118AE24D7AC2E5A09D851E36AD49847 /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CA7814D47356EA90B9ECB4FDB3F859 /* NimbleEnvironment.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 7190961540266108624E854866842A81 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B085943B46F49A20A9E6E3DE9F200FE /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72E8C878B1927D988D108E3177403359 /* Behavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7C9BFBE17C3F91CEB7AEF368D4BF50 /* Behavior.swift */; }; + 75145B057D4E9B634E53E202CD5BE254 /* ResourceLoaderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E09667A15A4D7B0BCB00291A4B2F90B /* ResourceLoaderDelegate.swift */; }; + 7778C6B86287F5E2F906D9A7929B1F32 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5700BD6275F82CB443901CE97C7FBFE2 /* Callsite.swift */; }; + 77D0DC280412E93206CF9E5B3B1B8F61 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19A3558661CEF3BE87C498E32AEC3EB0 /* Expectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 78414539BDE67644C7ED996057FD8B81 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42246731B3D9A2B8790893EBBD465FFF /* AssertionRecorder.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 785F83BBF7F3CC895851D4162BF97B06 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2DD27CB90704924D6D50162205BD97 /* ExpectationMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 7981FCF6822DE2547C70226639A996DB /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7CAC455B538657F71487C6E76079952 /* AVFoundation.framework */; }; + 79A9ADCAE72B5F30CE882F79CDDDD47F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B06D0635479264C16188B060A5FF26 /* Foundation.framework */; }; + 79B88C8C011CFBDB0562BE069224DDCD /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 487FC1B156A23E9FE1FB704254E44A12 /* CwlDarwinDefinitions.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 7D54398DC6FEA5F878EB3DA9B82BCEE4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B06D0635479264C16188B060A5FF26 /* Foundation.framework */; }; + 7E2E7651B51BF28CA66F8652618AD62E /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1209032F9B9026846B05C17994D723B3 /* SourceLocation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 800CE15AB7C9BC8C04C8712B0541D507 /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B7283F4C347135472840AFDA74C4E5A /* PostNotification.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 855A990E6D084C1576917EBC48BF1190 /* CachingPlayerItem-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 29C5F1CE85DD3056C90D7387CC274FFA /* CachingPlayerItem-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 87C4492353709B68EE6BCF6A39894D43 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B06D0635479264C16188B060A5FF26 /* Foundation.framework */; }; + 880127B565D384955284322078C87AB2 /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0803F35E782099A482A475DC094AA98B /* QuickTestSuite.swift */; }; + 88E1D9F9F8FF7AE322F3261305140328 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACA8E066CB31D5BC83F54CCFE6CFD9B8 /* BeCloseTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 8D56DB5B0A79CF1081062ED05CEEEF24 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADA676B386635A5851AD41777A665907 /* BeginWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 8F572967B8805D18212CC67C039F0443 /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB3DC3139A1280CF034113B965D1A718 /* CwlBadInstructionException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 8F5C3B5756C30090332AC514897F4A2F /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F792826C2A1DCA549A626F8B6BB9048 /* World.swift */; }; + 8FB7B05F443BDE9227CDB4F77C435D8B /* Equal+Tuple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 431CBAEE164D12511676DF2CA2E5F6E1 /* Equal+Tuple.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 948E33EBB139A91A51C0126F09FA82D0 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A80B6F8B82934D9A77E355D2A690124 /* MatcherFunc.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 97C3E58BF923DDDFC24D4093D010B8A1 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3A6C6DA8267274529580FC6BB388664 /* AdapterProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 997EC03E15F19A72CC410FDCDBFDF387 /* Quick-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B9973833824E7ED01540C73DCB2C1247 /* Quick-dummy.m */; }; + 9B7F051D38E1944CD965A9FB4D2A0CE3 /* PendingRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E8436A04E894A216301DB82D7D38F76 /* PendingRequest.swift */; }; + 9DC2ABBC9A7C2D58365B389176258B33 /* DispatchTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85BB1858F6652DC026D80938BD29DD97 /* DispatchTimeInterval.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + A300D9554F7D25A75347FE6A574A4E34 /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = E44D64C97F0EB045C86340CAD74FF65D /* CwlCatchException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + A53B2E144B6A63C518FD4927293A8050 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B06D0635479264C16188B060A5FF26 /* Foundation.framework */; }; + A5A13AA5C8708EC3C78BA26A8C1F606C /* BeginWithPrefix.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802103650A4E5841D47428C4B297B890 /* BeginWithPrefix.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + A6E27F55BDE035D65EBD7F43580B0E9E /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1014F88FBB418E7E9B24F6C3E73E89DA /* ExampleMetadata.swift */; }; + A98DB1F750AC4D9C4700ADDC970BB5A9 /* QuickSpecBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 10C36E789BFF17B70EC945692C82D859 /* QuickSpecBase.m */; }; + AA01E05BE1B12174011ED45CED568498 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE05B0AC3FA989A47A0C2BCE00A237B9 /* Predicate.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + B43C79561813FC1E0C76BED57C3638DE /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = DBCE4BA046CAEB42619707DBED53725C /* XCTestSuite+QuickTestSuiteBuilder.m */; }; + B8A111BEADE508D1C85DF8B7891628AE /* ElementsEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E79BFE04E48F6AC4C63F2B0CAF4E210 /* ElementsEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + BB8370B2AD5EDA60D508B0A9FA16E4D9 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = C398A9D17862A4A4F45ADB5FA7444E92 /* EndWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + C03116C765F1A8893559730965ECBAD8 /* Nimble-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DD3495984E50717EE5951C04EAFB788 /* Nimble-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2E1F79FD03B6561EEF71E1775E64C89 /* QuickTestObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FDF855D797FF314FA501247ABF1FEC7 /* QuickTestObservation.swift */; }; + C2FA0C88754F444F546CD14FAD4983E1 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FD90DC04A8EE437DF70BED5C4A8D946 /* DSL.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + C7EAFC19DEB229B96943921BD30D945E /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B63A49E44A8499A1A97B90F2A37A90C /* Match.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + C96B370E9B3442878448F8FFFDC98C7A /* Quick-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = ED05FA78925BC3E8E8D05CC3D3321291 /* Quick-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA6D99B9801B4B92896343D06633560C /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD192718D9180DF715E2B12BD4F99324 /* ThrowError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + CA76C6322518A8581332F08D97B58256 /* QuickConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D864B01792C2475774D9271679F17B9A /* QuickConfiguration.swift */; }; + CC30B9350D7237C9A3241C7AED584D9D /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = C9F5C65CA8F308F74190933D608601A6 /* CwlCatchException.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D0BD9D341F96D9C4E32D90DD1581854A /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086F10523AFF38648C15FCA6AA129C23 /* Stringers.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D25A73F0AC8F3983007A4826A8851347 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 030CD2D7B5E0A8B711B3F24711647E5D /* BeEmpty.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D4107A19475104B1EB2F9D8B9BB12749 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD69990709ED1315032AA1A075A30E4A /* Async.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D60A1EE9D24DFF74F1E920F68CFF749A /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0366B612A2ACEBDB6626EBF65E107253 /* URL+FileName.swift */; }; + D8B8FCEC597824B40986C8F4F7B50899 /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = E6B078FDEFF43D01A46CEC09B78FA029 /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D8C6C2FD9936FE5E3B7C39A95483313A /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54786640730EAADE6139B51A243CA4B7 /* ExampleGroup.swift */; }; + D8DA0BE3CDB09D6FF62E046CB57A0631 /* CachingPlayerItemConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5323A1F3FF3EF67020718D8186476E68 /* CachingPlayerItemConfiguration.swift */; }; + D94D321C599043FB86D4ED10F1AFB564 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = FECCD0DFA1B5AC88BE310179E43A5722 /* AllPass.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D9F430C02E1BE86A5D89AE25740870DF /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A81330D968B34C59FC40E730C91DA50 /* NMBObjCMatcher.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + DC267B5C6058DD95B0A10596561DD2CD /* QuickConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A1E6D0F0B64E0881BB387BFDBBAEDE64 /* QuickConfiguration.m */; }; + DD6DD40497DF10767F94B6B9AA0FD76E /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81545145A1C5A4394570ECEC1644AC94 /* DSL.swift */; }; + DE62DFE1CB1D278D6327FD732FCCC446 /* MediaFileHandle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C68FBC1B54CE7FD4707117033EC4A57 /* MediaFileHandle.swift */; }; + E1CD0FEF6BA86FA9C28038C818E2514A /* Quick.h in Headers */ = {isa = PBXBuildFile; fileRef = E0FE7DF20C0080F14BDF5F181BF2345F /* Quick.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E2EE2E7797C383576ACBFE4986179459 /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 68BC691C67B0A64F7510D5C6298F4A80 /* CwlMachBadInstructionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E511C6D8303FC4E7ABC7F8D33C19DF38 /* Pods-CachingPlayerItem_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CF1C6A9E80DE2E1C8426BA657C2EE62 /* Pods-CachingPlayerItem_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E8CD752EF080995577447A4761A9F923 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D419D9857BEDF4AABA8218936B3677E /* BeAnInstanceOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + E92B6C16F730A22BF5F6DC99835B718B /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E9D232917B7F9161AD32800BD7188F6 /* Errors.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + EA22ADD506007952F9890A93DF70E0DA /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7425C80AFE5874C82C321C25C8FD8E4E /* BeLessThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + EA4EC4B3853541FDC946239C036D12C9 /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = C234427DC01A4C983F67F5875E295B28 /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB892573E1CA332ED26DCC659406E79B /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E8072728FE77384B733518CEDD0A251 /* XCTest.framework */; }; + ECF4A70CCB729DD6CD8B814037BA7EE8 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = E5207C4D8365FB324A7064CEAED8E497 /* NMBExceptionCapture.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + ECFB15EC751302F529DA5D911EECB165 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB69E074D53782BE2F1E1AEC1CAA6797 /* NSBundle+CurrentTestBundle.swift */; }; + F1C5C1FB9845BCD95F196606849FBEAD /* SatisfyAllOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11CD7AC874836F8DA7EC88B0872CDBAE /* SatisfyAllOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + F34340E990EDAE6103B91695F1A5F527 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07B58265E7E51E07AFB8D2BD2A392369 /* BeIdenticalTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + F7B7A478EE19E86D35FA446398F9E136 /* CachingPlayerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FA217C8B7B74D1BBF43A5589957D076 /* CachingPlayerItem.swift */; }; + F7E32B0968669AF58CC182C6B96FD0A4 /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3107E43F634AF3B221072AD06EDC701 /* Closures.swift */; }; + F9C2B71231752C62A65D26FDCCC3BEBD /* Pods-CachingPlayerItem_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DA1CAF837E658527708A866443BF5F75 /* Pods-CachingPlayerItem_Tests-dummy.m */; }; + FA94BF94E57B46625F2F98E6D7C11E44 /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = 4C2D1D1C6474F27A8FCC8D6856C47704 /* mach_excServer.c */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + FB50301F3F0969845462C062D48A0B62 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4097A6637537D84D28A10721A2E7EC6 /* NMBExpectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + FC4F734925BC0EDDCD7C10AFBF93C576 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = FDB97E529E69C80140CF90C16575922D /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC9E5E03A90FEAD4AB11759F8AC2805E /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07FE7135B910B114C8F5096BEF6D8C97 /* Equal.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + FD9E22760E705E12B2AE9809647B1D77 /* CachingPlayerItem-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F156B3181CD0E5DC8ACC95A83C92F2AD /* CachingPlayerItem-dummy.m */; }; + FE67CE5AE4DFFE6B850FA43334EEBDC0 /* QuickObjCRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 917DABFABA971087CC881C67BBCB896A /* QuickObjCRuntime.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FF9E9BBB984E82DBD3AC0E8CC16C576F /* QCKDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = A789DFAD27D89A0DA5B60793DB255366 /* QCKDSL.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 77CAE1A76EA4E06A963D86F70F621602 /* PBXContainerItemProxy */ = { + 1ACC1BA57F973774C6062780B214DF5C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 6F13695E06195A78EA8A95F8C7ED0D2F; remoteInfo = Nimble; }; - 7FB4005ACAB84C6E94068608B33A388A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5AC845F8F60E6D74BC46BB3D65D32A0E; - remoteInfo = "Pods-CachingPlayerItem_Example"; - }; - 9A5394FB06CB1615C1202A902B58BA40 /* PBXContainerItemProxy */ = { + 39425A848F748EA7D7D419FB3C6CE9EB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = C82891EAB7293DBEE916B21F57E8474D; remoteInfo = Quick; }; - DD68FB7B60DB75A9BF6513323AFFB5EF /* PBXContainerItemProxy */ = { + 3C351EC6D0ABE01D1C48279BC37F04A0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 31D3DC3FCCAB0AB08B35437BFBC158AA; remoteInfo = CachingPlayerItem; }; + FDB07183ACB01D6CA4C481D0A7C01C83 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5AC845F8F60E6D74BC46BB3D65D32A0E; + remoteInfo = "Pods-CachingPlayerItem_Example"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 016E0198A5E10082DDE3AC936E35DC0C /* index.html */ = {isa = PBXFileReference; includeInIndex = 1; name = index.html; path = docs/index.html; sourceTree = ""; }; 02FC9FA72BA2A262A7E9F6D1DB32D272 /* Nimble.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Nimble.debug.xcconfig; sourceTree = ""; }; 030CD2D7B5E0A8B711B3F24711647E5D /* BeEmpty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeEmpty.swift; path = Sources/Nimble/Matchers/BeEmpty.swift; sourceTree = ""; }; 0366B612A2ACEBDB6626EBF65E107253 /* URL+FileName.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URL+FileName.swift"; path = "Sources/Quick/URL+FileName.swift"; sourceTree = ""; }; - 05BEC42558D09E109F1053573EDAA8C7 /* jazzy.search.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.search.js; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/js/jazzy.search.js; sourceTree = ""; }; + 03815C3F4FF4FEAA9B027B0CCAA34D4C /* typeahead.jquery.js */ = {isa = PBXFileReference; includeInIndex = 1; name = typeahead.jquery.js; path = docs/js/typeahead.jquery.js; sourceTree = ""; }; + 04C2A650CEC3F7C8C07073C51E8C022E /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; 062651C3F6E6E957970C0DA625AE1594 /* Quick-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Quick-prefix.pch"; sourceTree = ""; }; 07B58265E7E51E07AFB8D2BD2A392369 /* BeIdenticalTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeIdenticalTo.swift; path = Sources/Nimble/Matchers/BeIdenticalTo.swift; sourceTree = ""; }; 07FE7135B910B114C8F5096BEF6D8C97 /* Equal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Equal.swift; path = Sources/Nimble/Matchers/Equal.swift; sourceTree = ""; }; @@ -178,85 +182,81 @@ 086F10523AFF38648C15FCA6AA129C23 /* Stringers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Stringers.swift; path = Sources/Nimble/Utils/Stringers.swift; sourceTree = ""; }; 09731733D98B8FD7224447F776E75441 /* BeGreaterThanOrEqualTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeGreaterThanOrEqualTo.swift; path = Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift; sourceTree = ""; }; 0B0AADE582B5BD22FA91D3DAD8844B92 /* Expression.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Expression.swift; path = Sources/Nimble/Expression.swift; sourceTree = ""; }; - 0C2AD6664FADB2F28953FD60175B7233 /* CachingPlayerItem.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CachingPlayerItem.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 0D631E9908483F9525A6B3F36F16CC61 /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Quick.framework; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0D043E058C7E2F3121E2277329E4CC49 /* gh.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = gh.png; path = docs/img/gh.png; sourceTree = ""; }; + 0D631E9908483F9525A6B3F36F16CC61 /* Quick */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Quick; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 0DD3495984E50717EE5951C04EAFB788 /* Nimble-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-umbrella.h"; sourceTree = ""; }; + 0E09667A15A4D7B0BCB00291A4B2F90B /* ResourceLoaderDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResourceLoaderDelegate.swift; path = Source/ResourceLoaderDelegate.swift; sourceTree = ""; }; + 0E20C6EA08C2F5A5825834D7EDF503B2 /* CachingPlayerItemConfiguration.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItemConfiguration.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Enums/CachingPlayerItemConfiguration.html; sourceTree = ""; }; 1014F88FBB418E7E9B24F6C3E73E89DA /* ExampleMetadata.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleMetadata.swift; path = Sources/Quick/ExampleMetadata.swift; sourceTree = ""; }; 10C36E789BFF17B70EC945692C82D859 /* QuickSpecBase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QuickSpecBase.m; path = Sources/QuickObjCRuntime/QuickSpecBase.m; sourceTree = ""; }; - 118955FD689443374DEC9F8189C5BF2D /* jazzy.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.js; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/js/jazzy.js; sourceTree = ""; }; 11CD7AC874836F8DA7EC88B0872CDBAE /* SatisfyAllOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SatisfyAllOf.swift; path = Sources/Nimble/Matchers/SatisfyAllOf.swift; sourceTree = ""; }; 1209032F9B9026846B05C17994D723B3 /* SourceLocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SourceLocation.swift; path = Sources/Nimble/Utils/SourceLocation.swift; sourceTree = ""; }; 125B2DF909470F43204069C82BDDF9D2 /* Pods-CachingPlayerItem_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-CachingPlayerItem_Tests-acknowledgements.plist"; sourceTree = ""; }; - 146AD1D22FE345B647EDFFE402A1D1A7 /* CachingPlayerItem.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItem.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Classes/CachingPlayerItem.html; sourceTree = ""; }; - 14ACD1EC8658EB37B5C3F54F57DA149B /* CachingPlayerItem-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CachingPlayerItem-Info.plist"; sourceTree = ""; }; + 156AC5F5E22221B75F7943507B01E1A3 /* docSet.dsidx */ = {isa = PBXFileReference; includeInIndex = 1; name = docSet.dsidx; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/docSet.dsidx; sourceTree = ""; }; + 159FC1FB9B754E649EFF79954CFD7404 /* jazzy.search.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.search.js; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/js/jazzy.search.js; sourceTree = ""; }; 17550890BB023B26063ABDFE4B258145 /* SuiteHooks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SuiteHooks.swift; path = Sources/Quick/Hooks/SuiteHooks.swift; sourceTree = ""; }; + 18CF2373C52E966439C89CF2938EF628 /* CachingPlayerItem.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CachingPlayerItem.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 19A3558661CEF3BE87C498E32AEC3EB0 /* Expectation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Expectation.swift; path = Sources/Nimble/Expectation.swift; sourceTree = ""; }; 1A80B6F8B82934D9A77E355D2A690124 /* MatcherFunc.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatcherFunc.swift; path = Sources/Nimble/Matchers/MatcherFunc.swift; sourceTree = ""; }; 1B085943B46F49A20A9E6E3DE9F200FE /* NMBStringify.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NMBStringify.h; path = Sources/NimbleObjectiveC/NMBStringify.h; sourceTree = ""; }; - 1D8B3F39AC50E3956684B2C278412914 /* dash.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = dash.png; path = docs/img/dash.png; sourceTree = ""; }; - 20D83324A41F2F939E19372E6AD80488 /* Protocols.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Protocols.html; path = docs/Protocols.html; sourceTree = ""; }; + 1C6C5B765472E56811E1AE64255ED3E3 /* CachingPlayerItemDelegate.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItemDelegate.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Protocols/CachingPlayerItemDelegate.html; sourceTree = ""; }; + 1D4E5C97FDEF7F81E0ABC02DBC00A91D /* Protocols.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Protocols.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Protocols.html; sourceTree = ""; }; + 229B5EBF1D386F6C99A7C196B5A9636F /* URLResponseExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLResponseExtension.swift; path = Source/URLResponseExtension.swift; sourceTree = ""; }; + 2414F1BB4028A6549C914C13E986C23E /* jazzy.search.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.search.js; path = docs/js/jazzy.search.js; sourceTree = ""; }; 25030C0A2B44B4AFE6D77A9BAAF84088 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = Sources/Quick/Configuration/Configuration.swift; sourceTree = ""; }; - 275027C72249959419D8A217BA4D2ED3 /* highlight.css */ = {isa = PBXFileReference; includeInIndex = 1; name = highlight.css; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/css/highlight.css; sourceTree = ""; }; 28A8FC83ADFAB68A939D061B9DA7B2C3 /* NMBExceptionCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NMBExceptionCapture.h; path = Sources/NimbleObjectiveC/NMBExceptionCapture.h; sourceTree = ""; }; 2924BBEE0618BF7EC93C2C9016D0CCCA /* ThrowAssertion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThrowAssertion.swift; path = Sources/Nimble/Matchers/ThrowAssertion.swift; sourceTree = ""; }; - 2940B266F0F736CD7089ED1D7AA08228 /* gh.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = gh.png; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/img/gh.png; sourceTree = ""; }; - 2C684331832794725A6B326396680175 /* index.html */ = {isa = PBXFileReference; includeInIndex = 1; name = index.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/index.html; sourceTree = ""; }; + 29C5F1CE85DD3056C90D7387CC274FFA /* CachingPlayerItem-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CachingPlayerItem-umbrella.h"; sourceTree = ""; }; 2CF1C6A9E80DE2E1C8426BA657C2EE62 /* Pods-CachingPlayerItem_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-CachingPlayerItem_Tests-umbrella.h"; sourceTree = ""; }; + 2E5F8C0DE70B804AA52BFFF4E7013A3D /* undocumented.json */ = {isa = PBXFileReference; includeInIndex = 1; name = undocumented.json; path = docs/undocumented.json; sourceTree = ""; }; 32435C410D6166FD3FF1FF89804AE5BD /* Nimble.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Nimble.release.xcconfig; sourceTree = ""; }; 34EB35DAD99DC6416D4670B6D9793071 /* Pods-CachingPlayerItem_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-CachingPlayerItem_Example-acknowledgements.markdown"; sourceTree = ""; }; - 3865CFB2696EFCD1419295CEA9266165 /* CachingPlayerItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CachingPlayerItem.swift; path = Source/CachingPlayerItem.swift; sourceTree = ""; }; + 35D34979BDF953E2AEA691CFF13F6CFF /* Classes.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Classes.html; path = docs/Classes.html; sourceTree = ""; }; 39008AE1E1CAEB0064DAD5FE36764295 /* QCKDSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCKDSL.h; path = Sources/QuickObjectiveC/DSL/QCKDSL.h; sourceTree = ""; }; 3C881CEC84ECB068B626CA0243C89F5F /* Quick-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Quick-Info.plist"; sourceTree = ""; }; + 3F5A5A301DE18B78A12E6657F6A775B3 /* carat.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = carat.png; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/img/carat.png; sourceTree = ""; }; 3F792826C2A1DCA549A626F8B6BB9048 /* World.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = World.swift; path = Sources/Quick/World.swift; sourceTree = ""; }; + 3FA217C8B7B74D1BBF43A5589957D076 /* CachingPlayerItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CachingPlayerItem.swift; path = Source/CachingPlayerItem.swift; sourceTree = ""; }; 42246731B3D9A2B8790893EBBD465FFF /* AssertionRecorder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertionRecorder.swift; path = Sources/Nimble/Adapters/AssertionRecorder.swift; sourceTree = ""; }; 431CBAEE164D12511676DF2CA2E5F6E1 /* Equal+Tuple.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Equal+Tuple.swift"; path = "Sources/Nimble/Matchers/Equal+Tuple.swift"; sourceTree = ""; }; + 43C6055AB64B6ED187BFD2C321BB627F /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 446E947816F05791DB496C24CDC9B671 /* spinner.gif */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.gif; name = spinner.gif; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/img/spinner.gif; sourceTree = ""; }; 4533A88B2DE8230A61D3FE3F4CD5BC98 /* CwlMachBadInstructionHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CwlMachBadInstructionHandler.m; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/CwlMachBadInstructionHandler.m; sourceTree = ""; }; - 47CF46FC5720DB3A1D2D7A3D7DA2F18D /* jazzy.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.js; path = docs/js/jazzy.js; sourceTree = ""; }; 487FC1B156A23E9FE1FB704254E44A12 /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlDarwinDefinitions.swift; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlPreconditionTesting/CwlDarwinDefinitions.swift; sourceTree = ""; }; - 4892DCED314D87F4A1CBDF6420D2638A /* jazzy.search.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.search.js; path = docs/js/jazzy.search.js; sourceTree = ""; }; - 4A360A3DA5DB793AC9316482F5C408FF /* CachingPlayerItem.xml */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItem.xml; path = docs/docsets/CachingPlayerItem.xml; sourceTree = ""; }; 4A81330D968B34C59FC40E730C91DA50 /* NMBObjCMatcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NMBObjCMatcher.swift; path = Sources/Nimble/Adapters/NMBObjCMatcher.swift; sourceTree = ""; }; - 4BF14D07208604213EFC166E65E4946A /* dash.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = dash.png; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/img/dash.png; sourceTree = ""; }; 4C2D1D1C6474F27A8FCC8D6856C47704 /* mach_excServer.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mach_excServer.c; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/mach_excServer.c; sourceTree = ""; }; - 4EAC2E8EE8BAC03193BA61F457A434F0 /* CachingPlayerItem-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CachingPlayerItem-prefix.pch"; sourceTree = ""; }; - 51B371C9FDF13075E28623D73B8C0362 /* typeahead.jquery.js */ = {isa = PBXFileReference; includeInIndex = 1; name = typeahead.jquery.js; path = docs/js/typeahead.jquery.js; sourceTree = ""; }; 526F23A217BAB3DEF2E0200AF209EFA4 /* Pods-CachingPlayerItem_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CachingPlayerItem_Tests.release.xcconfig"; sourceTree = ""; }; + 5323A1F3FF3EF67020718D8186476E68 /* CachingPlayerItemConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CachingPlayerItemConfiguration.swift; path = Source/CachingPlayerItemConfiguration.swift; sourceTree = ""; }; + 545FF21489DED18DE9E66E5EAA000A39 /* jazzy.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.js; path = docs/js/jazzy.js; sourceTree = ""; }; 54786640730EAADE6139B51A243CA4B7 /* ExampleGroup.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleGroup.swift; path = Sources/Quick/ExampleGroup.swift; sourceTree = ""; }; 562743D3E3D9A1D90630F55105FC503E /* Pods-CachingPlayerItem_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-CachingPlayerItem_Tests-Info.plist"; sourceTree = ""; }; - 56B5F6B5DD27BA6B01DFC92D9A26E2C7 /* carat.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = carat.png; path = docs/img/carat.png; sourceTree = ""; }; 5700BD6275F82CB443901CE97C7FBFE2 /* Callsite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Callsite.swift; path = Sources/Quick/Callsite.swift; sourceTree = ""; }; 57DCB0505A6CCEBDFBAB00473DC7CE5A /* Pods-CachingPlayerItem_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CachingPlayerItem_Example.debug.xcconfig"; sourceTree = ""; }; 5898400AEF7989EB1C4B445B05061557 /* BeLogical.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLogical.swift; path = Sources/Nimble/Matchers/BeLogical.swift; sourceTree = ""; }; 599A5A20097CA4DD27ECE4579DDE32BD /* HooksPhase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HooksPhase.swift; path = Sources/Quick/Hooks/HooksPhase.swift; sourceTree = ""; }; + 5D1EFD79C9EE09F6730B10071CE6F371 /* CachingPlayerItemConfiguration.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItemConfiguration.html; path = docs/Enums/CachingPlayerItemConfiguration.html; sourceTree = ""; }; 5E3A948374B447E80B3F7A9D1BB3866D /* Pods-CachingPlayerItem_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CachingPlayerItem_Example-frameworks.sh"; sourceTree = ""; }; 5E79BFE04E48F6AC4C63F2B0CAF4E210 /* ElementsEqual.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ElementsEqual.swift; path = Sources/Nimble/Matchers/ElementsEqual.swift; sourceTree = ""; }; 5E9D232917B7F9161AD32800BD7188F6 /* Errors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Errors.swift; path = Sources/Nimble/Utils/Errors.swift; sourceTree = ""; }; 5F536E8B1B6F8B075512829536DE9634 /* Pods-CachingPlayerItem_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CachingPlayerItem_Tests-frameworks.sh"; sourceTree = ""; }; 5FDF855D797FF314FA501247ABF1FEC7 /* QuickTestObservation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickTestObservation.swift; path = Sources/Quick/QuickTestObservation.swift; sourceTree = ""; }; - 62243388BD2CDBA0C9E1E84E4EC3C0E3 /* Pods_CachingPlayerItem_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_CachingPlayerItem_Example.framework; path = "Pods-CachingPlayerItem_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 62243388BD2CDBA0C9E1E84E4EC3C0E3 /* Pods-CachingPlayerItem_Example */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-CachingPlayerItem_Example"; path = Pods_CachingPlayerItem_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 641D4B5D91824160AD2BBD088B2CBE0F /* Pods-CachingPlayerItem_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-CachingPlayerItem_Example-acknowledgements.plist"; sourceTree = ""; }; 6645CB0EA61CF61654A6456C637CC905 /* Nimble-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-prefix.pch"; sourceTree = ""; }; 68BC691C67B0A64F7510D5C6298F4A80 /* CwlMachBadInstructionHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CwlMachBadInstructionHandler.h; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include/CwlMachBadInstructionHandler.h; sourceTree = ""; }; + 695D74EA6ECB5940111C2173CF5DED4E /* CachingPlayerItem.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CachingPlayerItem.release.xcconfig; sourceTree = ""; }; 6971FF4FC2D354A79275D7A0E176A2EC /* Await.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Await.swift; path = Sources/Nimble/Utils/Await.swift; sourceTree = ""; }; 6B7283F4C347135472840AFDA74C4E5A /* PostNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PostNotification.swift; path = Sources/Nimble/Matchers/PostNotification.swift; sourceTree = ""; }; - 6BA262CA189C5168CBA4E7B07785E3AB /* lunr.min.js */ = {isa = PBXFileReference; includeInIndex = 1; name = lunr.min.js; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/js/lunr.min.js; sourceTree = ""; }; - 6C97B1568903532595E13D3003B393E5 /* spinner.gif */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.gif; name = spinner.gif; path = docs/img/spinner.gif; sourceTree = ""; }; + 6D61EBE42044E38BD85497E90BB54A7F /* CachingPlayerItem-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CachingPlayerItem-Info.plist"; sourceTree = ""; }; 6E8072728FE77384B733518CEDD0A251 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - 6EF9C32C7E5E7F31C003165D488C38A4 /* Classes.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Classes.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Classes.html; sourceTree = ""; }; - 6F6143C60E17F82DE4AB560DA2CA9F39 /* CachingPlayerItem-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CachingPlayerItem-umbrella.h"; sourceTree = ""; }; 6FD90DC04A8EE437DF70BED5C4A8D946 /* DSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DSL.m; path = Sources/NimbleObjectiveC/DSL.m; sourceTree = ""; }; - 7150299CF04EB691610A6BFA5C5B5A84 /* typeahead.jquery.js */ = {isa = PBXFileReference; includeInIndex = 1; name = typeahead.jquery.js; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/js/typeahead.jquery.js; sourceTree = ""; }; - 72686393E4ECEA1DF64E731A09447E59 /* badge.svg */ = {isa = PBXFileReference; includeInIndex = 1; name = badge.svg; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/badge.svg; sourceTree = ""; }; 73141CA135219B195CA9C9BBE8BC38E0 /* NimbleXCTestHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NimbleXCTestHandler.swift; path = Sources/Nimble/Adapters/NimbleXCTestHandler.swift; sourceTree = ""; }; + 7390B7D430CABCF3DF4A052537023090 /* Enums.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Enums.html; path = docs/Enums.html; sourceTree = ""; }; + 73CFE270D172038A1CE837A933EC1581 /* CachingPlayerItem.xml */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItem.xml; path = docs/docsets/CachingPlayerItem.xml; sourceTree = ""; }; 7425C80AFE5874C82C321C25C8FD8E4E /* BeLessThan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLessThan.swift; path = Sources/Nimble/Matchers/BeLessThan.swift; sourceTree = ""; }; 74452D1F0621AC9F56C720D50841B6E6 /* Pods-CachingPlayerItem_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-CachingPlayerItem_Example.modulemap"; sourceTree = ""; }; - 74B5A9E9E795512FC43E08E1C0AE0F19 /* undocumented.json */ = {isa = PBXFileReference; includeInIndex = 1; name = undocumented.json; path = docs/undocumented.json; sourceTree = ""; }; - 74F220C3EC797FC96D409B05EA3C0753 /* CachingPlayerItem.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItem.html; path = docs/Classes/CachingPlayerItem.html; sourceTree = ""; }; 75423B81B53812C99CD2B45F03DB3037 /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SatisfyAnyOf.swift; path = Sources/Nimble/Matchers/SatisfyAnyOf.swift; sourceTree = ""; }; 757BAF37999C9047D1AE2770EE6A4A6E /* QuickSelectedTestSuiteBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickSelectedTestSuiteBuilder.swift; path = Sources/Quick/QuickSelectedTestSuiteBuilder.swift; sourceTree = ""; }; - 76079078982B1C544240D04EBDC6E9B9 /* CachingPlayerItem.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CachingPlayerItem.modulemap; sourceTree = ""; }; - 7765C22735D07FF463480F6920359A6D /* jquery.min.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jquery.min.js; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/js/jquery.min.js; sourceTree = ""; }; - 78D6072B965CF4CA4131BEFC79001EA1 /* badge.svg */ = {isa = PBXFileReference; includeInIndex = 1; name = badge.svg; path = docs/badge.svg; sourceTree = ""; }; 791E6CD5C8804BBD715C9D08D4BEC854 /* BeNil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeNil.swift; path = Sources/Nimble/Matchers/BeNil.swift; sourceTree = ""; }; 7981FC6993399F6CC88288632463A471 /* Quick.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Quick.debug.xcconfig; sourceTree = ""; }; 7984E2929E13FE9962030FA664F09CB2 /* BeVoid.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeVoid.swift; path = Sources/Nimble/Matchers/BeVoid.swift; sourceTree = ""; }; @@ -266,41 +266,53 @@ 7C572C7D93AF0E9B50A517675CD4D665 /* QuickSpec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QuickSpec.m; path = Sources/QuickObjectiveC/QuickSpec.m; sourceTree = ""; }; 7D9304D037786B05B215A100D854D943 /* MatcherProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatcherProtocols.swift; path = Sources/Nimble/Matchers/MatcherProtocols.swift; sourceTree = ""; }; 7E30B4EFCE7868E0DBE8E364AD275301 /* MatchError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatchError.swift; path = Sources/Nimble/Matchers/MatchError.swift; sourceTree = ""; }; - 7EA3A163609A6033FBE5FAC31D269757 /* search.json */ = {isa = PBXFileReference; includeInIndex = 1; name = search.json; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/search.json; sourceTree = ""; }; - 7EE23345A3A3EE8C3D49CC21489331C2 /* CachingPlayerItemConfiguration.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItemConfiguration.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Enums/CachingPlayerItemConfiguration.html; sourceTree = ""; }; + 7E8436A04E894A216301DB82D7D38F76 /* PendingRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PendingRequest.swift; path = Source/PendingRequest.swift; sourceTree = ""; }; + 8017B53F08579D8F8CF9DE758B249C94 /* lunr.min.js */ = {isa = PBXFileReference; includeInIndex = 1; name = lunr.min.js; path = docs/js/lunr.min.js; sourceTree = ""; }; 802103650A4E5841D47428C4B297B890 /* BeginWithPrefix.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeginWithPrefix.swift; path = Sources/Nimble/Matchers/BeginWithPrefix.swift; sourceTree = ""; }; - 813E4788633E66F6F7F13528DD23DC82 /* CachingPlayerItemConfiguration.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItemConfiguration.html; path = docs/Enums/CachingPlayerItemConfiguration.html; sourceTree = ""; }; 81545145A1C5A4394570ECEC1644AC94 /* DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DSL.swift; path = Sources/Quick/DSL/DSL.swift; sourceTree = ""; }; 817BE9A694522F7F4026799121CBA1C7 /* NMBStringify.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NMBStringify.m; path = Sources/NimbleObjectiveC/NMBStringify.m; sourceTree = ""; }; + 839B7842AF466C44EE21305DC8AEE5B4 /* dash.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = dash.png; path = docs/img/dash.png; sourceTree = ""; }; 8599C685A6E9088137A44D9BD36F320D /* DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DSL.swift; path = Sources/Nimble/DSL.swift; sourceTree = ""; }; + 85AEF502DC7D9BAE4A095F7FAEFE98CB /* CachingPlayerItemDelegate.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItemDelegate.html; path = docs/Protocols/CachingPlayerItemDelegate.html; sourceTree = ""; }; 85BB1858F6652DC026D80938BD29DD97 /* DispatchTimeInterval.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DispatchTimeInterval.swift; path = Sources/Nimble/Utils/DispatchTimeInterval.swift; sourceTree = ""; }; + 870F30730EB667E726F5A61070D42DED /* jazzy.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.js; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/js/jazzy.js; sourceTree = ""; }; 87A99AE39108DEFB24B13DDF873EAD04 /* Pods-CachingPlayerItem_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-CachingPlayerItem_Example-umbrella.h"; sourceTree = ""; }; - 8829476925A7F294846EF5B066CB6E9D /* Enums.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Enums.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Enums.html; sourceTree = ""; }; - 88325C32F6DB93824D08B6BDCC875919 /* CachingPlayerItem.tgz */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItem.tgz; path = docs/docsets/CachingPlayerItem.tgz; sourceTree = ""; }; - 8835FAAA9C95CFC30BC0ADF84F16A300 /* Protocols.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Protocols.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Protocols.html; sourceTree = ""; }; - 8A6231DC8C4D8B744E89BA96003682AB /* CachingPlayerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CachingPlayerItem.framework; path = CachingPlayerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8A6231DC8C4D8B744E89BA96003682AB /* CachingPlayerItem */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CachingPlayerItem; path = CachingPlayerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8C0D0AEDA64D57A4828E5410426E054A /* CachingPlayerItem.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItem.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Classes/CachingPlayerItem.html; sourceTree = ""; }; + 8C5ADEF5FA07E5FF2902FABB11613553 /* jazzy.css */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.css; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/css/jazzy.css; sourceTree = ""; }; 8D419D9857BEDF4AABA8218936B3677E /* BeAnInstanceOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeAnInstanceOf.swift; path = Sources/Nimble/Matchers/BeAnInstanceOf.swift; sourceTree = ""; }; - 8D7C66D9176F42A7E228F4A0F27E961D /* CachingPlayerItemDelegate.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItemDelegate.html; path = docs/Protocols/CachingPlayerItemDelegate.html; sourceTree = ""; }; - 8E22DA3DE43CC94BD1147CD41310CD26 /* undocumented.json */ = {isa = PBXFileReference; includeInIndex = 1; name = undocumented.json; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/undocumented.json; sourceTree = ""; }; + 8E71C2BD6B54978615CC489DF0FE9B49 /* Enums.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Enums.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Enums.html; sourceTree = ""; }; 8FD76FF5D5F3AC8A3C06A6D3409E3405 /* Quick.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Quick.modulemap; sourceTree = ""; }; + 902575D2A2273F1BD5597F9D45DBF2E9 /* search.json */ = {isa = PBXFileReference; includeInIndex = 1; name = search.json; path = docs/search.json; sourceTree = ""; }; 90A8B866BF1B5741F3E8FDA8E728708F /* World+DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "World+DSL.swift"; path = "Sources/Quick/DSL/World+DSL.swift"; sourceTree = ""; }; 917DABFABA971087CC881C67BBCB896A /* QuickObjCRuntime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickObjCRuntime.h; path = Sources/QuickObjCRuntime/include/QuickObjCRuntime.h; sourceTree = ""; }; 92908130014A01F433AEE156BE66A71F /* Quick.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Quick.release.xcconfig; sourceTree = ""; }; + 92CF74B88D7D7725C841CF8296D26FE9 /* carat.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = carat.png; path = docs/img/carat.png; sourceTree = ""; }; + 94AE75A6F682EED2CE2ECA413E5E0470 /* jquery.min.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jquery.min.js; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/js/jquery.min.js; sourceTree = ""; }; + 95EC99F6D3C6AE6259FD85A5DA8ED37E /* Classes.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Classes.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Classes.html; sourceTree = ""; }; 96F8F92D4F337391CA98495AED7459FB /* BeAKindOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeAKindOf.swift; path = Sources/Nimble/Matchers/BeAKindOf.swift; sourceTree = ""; }; 9817083983497DB3ED6001E3E97533CB /* BeGreaterThan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeGreaterThan.swift; path = Sources/Nimble/Matchers/BeGreaterThan.swift; sourceTree = ""; }; 98AD1D4272540420383C7922F88E000E /* Nimble-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Nimble-Info.plist"; sourceTree = ""; }; + 99A605112D6BE27460B7C6BEA7B9743F /* badge.svg */ = {isa = PBXFileReference; includeInIndex = 1; name = badge.svg; path = docs/badge.svg; sourceTree = ""; }; + 9ADCBBAF527F96805FEF4F8625434DDD /* gh.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = gh.png; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/img/gh.png; sourceTree = ""; }; + 9C68FBC1B54CE7FD4707117033EC4A57 /* MediaFileHandle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MediaFileHandle.swift; path = Source/MediaFileHandle.swift; sourceTree = ""; }; 9D15EF8C7C7594AC82B69F0F3FA47A83 /* Pods-CachingPlayerItem_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-CachingPlayerItem_Tests-acknowledgements.markdown"; sourceTree = ""; }; - 9D2329236D787235A5653D38E8B2060A /* URLExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLExtension.swift; path = Source/URLExtension.swift; sourceTree = ""; }; 9D790CFC0DD27CF5E3726D13716B8457 /* String+C99ExtendedIdentifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+C99ExtendedIdentifier.swift"; path = "Sources/Quick/String+C99ExtendedIdentifier.swift"; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9EC7E13BD2610A605101FF375E54A590 /* spinner.gif */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.gif; name = spinner.gif; path = docs/img/spinner.gif; sourceTree = ""; }; + 9F247FAF3E0C7C8EAA733E942B05FC40 /* index.html */ = {isa = PBXFileReference; includeInIndex = 1; name = index.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/index.html; sourceTree = ""; }; + 9F5516A254FFF76EADBA5993E24EFFF3 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = docs/docsets/CachingPlayerItem.docset/Contents/Info.plist; sourceTree = ""; }; + A0C7939CCB907112F0610578D9B604E1 /* CachingPlayerItem.tgz */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItem.tgz; path = docs/docsets/CachingPlayerItem.tgz; sourceTree = ""; }; A1E6D0F0B64E0881BB387BFDBBAEDE64 /* QuickConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QuickConfiguration.m; path = Sources/QuickObjectiveC/Configuration/QuickConfiguration.m; sourceTree = ""; }; A4B06D0635479264C16188B060A5FF26 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; A565AB2A63D27ACF855DE572A8749763 /* Nimble-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Nimble-dummy.m"; sourceTree = ""; }; - A577961BE492D9146722192CC9E5270F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = Info.plist; path = docs/docsets/CachingPlayerItem.docset/Contents/Info.plist; sourceTree = ""; }; - A6AB8723F0A03375BF129CEA43D8293C /* search.json */ = {isa = PBXFileReference; includeInIndex = 1; name = search.json; path = docs/search.json; sourceTree = ""; }; + A774D5810041BA3B1219E09030710A8D /* Protocols.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Protocols.html; path = docs/Protocols.html; sourceTree = ""; }; A789DFAD27D89A0DA5B60793DB255366 /* QCKDSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCKDSL.m; path = Sources/QuickObjectiveC/DSL/QCKDSL.m; sourceTree = ""; }; + A8ABEE1126550074D499CD149FE2594E /* lunr.min.js */ = {isa = PBXFileReference; includeInIndex = 1; name = lunr.min.js; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/js/lunr.min.js; sourceTree = ""; }; A93FF845443E835A464CC0A55B6A3DD1 /* Nimble.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Nimble.modulemap; sourceTree = ""; }; - AA8FB5C3C35312AD587DBD03732DF917 /* Pods_CachingPlayerItem_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_CachingPlayerItem_Tests.framework; path = "Pods-CachingPlayerItem_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + A99C103BA9347FB7991F9BDE493E82A0 /* search.json */ = {isa = PBXFileReference; includeInIndex = 1; name = search.json; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/search.json; sourceTree = ""; }; + AA8FB5C3C35312AD587DBD03732DF917 /* Pods-CachingPlayerItem_Tests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-CachingPlayerItem_Tests"; path = Pods_CachingPlayerItem_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + ABCF9F9221FB774A86457A979A3E2547 /* CachingPlayerItem.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CachingPlayerItem.debug.xcconfig; sourceTree = ""; }; ACA8E066CB31D5BC83F54CCFE6CFD9B8 /* BeCloseTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeCloseTo.swift; path = Sources/Nimble/Matchers/BeCloseTo.swift; sourceTree = ""; }; ACCFB9311ED98345A6282A28A6CFAD83 /* AssertionDispatcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertionDispatcher.swift; path = Sources/Nimble/Adapters/AssertionDispatcher.swift; sourceTree = ""; }; ADA676B386635A5851AD41777A665907 /* BeginWith.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeginWith.swift; path = Sources/Nimble/Matchers/BeginWith.swift; sourceTree = ""; }; @@ -308,113 +320,105 @@ B25751F36800946C1A1A22406B3596FE /* ToSucceed.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToSucceed.swift; path = Sources/Nimble/Matchers/ToSucceed.swift; sourceTree = ""; }; B3A6C6DA8267274529580FC6BB388664 /* AdapterProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AdapterProtocols.swift; path = Sources/Nimble/Adapters/AdapterProtocols.swift; sourceTree = ""; }; B5912F55BE3AA373DBEF439FEAE802EC /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchBadInstruction.swift; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlPreconditionTesting/CwlCatchBadInstruction.swift; sourceTree = ""; }; - B6C18EAFD70D2C4DC1F64FAAF29C741F /* gh.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = gh.png; path = docs/img/gh.png; sourceTree = ""; }; B778739B132B4FEC875F9615ED37CAEA /* Nimble.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Nimble.h; path = Sources/Nimble/Nimble.h; sourceTree = ""; }; B9973833824E7ED01540C73DCB2C1247 /* Quick-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Quick-dummy.m"; sourceTree = ""; }; - BAE263041362D074978BB3B577DF0A05 /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Nimble.framework; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BAE263041362D074978BB3B577DF0A05 /* Nimble */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Nimble; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BB2DD27CB90704924D6D50162205BD97 /* ExpectationMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpectationMessage.swift; path = Sources/Nimble/ExpectationMessage.swift; sourceTree = ""; }; - BC493B2D615028A11E79FA5DF0FB1116 /* highlight.css */ = {isa = PBXFileReference; includeInIndex = 1; name = highlight.css; path = docs/css/highlight.css; sourceTree = ""; }; - BDADED2F87E6C7DA6E219C1DD57353A4 /* carat.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = carat.png; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/img/carat.png; sourceTree = ""; }; - BDEA4455F6F9DEDF3A62C17A3838ADD9 /* jquery.min.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jquery.min.js; path = docs/js/jquery.min.js; sourceTree = ""; }; BEE0135D5FDA5A4415EADADB336B9246 /* FailureMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FailureMessage.swift; path = Sources/Nimble/FailureMessage.swift; sourceTree = ""; }; - C05B94D10E412D664713B4B9BEA23A5B /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; C0EE0182653D00926C08100E31BD3795 /* Filter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Filter.swift; path = Sources/Quick/Filter.swift; sourceTree = ""; }; C234427DC01A4C983F67F5875E295B28 /* CwlCatchException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CwlCatchException.h; path = Carthage/Checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include/CwlCatchException.h; sourceTree = ""; }; C2A45AD34C96D97DAAC4C22F198A6E04 /* Pods-CachingPlayerItem_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CachingPlayerItem_Example.release.xcconfig"; sourceTree = ""; }; C3107E43F634AF3B221072AD06EDC701 /* Closures.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Closures.swift; path = Sources/Quick/Hooks/Closures.swift; sourceTree = ""; }; C3862A4029F0AE7BD5D04E22605C911F /* ExampleHooks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleHooks.swift; path = Sources/Quick/Hooks/ExampleHooks.swift; sourceTree = ""; }; C398A9D17862A4A4F45ADB5FA7444E92 /* EndWith.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EndWith.swift; path = Sources/Nimble/Matchers/EndWith.swift; sourceTree = ""; }; - C56D6F310AC1B803DD8342372DCC6B11 /* CachingPlayerItemConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CachingPlayerItemConfiguration.swift; path = Source/CachingPlayerItemConfiguration.swift; sourceTree = ""; }; - C7B72F1BA638F523413E75B9EEEE182E /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + C59C073D14A969AF2E18E3F940957ED0 /* CachingPlayerItem.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItem.html; path = docs/Classes/CachingPlayerItem.html; sourceTree = ""; }; + C5BCEB4BB9C7DF06A593DBC787711907 /* badge.svg */ = {isa = PBXFileReference; includeInIndex = 1; name = badge.svg; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/badge.svg; sourceTree = ""; }; C7C643B9B6D0B0B30694D696BE857EF5 /* Pods-CachingPlayerItem_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-CachingPlayerItem_Example-Info.plist"; sourceTree = ""; }; + C7D433B61C4B1B475C9DE7CBBF0FE005 /* highlight.css */ = {isa = PBXFileReference; includeInIndex = 1; name = highlight.css; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/css/highlight.css; sourceTree = ""; }; + C7E573F79063955500D72EFF1AC8E8E7 /* typeahead.jquery.js */ = {isa = PBXFileReference; includeInIndex = 1; name = typeahead.jquery.js; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/js/typeahead.jquery.js; sourceTree = ""; }; C9F5C65CA8F308F74190933D608601A6 /* CwlCatchException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CwlCatchException.m; path = Carthage/Checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/CwlCatchException.m; sourceTree = ""; }; CB3DC3139A1280CF034113B965D1A718 /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlBadInstructionException.swift; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlPreconditionTesting/CwlBadInstructionException.swift; sourceTree = ""; }; D1CA7814D47356EA90B9ECB4FDB3F859 /* NimbleEnvironment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NimbleEnvironment.swift; path = Sources/Nimble/Adapters/NimbleEnvironment.swift; sourceTree = ""; }; D23387148BE56CC3EB877BEE9F509DA9 /* DSL+Wait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DSL+Wait.swift"; path = "Sources/Nimble/DSL+Wait.swift"; sourceTree = ""; }; D2CC867E16210A5E3628561E0E52DAED /* Example.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Example.swift; path = Sources/Quick/Example.swift; sourceTree = ""; }; D3710DDE0AB41CE30DE32403A6662103 /* Pods-CachingPlayerItem_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-CachingPlayerItem_Tests.modulemap"; sourceTree = ""; }; - D60583ADCA7D54C1A507E505607375D8 /* spinner.gif */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.gif; name = spinner.gif; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/img/spinner.gif; sourceTree = ""; }; + D7339A5A1CCC17169336D1D60EB2FEC4 /* undocumented.json */ = {isa = PBXFileReference; includeInIndex = 1; name = undocumented.json; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/undocumented.json; sourceTree = ""; }; D864B01792C2475774D9271679F17B9A /* QuickConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickConfiguration.swift; path = Sources/Quick/Configuration/QuickConfiguration.swift; sourceTree = ""; }; D8DC6582D12740E1319D8EDA1EE01495 /* Pods-CachingPlayerItem_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CachingPlayerItem_Tests.debug.xcconfig"; sourceTree = ""; }; DA1CAF837E658527708A866443BF5F75 /* Pods-CachingPlayerItem_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-CachingPlayerItem_Tests-dummy.m"; sourceTree = ""; }; DBCE4BA046CAEB42619707DBED53725C /* XCTestSuite+QuickTestSuiteBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestSuite+QuickTestSuiteBuilder.m"; path = "Sources/QuickObjectiveC/XCTestSuite+QuickTestSuiteBuilder.m"; sourceTree = ""; }; - DD389C65BA056F5256FF2DF432AD5E47 /* Classes.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Classes.html; path = docs/Classes.html; sourceTree = ""; }; - DF9F1F48C5FAA3EDE19E0743CC822906 /* MediaFileHandle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MediaFileHandle.swift; path = Source/MediaFileHandle.swift; sourceTree = ""; }; + E07243BC9819D047B47B279ABC20E80F /* jquery.min.js */ = {isa = PBXFileReference; includeInIndex = 1; name = jquery.min.js; path = docs/js/jquery.min.js; sourceTree = ""; }; E0FE7DF20C0080F14BDF5F181BF2345F /* Quick.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Quick.h; path = Sources/QuickObjectiveC/Quick.h; sourceTree = ""; }; - E2FC18655E1BBFB9C9F5D12662EDD26B /* CachingPlayerItem-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CachingPlayerItem-dummy.m"; sourceTree = ""; }; + E12E1CBA9A786855CE4A5EF87AE72907 /* URLExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLExtension.swift; path = Source/URLExtension.swift; sourceTree = ""; }; E4097A6637537D84D28A10721A2E7EC6 /* NMBExpectation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NMBExpectation.swift; path = Sources/Nimble/Adapters/NMBExpectation.swift; sourceTree = ""; }; E44D64C97F0EB045C86340CAD74FF65D /* CwlCatchException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchException.swift; path = Carthage/Checkouts/CwlCatchException/Sources/CwlCatchException/CwlCatchException.swift; sourceTree = ""; }; E5207C4D8365FB324A7064CEAED8E497 /* NMBExceptionCapture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NMBExceptionCapture.m; path = Sources/NimbleObjectiveC/NMBExceptionCapture.m; sourceTree = ""; }; + E5CC29C30550DF79AF50585D0382D8F7 /* CachingPlayerItem-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CachingPlayerItem-prefix.pch"; sourceTree = ""; }; E6B078FDEFF43D01A46CEC09B78FA029 /* QuickSpec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickSpec.h; path = Sources/QuickObjectiveC/QuickSpec.h; sourceTree = ""; }; - E73AB33A9886DC9C8907489BF3BC5DEB /* CachingPlayerItemDelegate.html */ = {isa = PBXFileReference; includeInIndex = 1; name = CachingPlayerItemDelegate.html; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Protocols/CachingPlayerItemDelegate.html; sourceTree = ""; }; E762B92915992D34CF1197690DD6C504 /* ErrorUtility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorUtility.swift; path = Sources/Quick/ErrorUtility.swift; sourceTree = ""; }; - E777A5333860FDF20626753EDA5B8AD4 /* lunr.min.js */ = {isa = PBXFileReference; includeInIndex = 1; name = lunr.min.js; path = docs/js/lunr.min.js; sourceTree = ""; }; E7CAC455B538657F71487C6E76079952 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; }; EA20C87137C7C7A9356234D9535104D4 /* QuickConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickConfiguration.h; path = Sources/QuickObjectiveC/Configuration/QuickConfiguration.h; sourceTree = ""; }; EB293BEEC38AC66C26BFE450BF27D14F /* ContainElementSatisfying.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContainElementSatisfying.swift; path = Sources/Nimble/Matchers/ContainElementSatisfying.swift; sourceTree = ""; }; EC7C9BFBE17C3F91CEB7AEF368D4BF50 /* Behavior.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Behavior.swift; path = Sources/Quick/Behavior.swift; sourceTree = ""; }; ED05FA78925BC3E8E8D05CC3D3321291 /* Quick-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Quick-umbrella.h"; sourceTree = ""; }; - EE7FE3131B02AAB4923BF277BC850C40 /* Enums.html */ = {isa = PBXFileReference; includeInIndex = 1; name = Enums.html; path = docs/Enums.html; sourceTree = ""; }; EEB539966A7AFD5CB6811DAA9B761F1B /* Contain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Contain.swift; path = Sources/Nimble/Matchers/Contain.swift; sourceTree = ""; }; F01872A5724C80F9F66F85BE505EF41E /* BeLessThanOrEqual.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLessThanOrEqual.swift; path = Sources/Nimble/Matchers/BeLessThanOrEqual.swift; sourceTree = ""; }; F0CC2D566D5FDF7981081C8C4D3648C2 /* HaveCount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HaveCount.swift; path = Sources/Nimble/Matchers/HaveCount.swift; sourceTree = ""; }; - F1D051874A74B26F59B21617F4202393 /* CachingPlayerItem.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CachingPlayerItem.release.xcconfig; sourceTree = ""; }; - F40E8791068366DED4417AF7CA23A37B /* docSet.dsidx */ = {isa = PBXFileReference; includeInIndex = 1; name = docSet.dsidx; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/docSet.dsidx; sourceTree = ""; }; - F83C0C77B28C9882573D3C571A489C84 /* jazzy.css */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.css; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/css/jazzy.css; sourceTree = ""; }; + F156B3181CD0E5DC8ACC95A83C92F2AD /* CachingPlayerItem-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CachingPlayerItem-dummy.m"; sourceTree = ""; }; + F32A96986A3838AE8630007833312752 /* highlight.css */ = {isa = PBXFileReference; includeInIndex = 1; name = highlight.css; path = docs/css/highlight.css; sourceTree = ""; }; + F58D0F50B975339DA587469A4BF21B9D /* jazzy.css */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.css; path = docs/css/jazzy.css; sourceTree = ""; }; + F5DEBD2173B13825BB3062C09E7706FD /* CachingPlayerItem.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CachingPlayerItem.modulemap; sourceTree = ""; }; FB69E074D53782BE2F1E1AEC1CAA6797 /* NSBundle+CurrentTestBundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSBundle+CurrentTestBundle.swift"; path = "Sources/Quick/NSBundle+CurrentTestBundle.swift"; sourceTree = ""; }; + FBFAB3BA37F44CE62D4128B92CAF480F /* dash.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = dash.png; path = docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/img/dash.png; sourceTree = ""; }; FCA2F2ED2C8A41C278097D187DEBE989 /* QuickSpecBase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickSpecBase.h; path = Sources/QuickObjCRuntime/include/QuickSpecBase.h; sourceTree = ""; }; FD192718D9180DF715E2B12BD4F99324 /* ThrowError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThrowError.swift; path = Sources/Nimble/Matchers/ThrowError.swift; sourceTree = ""; }; FD69990709ED1315032AA1A075A30E4A /* Async.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Async.swift; path = Sources/Nimble/Matchers/Async.swift; sourceTree = ""; }; - FDB248F1686720332ACF9DA3B8BDBE56 /* ResourceLoaderDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResourceLoaderDelegate.swift; path = Source/ResourceLoaderDelegate.swift; sourceTree = ""; }; FDB97E529E69C80140CF90C16575922D /* DSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DSL.h; path = Sources/NimbleObjectiveC/DSL.h; sourceTree = ""; }; FE05B0AC3FA989A47A0C2BCE00A237B9 /* Predicate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Predicate.swift; path = Sources/Nimble/Matchers/Predicate.swift; sourceTree = ""; }; FE5808B9A93D2F619B1FB8E6A7D46F1C /* RaisesException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RaisesException.swift; path = Sources/Nimble/Matchers/RaisesException.swift; sourceTree = ""; }; - FE8FD6AAE9C4AD9074B8ADD2754D27CC /* index.html */ = {isa = PBXFileReference; includeInIndex = 1; name = index.html; path = docs/index.html; sourceTree = ""; }; FECCD0DFA1B5AC88BE310179E43A5722 /* AllPass.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AllPass.swift; path = Sources/Nimble/Matchers/AllPass.swift; sourceTree = ""; }; - FF180E81D5CF3A1CADCD92FBD47F4C04 /* CachingPlayerItem.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CachingPlayerItem.debug.xcconfig; sourceTree = ""; }; - FFD2C8DDA689C15B9964A6BA2B91BCBF /* jazzy.css */ = {isa = PBXFileReference; includeInIndex = 1; name = jazzy.css; path = docs/css/jazzy.css; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 4853A8C7A32A790DB757E346C6CB301D /* Frameworks */ = { + 813AFD27AA5CD06136C71E541DBC0CB9 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D392F6B2FA170B0C80F8ACE74BD724C9 /* Foundation.framework in Frameworks */, + A53B2E144B6A63C518FD4927293A8050 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 56EE85A37984AD896C58BAEDEF6835BC /* Frameworks */ = { + BC9D1F04E97B92FC4289866ECD95C882 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D5F9007B27D8A964A59DEF1B1FF9836C /* AVFoundation.framework in Frameworks */, - EC614D9F4E90768EDAD8867FDF1AA3DF /* Foundation.framework in Frameworks */, + 7D54398DC6FEA5F878EB3DA9B82BCEE4 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 697CF14C36D1C959756A9A1B4A89553D /* Frameworks */ = { + C2A7B137F2D481B88E9609B979BE6AFE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 610CEB4BDE1C763C5CA2025801FA6C19 /* Foundation.framework in Frameworks */, + 7981FCF6822DE2547C70226639A996DB /* AVFoundation.framework in Frameworks */, + 87C4492353709B68EE6BCF6A39894D43 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8E202F7FB2637D2972DBA7A878C35FEC /* Frameworks */ = { + DA8489B6D5E9C56DC3D6471AE4A67F6D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 97FA3A0D9196BB3D170B7F7F2A6BDFCD /* Foundation.framework in Frameworks */, - 2551CBC318614FA2BF169B2844F46724 /* XCTest.framework in Frameworks */, + 604A73AD1D0E82356F2A073C53BC6517 /* Foundation.framework in Frameworks */, + EB892573E1CA332ED26DCC659406E79B /* XCTest.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - C686BFEFB6A62D9B14E65DC7010E2DEB /* Frameworks */ = { + DD6C5AE0FCB56EC173421774C5CA73D3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - ED19AC2F490C66E0DE2E2ACFBFBA7371 /* Foundation.framework in Frameworks */, + 79A9ADCAE72B5F30CE882F79CDDDD47F /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -446,21 +450,6 @@ path = "Target Support Files/Pods-CachingPlayerItem_Example"; sourceTree = ""; }; - 09BC02C90A13F257603420A32EA7B1FD /* CachingPlayerItem */ = { - isa = PBXGroup; - children = ( - 3865CFB2696EFCD1419295CEA9266165 /* CachingPlayerItem.swift */, - C56D6F310AC1B803DD8342372DCC6B11 /* CachingPlayerItemConfiguration.swift */, - DF9F1F48C5FAA3EDE19E0743CC822906 /* MediaFileHandle.swift */, - FDB248F1686720332ACF9DA3B8BDBE56 /* ResourceLoaderDelegate.swift */, - 9D2329236D787235A5653D38E8B2060A /* URLExtension.swift */, - A6ACB2BBE4B403F6FB95778FF2875EBF /* Pod */, - 552E26CBF2E174BAC96533BFB1BA4B13 /* Support Files */, - ); - name = CachingPlayerItem; - path = ../..; - sourceTree = ""; - }; 234920750B70631E944AAFECC3A3E59F /* Nimble */ = { isa = PBXGroup; children = ( @@ -541,21 +530,6 @@ path = Nimble; sourceTree = ""; }; - 552E26CBF2E174BAC96533BFB1BA4B13 /* Support Files */ = { - isa = PBXGroup; - children = ( - 76079078982B1C544240D04EBDC6E9B9 /* CachingPlayerItem.modulemap */, - E2FC18655E1BBFB9C9F5D12662EDD26B /* CachingPlayerItem-dummy.m */, - 14ACD1EC8658EB37B5C3F54F57DA149B /* CachingPlayerItem-Info.plist */, - 4EAC2E8EE8BAC03193BA61F457A434F0 /* CachingPlayerItem-prefix.pch */, - 6F6143C60E17F82DE4AB560DA2CA9F39 /* CachingPlayerItem-umbrella.h */, - FF180E81D5CF3A1CADCD92FBD47F4C04 /* CachingPlayerItem.debug.xcconfig */, - F1D051874A74B26F59B21617F4202393 /* CachingPlayerItem.release.xcconfig */, - ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/CachingPlayerItem"; - sourceTree = ""; - }; 5E5757EBADB7784C3F3A9CAA043B4E9B /* Support Files */ = { isa = PBXGroup; children = ( @@ -571,6 +545,23 @@ path = "../Target Support Files/Quick"; sourceTree = ""; }; + 7A7B1E4F120502791B124B6323D6F2C8 /* CachingPlayerItem */ = { + isa = PBXGroup; + children = ( + 3FA217C8B7B74D1BBF43A5589957D076 /* CachingPlayerItem.swift */, + 5323A1F3FF3EF67020718D8186476E68 /* CachingPlayerItemConfiguration.swift */, + 9C68FBC1B54CE7FD4707117033EC4A57 /* MediaFileHandle.swift */, + 7E8436A04E894A216301DB82D7D38F76 /* PendingRequest.swift */, + 0E09667A15A4D7B0BCB00291A4B2F90B /* ResourceLoaderDelegate.swift */, + E12E1CBA9A786855CE4A5EF87AE72907 /* URLExtension.swift */, + 229B5EBF1D386F6C99A7C196B5A9636F /* URLResponseExtension.swift */, + A84C961F3F87AAB0D0EFC4BDAE112B3E /* Pod */, + CB1D82DD77C326812BCF6D51774D043E /* Support Files */, + ); + name = CachingPlayerItem; + path = ../..; + sourceTree = ""; + }; 9C4CE22019CDE90117DFD34A94EA37F9 /* Pods-CachingPlayerItem_Tests */ = { isa = PBXGroup; children = ( @@ -597,58 +588,58 @@ name = "Targets Support Files"; sourceTree = ""; }; - A6ACB2BBE4B403F6FB95778FF2875EBF /* Pod */ = { + A84C961F3F87AAB0D0EFC4BDAE112B3E /* Pod */ = { isa = PBXGroup; children = ( - 78D6072B965CF4CA4131BEFC79001EA1 /* badge.svg */, - 72686393E4ECEA1DF64E731A09447E59 /* badge.svg */, - 74F220C3EC797FC96D409B05EA3C0753 /* CachingPlayerItem.html */, - 146AD1D22FE345B647EDFFE402A1D1A7 /* CachingPlayerItem.html */, - 0C2AD6664FADB2F28953FD60175B7233 /* CachingPlayerItem.podspec */, - 88325C32F6DB93824D08B6BDCC875919 /* CachingPlayerItem.tgz */, - 4A360A3DA5DB793AC9316482F5C408FF /* CachingPlayerItem.xml */, - 7EE23345A3A3EE8C3D49CC21489331C2 /* CachingPlayerItemConfiguration.html */, - 813E4788633E66F6F7F13528DD23DC82 /* CachingPlayerItemConfiguration.html */, - 8D7C66D9176F42A7E228F4A0F27E961D /* CachingPlayerItemDelegate.html */, - E73AB33A9886DC9C8907489BF3BC5DEB /* CachingPlayerItemDelegate.html */, - BDADED2F87E6C7DA6E219C1DD57353A4 /* carat.png */, - 56B5F6B5DD27BA6B01DFC92D9A26E2C7 /* carat.png */, - 6EF9C32C7E5E7F31C003165D488C38A4 /* Classes.html */, - DD389C65BA056F5256FF2DF432AD5E47 /* Classes.html */, - 1D8B3F39AC50E3956684B2C278412914 /* dash.png */, - 4BF14D07208604213EFC166E65E4946A /* dash.png */, - F40E8791068366DED4417AF7CA23A37B /* docSet.dsidx */, - 8829476925A7F294846EF5B066CB6E9D /* Enums.html */, - EE7FE3131B02AAB4923BF277BC850C40 /* Enums.html */, - 2940B266F0F736CD7089ED1D7AA08228 /* gh.png */, - B6C18EAFD70D2C4DC1F64FAAF29C741F /* gh.png */, - BC493B2D615028A11E79FA5DF0FB1116 /* highlight.css */, - 275027C72249959419D8A217BA4D2ED3 /* highlight.css */, - 2C684331832794725A6B326396680175 /* index.html */, - FE8FD6AAE9C4AD9074B8ADD2754D27CC /* index.html */, - A577961BE492D9146722192CC9E5270F /* Info.plist */, - F83C0C77B28C9882573D3C571A489C84 /* jazzy.css */, - FFD2C8DDA689C15B9964A6BA2B91BCBF /* jazzy.css */, - 47CF46FC5720DB3A1D2D7A3D7DA2F18D /* jazzy.js */, - 118955FD689443374DEC9F8189C5BF2D /* jazzy.js */, - 05BEC42558D09E109F1053573EDAA8C7 /* jazzy.search.js */, - 4892DCED314D87F4A1CBDF6420D2638A /* jazzy.search.js */, - BDEA4455F6F9DEDF3A62C17A3838ADD9 /* jquery.min.js */, - 7765C22735D07FF463480F6920359A6D /* jquery.min.js */, - C7B72F1BA638F523413E75B9EEEE182E /* LICENSE */, - E777A5333860FDF20626753EDA5B8AD4 /* lunr.min.js */, - 6BA262CA189C5168CBA4E7B07785E3AB /* lunr.min.js */, - 8835FAAA9C95CFC30BC0ADF84F16A300 /* Protocols.html */, - 20D83324A41F2F939E19372E6AD80488 /* Protocols.html */, - C05B94D10E412D664713B4B9BEA23A5B /* README.md */, - A6AB8723F0A03375BF129CEA43D8293C /* search.json */, - 7EA3A163609A6033FBE5FAC31D269757 /* search.json */, - 6C97B1568903532595E13D3003B393E5 /* spinner.gif */, - D60583ADCA7D54C1A507E505607375D8 /* spinner.gif */, - 7150299CF04EB691610A6BFA5C5B5A84 /* typeahead.jquery.js */, - 51B371C9FDF13075E28623D73B8C0362 /* typeahead.jquery.js */, - 8E22DA3DE43CC94BD1147CD41310CD26 /* undocumented.json */, - 74B5A9E9E795512FC43E08E1C0AE0F19 /* undocumented.json */, + 99A605112D6BE27460B7C6BEA7B9743F /* badge.svg */, + C5BCEB4BB9C7DF06A593DBC787711907 /* badge.svg */, + C59C073D14A969AF2E18E3F940957ED0 /* CachingPlayerItem.html */, + 8C0D0AEDA64D57A4828E5410426E054A /* CachingPlayerItem.html */, + 18CF2373C52E966439C89CF2938EF628 /* CachingPlayerItem.podspec */, + A0C7939CCB907112F0610578D9B604E1 /* CachingPlayerItem.tgz */, + 73CFE270D172038A1CE837A933EC1581 /* CachingPlayerItem.xml */, + 0E20C6EA08C2F5A5825834D7EDF503B2 /* CachingPlayerItemConfiguration.html */, + 5D1EFD79C9EE09F6730B10071CE6F371 /* CachingPlayerItemConfiguration.html */, + 1C6C5B765472E56811E1AE64255ED3E3 /* CachingPlayerItemDelegate.html */, + 85AEF502DC7D9BAE4A095F7FAEFE98CB /* CachingPlayerItemDelegate.html */, + 3F5A5A301DE18B78A12E6657F6A775B3 /* carat.png */, + 92CF74B88D7D7725C841CF8296D26FE9 /* carat.png */, + 35D34979BDF953E2AEA691CFF13F6CFF /* Classes.html */, + 95EC99F6D3C6AE6259FD85A5DA8ED37E /* Classes.html */, + FBFAB3BA37F44CE62D4128B92CAF480F /* dash.png */, + 839B7842AF466C44EE21305DC8AEE5B4 /* dash.png */, + 156AC5F5E22221B75F7943507B01E1A3 /* docSet.dsidx */, + 8E71C2BD6B54978615CC489DF0FE9B49 /* Enums.html */, + 7390B7D430CABCF3DF4A052537023090 /* Enums.html */, + 9ADCBBAF527F96805FEF4F8625434DDD /* gh.png */, + 0D043E058C7E2F3121E2277329E4CC49 /* gh.png */, + F32A96986A3838AE8630007833312752 /* highlight.css */, + C7D433B61C4B1B475C9DE7CBBF0FE005 /* highlight.css */, + 9F247FAF3E0C7C8EAA733E942B05FC40 /* index.html */, + 016E0198A5E10082DDE3AC936E35DC0C /* index.html */, + 9F5516A254FFF76EADBA5993E24EFFF3 /* Info.plist */, + F58D0F50B975339DA587469A4BF21B9D /* jazzy.css */, + 8C5ADEF5FA07E5FF2902FABB11613553 /* jazzy.css */, + 870F30730EB667E726F5A61070D42DED /* jazzy.js */, + 545FF21489DED18DE9E66E5EAA000A39 /* jazzy.js */, + 159FC1FB9B754E649EFF79954CFD7404 /* jazzy.search.js */, + 2414F1BB4028A6549C914C13E986C23E /* jazzy.search.js */, + 94AE75A6F682EED2CE2ECA413E5E0470 /* jquery.min.js */, + E07243BC9819D047B47B279ABC20E80F /* jquery.min.js */, + 43C6055AB64B6ED187BFD2C321BB627F /* LICENSE */, + A8ABEE1126550074D499CD149FE2594E /* lunr.min.js */, + 8017B53F08579D8F8CF9DE758B249C94 /* lunr.min.js */, + 1D4E5C97FDEF7F81E0ABC02DBC00A91D /* Protocols.html */, + A774D5810041BA3B1219E09030710A8D /* Protocols.html */, + 04C2A650CEC3F7C8C07073C51E8C022E /* README.md */, + A99C103BA9347FB7991F9BDE493E82A0 /* search.json */, + 902575D2A2273F1BD5597F9D45DBF2E9 /* search.json */, + 446E947816F05791DB496C24CDC9B671 /* spinner.gif */, + 9EC7E13BD2610A605101FF375E54A590 /* spinner.gif */, + C7E573F79063955500D72EFF1AC8E8E7 /* typeahead.jquery.js */, + 03815C3F4FF4FEAA9B027B0CCAA34D4C /* typeahead.jquery.js */, + D7339A5A1CCC17169336D1D60EB2FEC4 /* undocumented.json */, + 2E5F8C0DE70B804AA52BFFF4E7013A3D /* undocumented.json */, ); name = Pod; sourceTree = ""; @@ -714,36 +705,51 @@ name = Pods; sourceTree = ""; }; - C35D68F2E23204AEB72B0F667F08B217 /* Products */ = { + CB1D82DD77C326812BCF6D51774D043E /* Support Files */ = { isa = PBXGroup; children = ( - 8A6231DC8C4D8B744E89BA96003682AB /* CachingPlayerItem.framework */, - BAE263041362D074978BB3B577DF0A05 /* Nimble.framework */, - 62243388BD2CDBA0C9E1E84E4EC3C0E3 /* Pods_CachingPlayerItem_Example.framework */, - AA8FB5C3C35312AD587DBD03732DF917 /* Pods_CachingPlayerItem_Tests.framework */, - 0D631E9908483F9525A6B3F36F16CC61 /* Quick.framework */, + F5DEBD2173B13825BB3062C09E7706FD /* CachingPlayerItem.modulemap */, + F156B3181CD0E5DC8ACC95A83C92F2AD /* CachingPlayerItem-dummy.m */, + 6D61EBE42044E38BD85497E90BB54A7F /* CachingPlayerItem-Info.plist */, + E5CC29C30550DF79AF50585D0382D8F7 /* CachingPlayerItem-prefix.pch */, + 29C5F1CE85DD3056C90D7387CC274FFA /* CachingPlayerItem-umbrella.h */, + ABCF9F9221FB774A86457A979A3E2547 /* CachingPlayerItem.debug.xcconfig */, + 695D74EA6ECB5940111C2173CF5DED4E /* CachingPlayerItem.release.xcconfig */, ); - name = Products; + name = "Support Files"; + path = "Example/Pods/Target Support Files/CachingPlayerItem"; + sourceTree = ""; + }; + CE570CA3F59376AF29A17B583FED027D /* Development Pods */ = { + isa = PBXGroup; + children = ( + 7A7B1E4F120502791B124B6323D6F2C8 /* CachingPlayerItem */, + ); + name = "Development Pods"; sourceTree = ""; }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - D2FEEE416415CD0FFD03CAA305F0AE8E /* Development Pods */, + CE570CA3F59376AF29A17B583FED027D /* Development Pods */, 03C5C200A0787E300053CFA8F53CA094 /* Frameworks */, B716C811F0F14528B6525E2277EA7060 /* Pods */, - C35D68F2E23204AEB72B0F667F08B217 /* Products */, + DB115620A984A8A871C322941EA84559 /* Products */, 9FFC6D95FE7D47F9E564DB31D49B1873 /* Targets Support Files */, ); sourceTree = ""; }; - D2FEEE416415CD0FFD03CAA305F0AE8E /* Development Pods */ = { + DB115620A984A8A871C322941EA84559 /* Products */ = { isa = PBXGroup; children = ( - 09BC02C90A13F257603420A32EA7B1FD /* CachingPlayerItem */, + 8A6231DC8C4D8B744E89BA96003682AB /* CachingPlayerItem */, + BAE263041362D074978BB3B577DF0A05 /* Nimble */, + 62243388BD2CDBA0C9E1E84E4EC3C0E3 /* Pods-CachingPlayerItem_Example */, + AA8FB5C3C35312AD587DBD03732DF917 /* Pods-CachingPlayerItem_Tests */, + 0D631E9908483F9525A6B3F36F16CC61 /* Quick */, ); - name = "Development Pods"; + name = Products; sourceTree = ""; }; F923BB2138842707ACB953DF108B2BFC /* Support Files */ = { @@ -764,56 +770,56 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 301556F66E66D9FAA53F5E10CE382BE6 /* Headers */ = { + 2ECA8588289B7FD3CD8D5FC71DC87C4E /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 8A7A3AFF694933726D4726769068AC14 /* Pods-CachingPlayerItem_Tests-umbrella.h in Headers */, + EA4EC4B3853541FDC946239C036D12C9 /* CwlCatchException.h in Headers */, + E2EE2E7797C383576ACBFE4986179459 /* CwlMachBadInstructionHandler.h in Headers */, + FC4F734925BC0EDDCD7C10AFBF93C576 /* DSL.h in Headers */, + 19A8009537BCAD56435B2DDC620B29AA /* mach_excServer.h in Headers */, + 21F3408E9BD0BE7C7A9FFBF43B4F28A0 /* Nimble.h in Headers */, + C03116C765F1A8893559730965ECBAD8 /* Nimble-umbrella.h in Headers */, + 60A059AA3734D5D3F2F73D07C427F4C1 /* NMBExceptionCapture.h in Headers */, + 7190961540266108624E854866842A81 /* NMBStringify.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5864C8DE441A61168C3E30FA49C55755 /* Headers */ = { + 685E467E5F675BE9329203A155675B9E /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - FF19798801098184A22810834528D1AC /* Pods-CachingPlayerItem_Example-umbrella.h in Headers */, + E511C6D8303FC4E7ABC7F8D33C19DF38 /* Pods-CachingPlayerItem_Tests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8EA28D842BC003811FDEEE44E2271D5E /* Headers */ = { + 858BA8882D480E1B201AE2476A8BBBEC /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 6C53B0695A60489C1FFCBE9FABBFA47A /* QCKDSL.h in Headers */, - FC740FFCEA8E90C8F3DB11189FD9FA9D /* Quick-umbrella.h in Headers */, - 62B4411C147375E0F1D0639B40963428 /* Quick.h in Headers */, - A5EB253AF98ECD3895797CF40302FA39 /* QuickConfiguration.h in Headers */, - 44CC283E83FE6CCCAAB2F327740770E7 /* QuickObjCRuntime.h in Headers */, - E282A90FA01DE2C5003A3E17907E17A9 /* QuickSpec.h in Headers */, - 7433873AD9AFAE2CA71EFD10FA2CD88C /* QuickSpecBase.h in Headers */, + 04B815FC0ACB3FED6290C6E0505587E7 /* Pods-CachingPlayerItem_Example-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9C01C89BB672F9A373B0BE8233D888E2 /* Headers */ = { + EF56162795BEE38037C39740F2E15F4B /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 6D2EB1AA036F99007BFB31045522F459 /* CwlCatchException.h in Headers */, - D989AA28FF39931A8E9F6FFD665FD0B7 /* CwlMachBadInstructionHandler.h in Headers */, - 15DB927C7009266E077993F38882D40E /* DSL.h in Headers */, - C12A5EDA29052D6AB6B5C08EB827147F /* mach_excServer.h in Headers */, - 1AF9A29318570C093E7F92579080C6C4 /* Nimble-umbrella.h in Headers */, - 4507C3FA3B3C2A7A13D9C503CFD9CC19 /* Nimble.h in Headers */, - 665B3B718611BE55F338D2CF4602AC74 /* NMBExceptionCapture.h in Headers */, - C7B3848543A19E420CA7638FBF6775CB /* NMBStringify.h in Headers */, + 612581CCD8346C696A80E6BC09D24C1F /* QCKDSL.h in Headers */, + E1CD0FEF6BA86FA9C28038C818E2514A /* Quick.h in Headers */, + C96B370E9B3442878448F8FFFDC98C7A /* Quick-umbrella.h in Headers */, + 6A47C53473FBCF2FF5C85069FBD4CA8D /* QuickConfiguration.h in Headers */, + FE67CE5AE4DFFE6B850FA43334EEBDC0 /* QuickObjCRuntime.h in Headers */, + D8B8FCEC597824B40986C8F4F7B50899 /* QuickSpec.h in Headers */, + 32995147DC30DF5022DD66C0470BFDE9 /* QuickSpecBase.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - A0A42820CD27D939DEDDA2A20614AB7C /* Headers */ = { + F08F82A949D1A587A12D4E8419C8A4F2 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - F0BE82B3C81BDAF3B7134D8C76E8819E /* CachingPlayerItem-umbrella.h in Headers */, + 855A990E6D084C1576917EBC48BF1190 /* CachingPlayerItem-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -822,12 +828,12 @@ /* Begin PBXNativeTarget section */ 31D3DC3FCCAB0AB08B35437BFBC158AA /* CachingPlayerItem */ = { isa = PBXNativeTarget; - buildConfigurationList = 05E62F89D1025A58CC0C1242E60D5770 /* Build configuration list for PBXNativeTarget "CachingPlayerItem" */; + buildConfigurationList = 3FC23B83981D5F0247AB6ADE3EEDBF11 /* Build configuration list for PBXNativeTarget "CachingPlayerItem" */; buildPhases = ( - A0A42820CD27D939DEDDA2A20614AB7C /* Headers */, - 7EC7A34614B5621A819A96AA53596F80 /* Sources */, - 56EE85A37984AD896C58BAEDEF6835BC /* Frameworks */, - A0E571258D4AAF758B5025018513756F /* Resources */, + F08F82A949D1A587A12D4E8419C8A4F2 /* Headers */, + D270277FD90CBB922B3AEE35CCF059F7 /* Sources */, + C2A7B137F2D481B88E9609B979BE6AFE /* Frameworks */, + A415F2F8065BE359C842AE44823BCDA8 /* Resources */, ); buildRules = ( ); @@ -835,36 +841,36 @@ ); name = CachingPlayerItem; productName = CachingPlayerItem; - productReference = 8A6231DC8C4D8B744E89BA96003682AB /* CachingPlayerItem.framework */; + productReference = 8A6231DC8C4D8B744E89BA96003682AB /* CachingPlayerItem */; productType = "com.apple.product-type.framework"; }; 5AC845F8F60E6D74BC46BB3D65D32A0E /* Pods-CachingPlayerItem_Example */ = { isa = PBXNativeTarget; - buildConfigurationList = CAC7365AE9813401F0DFF3E19985CEC8 /* Build configuration list for PBXNativeTarget "Pods-CachingPlayerItem_Example" */; + buildConfigurationList = A231F3427FDF274932CD996F07AB2897 /* Build configuration list for PBXNativeTarget "Pods-CachingPlayerItem_Example" */; buildPhases = ( - 5864C8DE441A61168C3E30FA49C55755 /* Headers */, - 23138A16E366EE7B94A88713FE64A97E /* Sources */, - 4853A8C7A32A790DB757E346C6CB301D /* Frameworks */, - 95C52C3F7CCC5B17BBA0FDCBE33F9CE0 /* Resources */, + 858BA8882D480E1B201AE2476A8BBBEC /* Headers */, + 39D98DB0C3AE88266B61C758BA5E13D4 /* Sources */, + 813AFD27AA5CD06136C71E541DBC0CB9 /* Frameworks */, + 3B3AC82A96BDC453C650FBDAA85FB99F /* Resources */, ); buildRules = ( ); dependencies = ( - 77CE617BEB6AC02E2CD4F0B90C81EA8C /* PBXTargetDependency */, + 41F92BEE62EC3EFAD62CC109DE3378B6 /* PBXTargetDependency */, ); name = "Pods-CachingPlayerItem_Example"; - productName = "Pods-CachingPlayerItem_Example"; - productReference = 62243388BD2CDBA0C9E1E84E4EC3C0E3 /* Pods_CachingPlayerItem_Example.framework */; + productName = Pods_CachingPlayerItem_Example; + productReference = 62243388BD2CDBA0C9E1E84E4EC3C0E3 /* Pods-CachingPlayerItem_Example */; productType = "com.apple.product-type.framework"; }; 6F13695E06195A78EA8A95F8C7ED0D2F /* Nimble */ = { isa = PBXNativeTarget; - buildConfigurationList = F6705D09AFC59B144E7015490019601A /* Build configuration list for PBXNativeTarget "Nimble" */; + buildConfigurationList = 84E3C08133057626870418A290649C7E /* Build configuration list for PBXNativeTarget "Nimble" */; buildPhases = ( - 9C01C89BB672F9A373B0BE8233D888E2 /* Headers */, - AB6CA551A58E1C678E9D6EA1AC37FFEB /* Sources */, - 697CF14C36D1C959756A9A1B4A89553D /* Frameworks */, - 36CAF29A7E7B1A86D0FCFE6B04A2FF0A /* Resources */, + 2ECA8588289B7FD3CD8D5FC71DC87C4E /* Headers */, + BA1BC0E48F3ADC5507788A7AED85E9E6 /* Sources */, + DD6C5AE0FCB56EC173421774C5CA73D3 /* Frameworks */, + C8C24821D185E1A194A59A3A3BCB60CA /* Resources */, ); buildRules = ( ); @@ -872,38 +878,38 @@ ); name = Nimble; productName = Nimble; - productReference = BAE263041362D074978BB3B577DF0A05 /* Nimble.framework */; + productReference = BAE263041362D074978BB3B577DF0A05 /* Nimble */; productType = "com.apple.product-type.framework"; }; 8CF0973AB87B217D827FFF761A033194 /* Pods-CachingPlayerItem_Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = B1FCEFFC2F994054F0764D8130DBF095 /* Build configuration list for PBXNativeTarget "Pods-CachingPlayerItem_Tests" */; + buildConfigurationList = 3A834C823C880980CA3F53E920B8435D /* Build configuration list for PBXNativeTarget "Pods-CachingPlayerItem_Tests" */; buildPhases = ( - 301556F66E66D9FAA53F5E10CE382BE6 /* Headers */, - 63A10D9D56712217DD1CDD955F93520C /* Sources */, - C686BFEFB6A62D9B14E65DC7010E2DEB /* Frameworks */, - F568C2D787E74E79B0B2746A024775F0 /* Resources */, + 685E467E5F675BE9329203A155675B9E /* Headers */, + 67FEE34574DAF87809AAFFF0C00713D3 /* Sources */, + BC9D1F04E97B92FC4289866ECD95C882 /* Frameworks */, + D162086B50E047C4A2FDD7EFCB86E988 /* Resources */, ); buildRules = ( ); dependencies = ( - 57D9D07E27FEB78BD41A153883C3D202 /* PBXTargetDependency */, - 2757FDBEE57493773388AF0FB883DC12 /* PBXTargetDependency */, - 396F99AC732D035EE6AC4A09D22DF682 /* PBXTargetDependency */, + 215F1A72AEAD4D0386CEDBE74EDAD370 /* PBXTargetDependency */, + 2C9548D742675439AE861108B5473B58 /* PBXTargetDependency */, + D4BC61C7B5D39777329CA73572480C2B /* PBXTargetDependency */, ); name = "Pods-CachingPlayerItem_Tests"; - productName = "Pods-CachingPlayerItem_Tests"; - productReference = AA8FB5C3C35312AD587DBD03732DF917 /* Pods_CachingPlayerItem_Tests.framework */; + productName = Pods_CachingPlayerItem_Tests; + productReference = AA8FB5C3C35312AD587DBD03732DF917 /* Pods-CachingPlayerItem_Tests */; productType = "com.apple.product-type.framework"; }; C82891EAB7293DBEE916B21F57E8474D /* Quick */ = { isa = PBXNativeTarget; - buildConfigurationList = F2B4D510B50F2BA6EE84690A129A445C /* Build configuration list for PBXNativeTarget "Quick" */; + buildConfigurationList = 1D467AF12BCFD8263C61085D135659C3 /* Build configuration list for PBXNativeTarget "Quick" */; buildPhases = ( - 8EA28D842BC003811FDEEE44E2271D5E /* Headers */, - F597BF576BAA00E7B8B42D9D445B9730 /* Sources */, - 8E202F7FB2637D2972DBA7A878C35FEC /* Frameworks */, - E1ADE9DEAB79E323D274141A87BB5060 /* Resources */, + EF56162795BEE38037C39740F2E15F4B /* Headers */, + 5F7791E1C3AEEF354315AD6A1EC5DD57 /* Sources */, + DA8489B6D5E9C56DC3D6471AE4A67F6D /* Frameworks */, + 78B22DE6F38E020E338DC52F9D195A52 /* Resources */, ); buildRules = ( ); @@ -911,7 +917,7 @@ ); name = Quick; productName = Quick; - productReference = 0D631E9908483F9525A6B3F36F16CC61 /* Quick.framework */; + productReference = 0D631E9908483F9525A6B3F36F16CC61 /* Quick */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -920,19 +926,19 @@ BFDFE7DC352907FC980B868725387E98 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1100; - LastUpgradeCheck = 1100; + LastSwiftUpdateCheck = 1500; + LastUpgradeCheck = 1500; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - en, Base, + en, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = C35D68F2E23204AEB72B0F667F08B217 /* Products */; + productRefGroup = DB115620A984A8A871C322941EA84559 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -946,35 +952,35 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 36CAF29A7E7B1A86D0FCFE6B04A2FF0A /* Resources */ = { + 3B3AC82A96BDC453C650FBDAA85FB99F /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 95C52C3F7CCC5B17BBA0FDCBE33F9CE0 /* Resources */ = { + 78B22DE6F38E020E338DC52F9D195A52 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - A0E571258D4AAF758B5025018513756F /* Resources */ = { + A415F2F8065BE359C842AE44823BCDA8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E1ADE9DEAB79E323D274141A87BB5060 /* Resources */ = { + C8C24821D185E1A194A59A3A3BCB60CA /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - F568C2D787E74E79B0B2746A024775F0 /* Resources */ = { + D162086B50E047C4A2FDD7EFCB86E988 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -984,176 +990,179 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 23138A16E366EE7B94A88713FE64A97E /* Sources */ = { + 39D98DB0C3AE88266B61C758BA5E13D4 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - F655BE2E98E916AC0EB09E627C43C3AA /* Pods-CachingPlayerItem_Example-dummy.m in Sources */, + 259BF5B2716811449046CBCF05FA5C38 /* Pods-CachingPlayerItem_Example-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 63A10D9D56712217DD1CDD955F93520C /* Sources */ = { + 5F7791E1C3AEEF354315AD6A1EC5DD57 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 7D171247CA2ABB73A04421806294736F /* Pods-CachingPlayerItem_Tests-dummy.m in Sources */, + 72E8C878B1927D988D108E3177403359 /* Behavior.swift in Sources */, + 7778C6B86287F5E2F906D9A7929B1F32 /* Callsite.swift in Sources */, + F7E32B0968669AF58CC182C6B96FD0A4 /* Closures.swift in Sources */, + 39F7D7CBD814A4DD7A8907951314A36C /* Configuration.swift in Sources */, + DD6DD40497DF10767F94B6B9AA0FD76E /* DSL.swift in Sources */, + 1AE2F33DF9F5F77B8F992AD620C5DE94 /* ErrorUtility.swift in Sources */, + 40B9F78D86FB4CE884EA9F73CDDF27E6 /* Example.swift in Sources */, + D8C6C2FD9936FE5E3B7C39A95483313A /* ExampleGroup.swift in Sources */, + 4DC21C433B0E7FC92A8C7956943EDBAE /* ExampleHooks.swift in Sources */, + A6E27F55BDE035D65EBD7F43580B0E9E /* ExampleMetadata.swift in Sources */, + 59E81A3529AA2EA5F274387B207DE008 /* Filter.swift in Sources */, + 18D714FD70EA5AD28403F0EA57869F3E /* HooksPhase.swift in Sources */, + ECFB15EC751302F529DA5D911EECB165 /* NSBundle+CurrentTestBundle.swift in Sources */, + FF9E9BBB984E82DBD3AC0E8CC16C576F /* QCKDSL.m in Sources */, + 997EC03E15F19A72CC410FDCDBFDF387 /* Quick-dummy.m in Sources */, + DC267B5C6058DD95B0A10596561DD2CD /* QuickConfiguration.m in Sources */, + CA76C6322518A8581332F08D97B58256 /* QuickConfiguration.swift in Sources */, + 053B88AAB25D8E9E247314D1A1933B19 /* QuickSelectedTestSuiteBuilder.swift in Sources */, + 0132BCEC809FC6B0731C8FD25329B011 /* QuickSpec.m in Sources */, + A98DB1F750AC4D9C4700ADDC970BB5A9 /* QuickSpecBase.m in Sources */, + C2E1F79FD03B6561EEF71E1775E64C89 /* QuickTestObservation.swift in Sources */, + 880127B565D384955284322078C87AB2 /* QuickTestSuite.swift in Sources */, + 2BDF0A0BCDCCB4CDB35FC276EBE18FB6 /* String+C99ExtendedIdentifier.swift in Sources */, + 5691B93A51512304D117B4A69DDD507E /* SuiteHooks.swift in Sources */, + D60A1EE9D24DFF74F1E920F68CFF749A /* URL+FileName.swift in Sources */, + 8F5C3B5756C30090332AC514897F4A2F /* World.swift in Sources */, + 49857B3D7D3AE323F25A8663A569ADD8 /* World+DSL.swift in Sources */, + B43C79561813FC1E0C76BED57C3638DE /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7EC7A34614B5621A819A96AA53596F80 /* Sources */ = { + 67FEE34574DAF87809AAFFF0C00713D3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - DD13D7F39BF525E3E515719845C3D951 /* CachingPlayerItem-dummy.m in Sources */, - 2513544A87AE23B204407637DC8CF5AF /* CachingPlayerItem.swift in Sources */, - C9EFD79787203ED7436E0436ABE69A4A /* CachingPlayerItemConfiguration.swift in Sources */, - E6E826B1E39D4EDF688F84781E0EF0FA /* MediaFileHandle.swift in Sources */, - 45E7CAF07B6469F2BBA312440782C90B /* ResourceLoaderDelegate.swift in Sources */, - B1748512B443FCEA0F846B5E93F8DDF0 /* URLExtension.swift in Sources */, + F9C2B71231752C62A65D26FDCCC3BEBD /* Pods-CachingPlayerItem_Tests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - AB6CA551A58E1C678E9D6EA1AC37FFEB /* Sources */ = { + BA1BC0E48F3ADC5507788A7AED85E9E6 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8F01AC0753C01A52C349A233690D7938 /* AdapterProtocols.swift in Sources */, - C2D906D76A9597A6C5B496D316893560 /* AllPass.swift in Sources */, - 520E7371FE7DB9BF712762793CC0BB4B /* AssertionDispatcher.swift in Sources */, - CFB78DAD8A511C9123F8559BA702B5E4 /* AssertionRecorder.swift in Sources */, - DBB0B80C28F80394644E12D3C4EE2CB3 /* Async.swift in Sources */, - 69FB2A0E963C18660AA3B8CFE72FE3C4 /* Await.swift in Sources */, - E9EB5895A3C64621F2D5D153BD103D6E /* BeAKindOf.swift in Sources */, - E0E2E724288F13C852B9DB0C323ABBE4 /* BeAnInstanceOf.swift in Sources */, - F1EDFF4C8CD256D625C5B46E0768AEFB /* BeCloseTo.swift in Sources */, - 80D116D3CC62170FF258E5AEABE6792A /* BeEmpty.swift in Sources */, - 9A1BE88CE8717D03F12BF668F2ACF766 /* BeginWith.swift in Sources */, - 89396273444D853480B62B113EE22623 /* BeginWithPrefix.swift in Sources */, - B212BEE5869453F67DE16621A5388954 /* BeGreaterThan.swift in Sources */, - E5FA00B2EC7B07285D2AE732D338BBDC /* BeGreaterThanOrEqualTo.swift in Sources */, - 2432100DBFB954DDC3AC2CEA3E170B9D /* BeIdenticalTo.swift in Sources */, - A1D30A36109E6A90E1791B51BAE55A72 /* BeLessThan.swift in Sources */, - 03D2B9651FD82FC0D5C97AD6F0E561D4 /* BeLessThanOrEqual.swift in Sources */, - F92273C61B48AB0E00CC817DF18A4C47 /* BeLogical.swift in Sources */, - E41DA6DEFB27EE0BCF12DC39EF0E1E1A /* BeNil.swift in Sources */, - 01A04218EC99765ADC0409631E60BB97 /* BeVoid.swift in Sources */, - 1126E10683633A8503EE54632EE12803 /* Contain.swift in Sources */, - 1E3B805AA2F844C715C9F3135A7D7BD5 /* ContainElementSatisfying.swift in Sources */, - A4E1AC7A059F8774AECC57EB095245DA /* CwlBadInstructionException.swift in Sources */, - 2D1BD8BC036C099C617457E7BF7AC8CB /* CwlCatchBadInstruction.swift in Sources */, - 86D9716ADE347B2916F9CB715A3B26D5 /* CwlCatchException.m in Sources */, - 31F310A182C07209B212AC43C4AD699E /* CwlCatchException.swift in Sources */, - 2AC400B28F334D89B97F36620EF4F362 /* CwlDarwinDefinitions.swift in Sources */, - B844C53365327CB75CC1645AE73CDCED /* CwlMachBadInstructionHandler.m in Sources */, - D5909A235107CDC9E1B0C12CB08B6505 /* DispatchTimeInterval.swift in Sources */, - 64FF7B082BBD75946F6B6342F202F6CC /* DSL+Wait.swift in Sources */, - 1F5967DC89CF19ABF6F288617010D900 /* DSL.m in Sources */, - 9D1731F108FFD33C034F6A859A8A625B /* DSL.swift in Sources */, - 501A30CB9F16F63F7FBABA667043DCCC /* ElementsEqual.swift in Sources */, - FD1E01D8C3414F0495353334492BF4A9 /* EndWith.swift in Sources */, - AD4AC85D286EF36E94059676F912BE33 /* Equal+Tuple.swift in Sources */, - E1F708C047C1B3C52B13F4D322D15F69 /* Equal.swift in Sources */, - C0D3EDC5F8D2546D5B5CB583230606B7 /* Errors.swift in Sources */, - 0E48962ACAEDD1289D7DAE793F3A731F /* Expectation.swift in Sources */, - 6CE2E10D6237472E319B05C3F16A2237 /* ExpectationMessage.swift in Sources */, - CC9476F9485F3506AE3374888A29D0AA /* Expression.swift in Sources */, - F17CCA8ABDDEE4BA268DC3D82A9C59BC /* FailureMessage.swift in Sources */, - 784F57A0959BD334BD0D1158C8359135 /* HaveCount.swift in Sources */, - 2145470ED629F29ABCCBF304F24DA354 /* mach_excServer.c in Sources */, - CA791EB47A2D4F838A353E79B693A4B8 /* Match.swift in Sources */, - 5DD0B3311BB289641928D6E734F4ED55 /* MatcherFunc.swift in Sources */, - FCC23B8552E01DB23CA349EB8921842C /* MatcherProtocols.swift in Sources */, - E80FC1D79D4A8DCA72F3C9A023D7BBD8 /* MatchError.swift in Sources */, - 2C7EA1D1F721BB8C5AFBA3D6427C1034 /* Nimble-dummy.m in Sources */, - 096A350DACDDDFF8805FDAEBE86EC2F6 /* NimbleEnvironment.swift in Sources */, - 606F220B87194FFF5D050FC4942120C5 /* NimbleXCTestHandler.swift in Sources */, - 27C96AB21C9D153E5EEE8CD305935088 /* NMBExceptionCapture.m in Sources */, - 0A363AD0A93A6F9E8961F52B10580718 /* NMBExpectation.swift in Sources */, - 8E2D915F77F55ADEBC7C3B223A4F3A9C /* NMBObjCMatcher.swift in Sources */, - 9D56BAD608CA598B071D591E0112F6BE /* NMBStringify.m in Sources */, - AEB5246A054AE75A5BFA7D8C770E9E8E /* PostNotification.swift in Sources */, - 7FA979F226052E7C77BA9D37FEDA95D2 /* Predicate.swift in Sources */, - 4BB64DB9E1A1717C926E9A2FA7D5DA97 /* RaisesException.swift in Sources */, - 8510469EB9B18B318478019A11F7D784 /* SatisfyAllOf.swift in Sources */, - 800D781D242F5E551B42C4D8393CBB0B /* SatisfyAnyOf.swift in Sources */, - F7FF348727315821588F9F0C635BEE2C /* SourceLocation.swift in Sources */, - DB4F2A50A04E673714C6A8AA32D94D53 /* Stringers.swift in Sources */, - D6276432FE863185A68BC069E47F1BD9 /* ThrowAssertion.swift in Sources */, - F9D4AB9515DB3E931E4AF493DE11895E /* ThrowError.swift in Sources */, - 0DFBCBE5C1E75DC9CD38757ACF33E0A7 /* ToSucceed.swift in Sources */, - 113CB0649F1C41E6358C27C4DC19D0A7 /* XCTestObservationCenter+Register.m in Sources */, + 97C3E58BF923DDDFC24D4093D010B8A1 /* AdapterProtocols.swift in Sources */, + D94D321C599043FB86D4ED10F1AFB564 /* AllPass.swift in Sources */, + 60E7AE4194948B5824E3BA84B9BD7B41 /* AssertionDispatcher.swift in Sources */, + 78414539BDE67644C7ED996057FD8B81 /* AssertionRecorder.swift in Sources */, + D4107A19475104B1EB2F9D8B9BB12749 /* Async.swift in Sources */, + 2237E6E22D72C7C15435869831F2DCE2 /* Await.swift in Sources */, + 583B5AF27B91E2F4EE8D1547443E1C75 /* BeAKindOf.swift in Sources */, + E8CD752EF080995577447A4761A9F923 /* BeAnInstanceOf.swift in Sources */, + 88E1D9F9F8FF7AE322F3261305140328 /* BeCloseTo.swift in Sources */, + D25A73F0AC8F3983007A4826A8851347 /* BeEmpty.swift in Sources */, + 8D56DB5B0A79CF1081062ED05CEEEF24 /* BeginWith.swift in Sources */, + A5A13AA5C8708EC3C78BA26A8C1F606C /* BeginWithPrefix.swift in Sources */, + 4933DA60945D792DFF5BFD12C8EA041E /* BeGreaterThan.swift in Sources */, + 69D887264BF5A2D300A09A92BBABB408 /* BeGreaterThanOrEqualTo.swift in Sources */, + F34340E990EDAE6103B91695F1A5F527 /* BeIdenticalTo.swift in Sources */, + EA22ADD506007952F9890A93DF70E0DA /* BeLessThan.swift in Sources */, + 6612F33BD20A641C4E57C96E7E0EBD7A /* BeLessThanOrEqual.swift in Sources */, + 65BB115F57E7BCEB6908D5000AEA0A81 /* BeLogical.swift in Sources */, + 2CF2036F269D92D594037180F346C926 /* BeNil.swift in Sources */, + 39EB6F3F4D4BC1FB786A3C25827D26BC /* BeVoid.swift in Sources */, + 1CB7927791B377DB30E9CE046A2C664C /* Contain.swift in Sources */, + 36FBD4F8D6EE81B6E753EC3612C90779 /* ContainElementSatisfying.swift in Sources */, + 8F572967B8805D18212CC67C039F0443 /* CwlBadInstructionException.swift in Sources */, + 37D7E98EFCBDBA089CD46482EF1F21C4 /* CwlCatchBadInstruction.swift in Sources */, + CC30B9350D7237C9A3241C7AED584D9D /* CwlCatchException.m in Sources */, + A300D9554F7D25A75347FE6A574A4E34 /* CwlCatchException.swift in Sources */, + 79B88C8C011CFBDB0562BE069224DDCD /* CwlDarwinDefinitions.swift in Sources */, + 0AB4D69A223EE91B885F7EBFB50DE156 /* CwlMachBadInstructionHandler.m in Sources */, + 9DC2ABBC9A7C2D58365B389176258B33 /* DispatchTimeInterval.swift in Sources */, + C2FA0C88754F444F546CD14FAD4983E1 /* DSL.m in Sources */, + 42BBE0E315E36B784C0B87F8FF47BFE4 /* DSL.swift in Sources */, + 66797F8F43C1222974E9CF45F7A3498B /* DSL+Wait.swift in Sources */, + B8A111BEADE508D1C85DF8B7891628AE /* ElementsEqual.swift in Sources */, + BB8370B2AD5EDA60D508B0A9FA16E4D9 /* EndWith.swift in Sources */, + FC9E5E03A90FEAD4AB11759F8AC2805E /* Equal.swift in Sources */, + 8FB7B05F443BDE9227CDB4F77C435D8B /* Equal+Tuple.swift in Sources */, + E92B6C16F730A22BF5F6DC99835B718B /* Errors.swift in Sources */, + 77D0DC280412E93206CF9E5B3B1B8F61 /* Expectation.swift in Sources */, + 785F83BBF7F3CC895851D4162BF97B06 /* ExpectationMessage.swift in Sources */, + 288A9262472730459EFECA301BF7F08A /* Expression.swift in Sources */, + 456B5082BEA7D6DC9203FC95F2275427 /* FailureMessage.swift in Sources */, + 0779B89F9C0D5D853C7308F616A5A849 /* HaveCount.swift in Sources */, + FA94BF94E57B46625F2F98E6D7C11E44 /* mach_excServer.c in Sources */, + C7EAFC19DEB229B96943921BD30D945E /* Match.swift in Sources */, + 948E33EBB139A91A51C0126F09FA82D0 /* MatcherFunc.swift in Sources */, + 0D476A8577141576F5FDB1046C02B11A /* MatcherProtocols.swift in Sources */, + 07B8533B93693FCEAA99BF09F9253B2F /* MatchError.swift in Sources */, + 23000995DBD093C7D33D8BE08AFC3D7D /* Nimble-dummy.m in Sources */, + 7118AE24D7AC2E5A09D851E36AD49847 /* NimbleEnvironment.swift in Sources */, + 6210C7C9A6CBFEC7C4EDE39D753D6780 /* NimbleXCTestHandler.swift in Sources */, + ECF4A70CCB729DD6CD8B814037BA7EE8 /* NMBExceptionCapture.m in Sources */, + FB50301F3F0969845462C062D48A0B62 /* NMBExpectation.swift in Sources */, + D9F430C02E1BE86A5D89AE25740870DF /* NMBObjCMatcher.swift in Sources */, + 0AF0D94CD930C1500995605C433F383E /* NMBStringify.m in Sources */, + 800CE15AB7C9BC8C04C8712B0541D507 /* PostNotification.swift in Sources */, + AA01E05BE1B12174011ED45CED568498 /* Predicate.swift in Sources */, + 43053D4C139B803727E485CB5EC2BDE7 /* RaisesException.swift in Sources */, + F1C5C1FB9845BCD95F196606849FBEAD /* SatisfyAllOf.swift in Sources */, + 14CF863FE8B157437FF2B78AEBB7B413 /* SatisfyAnyOf.swift in Sources */, + 7E2E7651B51BF28CA66F8652618AD62E /* SourceLocation.swift in Sources */, + D0BD9D341F96D9C4E32D90DD1581854A /* Stringers.swift in Sources */, + 0EA459BD6662050D9560047C9F812C11 /* ThrowAssertion.swift in Sources */, + CA6D99B9801B4B92896343D06633560C /* ThrowError.swift in Sources */, + 4A7DE0C16571E49896074F0152E5B0F8 /* ToSucceed.swift in Sources */, + 418D281C0D9DFECE0BC865C95471EE7F /* XCTestObservationCenter+Register.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - F597BF576BAA00E7B8B42D9D445B9730 /* Sources */ = { + D270277FD90CBB922B3AEE35CCF059F7 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 45718892681E27BFB3CA4F77FB637189 /* Behavior.swift in Sources */, - 6651438A66A1DEB7B86EC4814EA9DA16 /* Callsite.swift in Sources */, - 1DA94F92235E0C3A0FD7768DD848068C /* Closures.swift in Sources */, - 7FA57A4E6F31FBD1C126E7689E1AD61C /* Configuration.swift in Sources */, - A9AF3F7AB8269225790D01ABD9F559D7 /* DSL.swift in Sources */, - EA3B734318B9E04D966DB61ED42B08EC /* ErrorUtility.swift in Sources */, - 95079B04F2442FF22611EA7AC48EF81E /* Example.swift in Sources */, - F02B60DD96EB7DE9CA25530D09966391 /* ExampleGroup.swift in Sources */, - B2D03C30992D861A3C55D5301D718518 /* ExampleHooks.swift in Sources */, - C759FEB2A9EF6B829DF536816DF4CABB /* ExampleMetadata.swift in Sources */, - 6E5819480E972CA10D8D9A34D94405BF /* Filter.swift in Sources */, - F74B14337C89364EAABE436EEF56705D /* HooksPhase.swift in Sources */, - 98D4C88DB61717125A36A5334F27E5C6 /* NSBundle+CurrentTestBundle.swift in Sources */, - 79A86162B6B82D7F8795DCED169BE954 /* QCKDSL.m in Sources */, - 5FF3D0D8B874D76C903952F8E318E006 /* Quick-dummy.m in Sources */, - 416FEB65425C4D4A5BD9A56DBB994F72 /* QuickConfiguration.m in Sources */, - 20A7D607CEC9E4D0F0B7ECC1A545A05F /* QuickConfiguration.swift in Sources */, - E8AE858EC457AE28E23FE08EFB32E892 /* QuickSelectedTestSuiteBuilder.swift in Sources */, - 0D76A5CAF71781C4E1CC5E0D70D3426D /* QuickSpec.m in Sources */, - D562A34837C271ABE23892804EABFC83 /* QuickSpecBase.m in Sources */, - 351C5491EB39A1A8CC635F0A27C3E372 /* QuickTestObservation.swift in Sources */, - 9F2643593B001BED9C62BEF8FB0EBF9D /* QuickTestSuite.swift in Sources */, - 2A7FA62A2799B4F51D2B3B4463763BE5 /* String+C99ExtendedIdentifier.swift in Sources */, - AE9B8D884D9817D95AE9547AC70C9641 /* SuiteHooks.swift in Sources */, - 5A7CA27F8A4CB0DCBDBFB48B301E26D6 /* URL+FileName.swift in Sources */, - 3F31BA28AEC03B51AF90221CC4AD864B /* World+DSL.swift in Sources */, - 3D88FA031800EAD5410C710DC430D909 /* World.swift in Sources */, - EE7C2A10D09991BF6E14ECE2C8F41243 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */, + F7B7A478EE19E86D35FA446398F9E136 /* CachingPlayerItem.swift in Sources */, + FD9E22760E705E12B2AE9809647B1D77 /* CachingPlayerItem-dummy.m in Sources */, + D8DA0BE3CDB09D6FF62E046CB57A0631 /* CachingPlayerItemConfiguration.swift in Sources */, + DE62DFE1CB1D278D6327FD732FCCC446 /* MediaFileHandle.swift in Sources */, + 9B7F051D38E1944CD965A9FB4D2A0CE3 /* PendingRequest.swift in Sources */, + 75145B057D4E9B634E53E202CD5BE254 /* ResourceLoaderDelegate.swift in Sources */, + 31231B6154E000C8C27019B50071D010 /* URLExtension.swift in Sources */, + 1ECBA6E84244B735031FF3F42C5393D5 /* URLResponseExtension.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 2757FDBEE57493773388AF0FB883DC12 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-CachingPlayerItem_Example"; - target = 5AC845F8F60E6D74BC46BB3D65D32A0E /* Pods-CachingPlayerItem_Example */; - targetProxy = 7FB4005ACAB84C6E94068608B33A388A /* PBXContainerItemProxy */; - }; - 396F99AC732D035EE6AC4A09D22DF682 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Quick; - target = C82891EAB7293DBEE916B21F57E8474D /* Quick */; - targetProxy = 9A5394FB06CB1615C1202A902B58BA40 /* PBXContainerItemProxy */; - }; - 57D9D07E27FEB78BD41A153883C3D202 /* PBXTargetDependency */ = { + 215F1A72AEAD4D0386CEDBE74EDAD370 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Nimble; target = 6F13695E06195A78EA8A95F8C7ED0D2F /* Nimble */; - targetProxy = 77CAE1A76EA4E06A963D86F70F621602 /* PBXContainerItemProxy */; + targetProxy = 1ACC1BA57F973774C6062780B214DF5C /* PBXContainerItemProxy */; }; - 77CE617BEB6AC02E2CD4F0B90C81EA8C /* PBXTargetDependency */ = { + 2C9548D742675439AE861108B5473B58 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-CachingPlayerItem_Example"; + target = 5AC845F8F60E6D74BC46BB3D65D32A0E /* Pods-CachingPlayerItem_Example */; + targetProxy = FDB07183ACB01D6CA4C481D0A7C01C83 /* PBXContainerItemProxy */; + }; + 41F92BEE62EC3EFAD62CC109DE3378B6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = CachingPlayerItem; target = 31D3DC3FCCAB0AB08B35437BFBC158AA /* CachingPlayerItem */; - targetProxy = DD68FB7B60DB75A9BF6513323AFFB5EF /* PBXContainerItemProxy */; + targetProxy = 3C351EC6D0ABE01D1C48279BC37F04A0 /* PBXContainerItemProxy */; + }; + D4BC61C7B5D39777329CA73572480C2B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Quick; + target = C82891EAB7293DBEE916B21F57E8474D /* Quick */; + targetProxy = 39425A848F748EA7D7D419FB3C6CE9EB /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 38B6F68E9732D1DC74058D69C9571339 /* Debug */ = { + 2FF7BBFAD89A19030958347B2D7BE38C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FF180E81D5CF3A1CADCD92FBD47F4C04 /* CachingPlayerItem.debug.xcconfig */; + baseConfigurationReference = 57DCB0505A6CCEBDFBAB00473DC7CE5A /* Pods-CachingPlayerItem_Example.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1163,27 +1172,58 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/CachingPlayerItem/CachingPlayerItem-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/CachingPlayerItem/CachingPlayerItem-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/CachingPlayerItem/CachingPlayerItem.modulemap"; - PRODUCT_MODULE_NAME = CachingPlayerItem; - PRODUCT_NAME = CachingPlayerItem; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 4DA5966C6835A80985E79F8D69CB451A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 32435C410D6166FD3FF1FF89804AE5BD /* Nimble.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/Nimble/Nimble-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Nimble/Nimble-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/Nimble/Nimble.modulemap"; + PRODUCT_MODULE_NAME = Nimble; + PRODUCT_NAME = Nimble; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 73E50CF7A77FF7976FC794DC38016D0E /* Debug */ = { + 5FF041F1D682874DAFBE63E833E2027D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 57DCB0505A6CCEBDFBAB00473DC7CE5A /* Pods-CachingPlayerItem_Example.debug.xcconfig */; + baseConfigurationReference = D8DC6582D12740E1319D8EDA1EE01495 /* Pods-CachingPlayerItem_Tests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -1195,12 +1235,12 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -1214,9 +1254,9 @@ }; name = Debug; }; - 7CB210BA3AAC51F7595E86EA6539CD62 /* Release */ = { + 7C554CFBE2233E13A020638ABC37ABD7 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 32435C410D6166FD3FF1FF89804AE5BD /* Nimble.release.xcconfig */; + baseConfigurationReference = 02FC9FA72BA2A262A7E9F6D1DB32D272 /* Nimble.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1238,11 +1278,10 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; 7EE7A78859F657F6BEFC651185B43192 /* Release */ = { isa = XCBuildConfiguration; @@ -1306,25 +1345,27 @@ }; name = Release; }; - 8F9BFCCD0B83865DEAE6CC830E6CD990 /* Debug */ = { + 866C12353E090EC14BAA88CDA4944348 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7981FC6993399F6CC88288632463A471 /* Quick.debug.xcconfig */; + baseConfigurationReference = ABCF9F9221FB774A86457A979A3E2547 /* CachingPlayerItem.debug.xcconfig */; buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/Quick/Quick-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Quick/Quick-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/CachingPlayerItem/CachingPlayerItem-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CachingPlayerItem/CachingPlayerItem-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Quick/Quick.modulemap"; - PRODUCT_MODULE_NAME = Quick; - PRODUCT_NAME = Quick; + MODULEMAP_FILE = "Target Support Files/CachingPlayerItem/CachingPlayerItem.modulemap"; + PRODUCT_MODULE_NAME = CachingPlayerItem; + PRODUCT_NAME = CachingPlayerItem; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; @@ -1335,27 +1376,25 @@ }; name = Debug; }; - A1A3EDE6AE00C7C284F8B0BFC9998330 /* Release */ = { + 87348FBD840126344754C1FDCFB6020A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F1D051874A74B26F59B21617F4202393 /* CachingPlayerItem.release.xcconfig */; + baseConfigurationReference = 92908130014A01F433AEE156BE66A71F /* Quick.release.xcconfig */; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/CachingPlayerItem/CachingPlayerItem-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/CachingPlayerItem/CachingPlayerItem-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Quick/Quick-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Quick/Quick-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/CachingPlayerItem/CachingPlayerItem.modulemap"; - PRODUCT_MODULE_NAME = CachingPlayerItem; - PRODUCT_NAME = CachingPlayerItem; + MODULEMAP_FILE = "Target Support Files/Quick/Quick.modulemap"; + PRODUCT_MODULE_NAME = Quick; + PRODUCT_NAME = Quick; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; @@ -1367,68 +1406,68 @@ }; name = Release; }; - ABCDE6AD74E348556CCD044A4031DC08 /* Release */ = { + 9FB1D9D883B07F6F30FCD12226177EB3 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 526F23A217BAB3DEF2E0200AF209EFA4 /* Pods-CachingPlayerItem_Tests.release.xcconfig */; + baseConfigurationReference = 7981FC6993399F6CC88288632463A471 /* Quick.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Quick/Quick-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Quick/Quick-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/Quick/Quick.modulemap"; + PRODUCT_MODULE_NAME = Quick; + PRODUCT_NAME = Quick; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - C0B1FC5AF8B3D04E58BEFA3EF6594B8D /* Debug */ = { + AAC714A630E11C170A81DF721044F0D9 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 02FC9FA72BA2A262A7E9F6D1DB32D272 /* Nimble.debug.xcconfig */; + baseConfigurationReference = C2A45AD34C96D97DAAC4C22F198A6E04 /* Pods-CachingPlayerItem_Example.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/Nimble/Nimble-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Nimble/Nimble-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Nimble/Nimble.modulemap"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; D299434AB35E7FD6F7921C8EF24742FF /* Debug */ = { isa = XCBuildConfiguration; @@ -1496,9 +1535,9 @@ }; name = Debug; }; - D76E9D9C60CBD010A9A1FBF5C00D3CFB /* Debug */ = { + D69B8FE4189C74412A430D4F5D4B758A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D8DC6582D12740E1319D8EDA1EE01495 /* Pods-CachingPlayerItem_Tests.debug.xcconfig */; + baseConfigurationReference = 526F23A217BAB3DEF2E0200AF209EFA4 /* Pods-CachingPlayerItem_Tests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -1524,46 +1563,16 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - E908040A2E6E6A710B96E2884F842063 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 92908130014A01F433AEE156BE66A71F /* Quick.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/Quick/Quick-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Quick/Quick-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Quick/Quick.modulemap"; - PRODUCT_MODULE_NAME = Quick; - PRODUCT_NAME = Quick; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - FCDD643F78A5C7DA2573E3765ED00F33 /* Release */ = { + D9AD0D3C346C2E150B8FE0F0E35BF076 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C2A45AD34C96D97DAAC4C22F198A6E04 /* Pods-CachingPlayerItem_Example.release.xcconfig */; + baseConfigurationReference = 695D74EA6ECB5940111C2173CF5DED4E /* CachingPlayerItem.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1573,19 +1582,18 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/CachingPlayerItem/CachingPlayerItem-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CachingPlayerItem/CachingPlayerItem-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/CachingPlayerItem/CachingPlayerItem.modulemap"; + PRODUCT_MODULE_NAME = CachingPlayerItem; + PRODUCT_NAME = CachingPlayerItem; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -1596,56 +1604,56 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 05E62F89D1025A58CC0C1242E60D5770 /* Build configuration list for PBXNativeTarget "CachingPlayerItem" */ = { + 1D467AF12BCFD8263C61085D135659C3 /* Build configuration list for PBXNativeTarget "Quick" */ = { isa = XCConfigurationList; buildConfigurations = ( - 38B6F68E9732D1DC74058D69C9571339 /* Debug */, - A1A3EDE6AE00C7C284F8B0BFC9998330 /* Release */, + 9FB1D9D883B07F6F30FCD12226177EB3 /* Debug */, + 87348FBD840126344754C1FDCFB6020A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + 3A834C823C880980CA3F53E920B8435D /* Build configuration list for PBXNativeTarget "Pods-CachingPlayerItem_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - D299434AB35E7FD6F7921C8EF24742FF /* Debug */, - 7EE7A78859F657F6BEFC651185B43192 /* Release */, + 5FF041F1D682874DAFBE63E833E2027D /* Debug */, + D69B8FE4189C74412A430D4F5D4B758A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - B1FCEFFC2F994054F0764D8130DBF095 /* Build configuration list for PBXNativeTarget "Pods-CachingPlayerItem_Tests" */ = { + 3FC23B83981D5F0247AB6ADE3EEDBF11 /* Build configuration list for PBXNativeTarget "CachingPlayerItem" */ = { isa = XCConfigurationList; buildConfigurations = ( - D76E9D9C60CBD010A9A1FBF5C00D3CFB /* Debug */, - ABCDE6AD74E348556CCD044A4031DC08 /* Release */, + 866C12353E090EC14BAA88CDA4944348 /* Debug */, + D9AD0D3C346C2E150B8FE0F0E35BF076 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CAC7365AE9813401F0DFF3E19985CEC8 /* Build configuration list for PBXNativeTarget "Pods-CachingPlayerItem_Example" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 73E50CF7A77FF7976FC794DC38016D0E /* Debug */, - FCDD643F78A5C7DA2573E3765ED00F33 /* Release */, + D299434AB35E7FD6F7921C8EF24742FF /* Debug */, + 7EE7A78859F657F6BEFC651185B43192 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F2B4D510B50F2BA6EE84690A129A445C /* Build configuration list for PBXNativeTarget "Quick" */ = { + 84E3C08133057626870418A290649C7E /* Build configuration list for PBXNativeTarget "Nimble" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8F9BFCCD0B83865DEAE6CC830E6CD990 /* Debug */, - E908040A2E6E6A710B96E2884F842063 /* Release */, + 7C554CFBE2233E13A020638ABC37ABD7 /* Debug */, + 4DA5966C6835A80985E79F8D69CB451A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F6705D09AFC59B144E7015490019601A /* Build configuration list for PBXNativeTarget "Nimble" */ = { + A231F3427FDF274932CD996F07AB2897 /* Build configuration list for PBXNativeTarget "Pods-CachingPlayerItem_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( - C0B1FC5AF8B3D04E58BEFA3EF6594B8D /* Debug */, - 7CB210BA3AAC51F7595E86EA6539CD62 /* Release */, + 2FF7BBFAD89A19030958347B2D7BE38C /* Debug */, + AAC714A630E11C170A81DF721044F0D9 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Target Support Files/CachingPlayerItem/CachingPlayerItem-Info.plist b/Example/Pods/Target Support Files/CachingPlayerItem/CachingPlayerItem-Info.plist index 2660a93..6efd186 100644 --- a/Example/Pods/Target Support Files/CachingPlayerItem/CachingPlayerItem-Info.plist +++ b/Example/Pods/Target Support Files/CachingPlayerItem/CachingPlayerItem-Info.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - en + ${PODS_DEVELOPMENT_LANGUAGE} CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0.4 + 2.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/Example/Pods/Target Support Files/CachingPlayerItem/CachingPlayerItem.debug.xcconfig b/Example/Pods/Target Support Files/CachingPlayerItem/CachingPlayerItem.debug.xcconfig index 8d7050f..d343488 100644 --- a/Example/Pods/Target Support Files/CachingPlayerItem/CachingPlayerItem.debug.xcconfig +++ b/Example/Pods/Target Support Files/CachingPlayerItem/CachingPlayerItem.debug.xcconfig @@ -1,10 +1,12 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CachingPlayerItem GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -framework "AVFoundation" -framework "Foundation" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates diff --git a/Example/Pods/Target Support Files/CachingPlayerItem/CachingPlayerItem.release.xcconfig b/Example/Pods/Target Support Files/CachingPlayerItem/CachingPlayerItem.release.xcconfig index 8d7050f..d343488 100644 --- a/Example/Pods/Target Support Files/CachingPlayerItem/CachingPlayerItem.release.xcconfig +++ b/Example/Pods/Target Support Files/CachingPlayerItem/CachingPlayerItem.release.xcconfig @@ -1,10 +1,12 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CachingPlayerItem GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -framework "AVFoundation" -framework "Foundation" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates diff --git a/Example/Pods/Target Support Files/Nimble/Nimble-Info.plist b/Example/Pods/Target Support Files/Nimble/Nimble-Info.plist index e77a2b9..704448c 100644 --- a/Example/Pods/Target Support Files/Nimble/Nimble-Info.plist +++ b/Example/Pods/Target Support Files/Nimble/Nimble-Info.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - en + ${PODS_DEVELOPMENT_LANGUAGE} CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier diff --git a/Example/Pods/Target Support Files/Nimble/Nimble.debug.xcconfig b/Example/Pods/Target Support Files/Nimble/Nimble.debug.xcconfig index 953370f..a32d438 100644 --- a/Example/Pods/Target Support Files/Nimble/Nimble.debug.xcconfig +++ b/Example/Pods/Target Support Files/Nimble/Nimble.debug.xcconfig @@ -6,11 +6,12 @@ ENABLE_BITCODE = NO ENABLE_TESTING_SEARCH_PATHS = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -Xlinker -no_application_extension -weak-lXCTestSwiftSupport -weak_framework "XCTest" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS $(inherited) -suppress-warnings PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/Nimble PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates diff --git a/Example/Pods/Target Support Files/Nimble/Nimble.release.xcconfig b/Example/Pods/Target Support Files/Nimble/Nimble.release.xcconfig index 953370f..a32d438 100644 --- a/Example/Pods/Target Support Files/Nimble/Nimble.release.xcconfig +++ b/Example/Pods/Target Support Files/Nimble/Nimble.release.xcconfig @@ -6,11 +6,12 @@ ENABLE_BITCODE = NO ENABLE_TESTING_SEARCH_PATHS = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -Xlinker -no_application_extension -weak-lXCTestSwiftSupport -weak_framework "XCTest" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS $(inherited) -suppress-warnings PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/Nimble PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates diff --git a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example-Info.plist b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example-Info.plist index 2243fe6..19cf209 100644 --- a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example-Info.plist +++ b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example-Info.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - en + ${PODS_DEVELOPMENT_LANGUAGE} CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier diff --git a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example-frameworks.sh index 7dc225e..10e7147 100755 --- a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example-frameworks.sh @@ -18,7 +18,7 @@ echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" -SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" BCSYMBOLMAP_DIR="BCSymbolMaps" @@ -41,7 +41,7 @@ install_framework() if [ -L "${source}" ]; then echo "Symlinked..." - source="$(readlink "${source}")" + source="$(readlink -f "${source}")" fi if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then @@ -113,6 +113,7 @@ install_dsym() { rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" else # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + mkdir -p "${DWARF_DSYM_FOLDER_PATH}" touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" fi fi diff --git a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example.debug.xcconfig index 8d54fa3..c399d7b 100644 --- a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example.debug.xcconfig @@ -3,7 +3,8 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CachingPlayerItem" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CachingPlayerItem/CachingPlayerItem.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -framework "AVFoundation" -framework "CachingPlayerItem" -framework "Foundation" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} diff --git a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example.release.xcconfig index 8d54fa3..c399d7b 100644 --- a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Example/Pods-CachingPlayerItem_Example.release.xcconfig @@ -3,7 +3,8 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CachingPlayerItem" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CachingPlayerItem/CachingPlayerItem.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -framework "AVFoundation" -framework "CachingPlayerItem" -framework "Foundation" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} diff --git a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests-Info.plist b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests-Info.plist index 2243fe6..19cf209 100644 --- a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests-Info.plist +++ b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests-Info.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - en + ${PODS_DEVELOPMENT_LANGUAGE} CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier diff --git a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests-frameworks.sh b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests-frameworks.sh index 8fbcd03..481644b 100755 --- a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests-frameworks.sh @@ -18,7 +18,7 @@ echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" -SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" BCSYMBOLMAP_DIR="BCSymbolMaps" @@ -41,7 +41,7 @@ install_framework() if [ -L "${source}" ]; then echo "Symlinked..." - source="$(readlink "${source}")" + source="$(readlink -f "${source}")" fi if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then @@ -113,6 +113,7 @@ install_dsym() { rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" else # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + mkdir -p "${DWARF_DSYM_FOLDER_PATH}" touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" fi fi diff --git a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests.debug.xcconfig index 9a1faf3..f0c4593 100644 --- a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests.debug.xcconfig @@ -3,7 +3,8 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/CachingPlayerItem" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble" "${PODS_CONFIGURATION_BUILD_DIR}/Quick" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CachingPlayerItem/CachingPlayerItem.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble/Nimble.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Quick/Quick.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -framework "AVFoundation" -framework "CachingPlayerItem" -framework "Foundation" -framework "Nimble" -framework "Quick" -framework "XCTest" -weak_framework "XCTest" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} diff --git a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests.release.xcconfig b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests.release.xcconfig index 9a1faf3..f0c4593 100644 --- a/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-CachingPlayerItem_Tests/Pods-CachingPlayerItem_Tests.release.xcconfig @@ -3,7 +3,8 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/CachingPlayerItem" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble" "${PODS_CONFIGURATION_BUILD_DIR}/Quick" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CachingPlayerItem/CachingPlayerItem.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble/Nimble.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Quick/Quick.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -framework "AVFoundation" -framework "CachingPlayerItem" -framework "Foundation" -framework "Nimble" -framework "Quick" -framework "XCTest" -weak_framework "XCTest" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} diff --git a/Example/Pods/Target Support Files/Quick/Quick-Info.plist b/Example/Pods/Target Support Files/Quick/Quick-Info.plist index 3424ca6..fee5e01 100644 --- a/Example/Pods/Target Support Files/Quick/Quick-Info.plist +++ b/Example/Pods/Target Support Files/Quick/Quick-Info.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - en + ${PODS_DEVELOPMENT_LANGUAGE} CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier diff --git a/Example/Pods/Target Support Files/Quick/Quick.debug.xcconfig b/Example/Pods/Target Support Files/Quick/Quick.debug.xcconfig index 55d2f87..32a07c3 100644 --- a/Example/Pods/Target Support Files/Quick/Quick.debug.xcconfig +++ b/Example/Pods/Target Support Files/Quick/Quick.debug.xcconfig @@ -6,11 +6,12 @@ ENABLE_BITCODE = NO ENABLE_TESTING_SEARCH_PATHS = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -Xlinker -no_application_extension -framework "XCTest" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/Quick PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates diff --git a/Example/Pods/Target Support Files/Quick/Quick.release.xcconfig b/Example/Pods/Target Support Files/Quick/Quick.release.xcconfig index 55d2f87..32a07c3 100644 --- a/Example/Pods/Target Support Files/Quick/Quick.release.xcconfig +++ b/Example/Pods/Target Support Files/Quick/Quick.release.xcconfig @@ -6,11 +6,12 @@ ENABLE_BITCODE = NO ENABLE_TESTING_SEARCH_PATHS = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -Xlinker -no_application_extension -framework "XCTest" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/Quick PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates diff --git a/Source/CachingPlayerItem.swift b/Source/CachingPlayerItem.swift index 0a77ffb..d051cda 100644 --- a/Source/CachingPlayerItem.swift +++ b/Source/CachingPlayerItem.swift @@ -230,7 +230,7 @@ public final class CachingPlayerItem: AVPlayerItem { return } - resourceLoaderDelegate.startDataRequest(with: url) + resourceLoaderDelegate.startFileDownload(with: url) } /// Cancels the download of the media file and deletes the incomplete cached file. Works only with the initializers intended for play and cache. diff --git a/Source/PendingRequest.swift b/Source/PendingRequest.swift new file mode 100644 index 0000000..d74429d --- /dev/null +++ b/Source/PendingRequest.swift @@ -0,0 +1,159 @@ +// +// PendingRequest.swift +// CachingPlayerItem +// +// Created by Gorjan Shukov on 10/24/20. +// + +import Foundation +import AVFoundation + +/// Abstract class with properties required for processing `AVAssetResourceLoadingRequest`. +class PendingRequest { + /// URLSession task identifier. + private(set) var id = -1 + private let url: URL + private let customHeaders: [String: String]? + private var task: URLSessionTask? + private var didCancelTask = false + fileprivate unowned var session: URLSession + let loadingRequest: AVAssetResourceLoadingRequest + var isCancelled: Bool { loadingRequest.isCancelled || didCancelTask } + + init(url: URL, session: URLSession, loadingRequest: AVAssetResourceLoadingRequest, customHeaders: [String: String]?) { + self.url = url + self.session = session + self.loadingRequest = loadingRequest + self.customHeaders = customHeaders + } + + /// Creates an URLRequest with the required headers for bytes range and customHeaders set. + private func makeURLRequest() -> URLRequest { + var request = URLRequest(url: url) + + if let dataRequest = loadingRequest.dataRequest { + let lowerBound = Int(dataRequest.requestedOffset) + let upperBound = lowerBound + Int(dataRequest.requestedLength) - 1 + let rangeHeader = "bytes=\(lowerBound)-\(upperBound)" + request.setValue(rangeHeader, forHTTPHeaderField: "Range") + } + + if let headers = customHeaders { + for (key, value) in headers { + request.setValue(value, forHTTPHeaderField: key) + } + } + + return request + } + + fileprivate func makeSessionTask(with request: URLRequest) -> URLSessionTask { + fatalError("Subclasses need to implement the `makeSessionTask()` method.") + } + + /// Creates the session task with `makeSessionTask` from subclass. `id` gets assigned with the task id when invoking this method. + func startTask() { + let request = makeURLRequest() + let task = makeSessionTask(with: request) + id = task.taskIdentifier + self.task = task + task.resume() + } + + func cancelTask() { + task?.cancel() + + if !loadingRequest.isCancelled && !loadingRequest.isFinished { + finishLoading() + } + + didCancelTask = true + } + + func finishLoading(with error: Error? = nil) { + if let error { + loadingRequest.finishLoading(with: error) + } else { + loadingRequest.finishLoading() + } + } +} + +// MARK: PendingContentInfoRequest + +/// Wrapper for handling `AVAssetResourceLoadingContentInformationRequest`. +class PendingContentInfoRequest: PendingRequest { + private var contentInformationRequest: AVAssetResourceLoadingContentInformationRequest { + loadingRequest.contentInformationRequest! + } + + override func makeSessionTask(with request: URLRequest) -> URLSessionTask { + session.downloadTask(with: request) + } + + func fillInContentInformationRequest(with response: URLResponse) { + contentInformationRequest.contentType = response.processedInfoData.mimeType + contentInformationRequest.contentLength = response.processedInfoData.expectedContentLength + contentInformationRequest.isByteRangeAccessSupported = response.processedInfoData.isByteRangeAccessSupported + } +} + +// MARK: PendingDataRequest + +/// Cached data request delegate. +protocol PendingDataRequestDelegate: AnyObject { + /// Tells the `PendingDataRequest` if there is enough cached data. + func pendingDataRequest(_ request: PendingDataRequest, hasSufficientCachedDataFor offset: Int, with length: Int) -> Bool + /// Requests cached data. The returned `offset` and `length` are increased/reduced based on the data passed in `respond(withCachedData:)`. + func pendingDataRequest(_ request: PendingDataRequest, + requestCachedDataFor offset: Int, + with length: Int, + completion: @escaping ((_ continueRequesting: Bool) -> Void)) +} + +/// Wrapper for handling `AVAssetResourceLoadingDataRequest`. +class PendingDataRequest: PendingRequest { + private var dataRequest: AVAssetResourceLoadingDataRequest { loadingRequest.dataRequest! } + private lazy var requestedLength = dataRequest.requestedLength + private lazy var fileDataOffset = Int(dataRequest.requestedOffset) + weak var delegate: PendingDataRequestDelegate? + + override func makeSessionTask(with request: URLRequest) -> URLSessionTask { + session.dataTask(with: request) + } + + override func startTask() { + if delegate?.pendingDataRequest(self, hasSufficientCachedDataFor: fileDataOffset, with: requestedLength) == true { + // Cached data + requestCachedData() + } else { + // Remote data + super.startTask() + } + } + + func respond(withRemoteData data: Data) { + dataRequest.respond(with: data) + } + + func respond(withCachedData data: Data) { + dataRequest.respond(with: data) + fileDataOffset += data.count + requestedLength -= data.count + } + + /// Requests cached data recursively until `continueRequesting` is false. + private func requestCachedData() { + guard let delegate else { return } + + delegate.pendingDataRequest( + self, + requestCachedDataFor: fileDataOffset, + with: requestedLength, + completion: { [weak self] continueRequesting in + if continueRequesting { + self?.requestCachedData() + } + }) + } +} diff --git a/Source/ResourceLoaderDelegate.swift b/Source/ResourceLoaderDelegate.swift index edd9cc4..fd80bac 100644 --- a/Source/ResourceLoaderDelegate.swift +++ b/Source/ResourceLoaderDelegate.swift @@ -11,6 +11,8 @@ import UIKit /// Responsible for downloading media data and providing the requested data parts. final class ResourceLoaderDelegate: NSObject, AVAssetResourceLoaderDelegate, URLSessionDelegate, URLSessionDataDelegate, URLSessionTaskDelegate { + typealias PendingRequestId = Int + private let lock = NSLock() private var bufferData = Data() @@ -20,13 +22,13 @@ final class ResourceLoaderDelegate: NSObject, AVAssetResourceLoaderDelegate, URL private lazy var fileHandle = MediaFileHandle(filePath: saveFilePath) private var session: URLSession? - private var response: URLResponse? - private let queue = DispatchQueue(label: "com.gcd.CachingPlayerItemQueue", qos: .userInitiated, attributes: .concurrent) - private var pendingRequests: Set { - get { queue.sync { return pendingRequestsValue } } - set { queue.async(flags: .barrier) { [weak self] in self?.pendingRequestsValue = newValue } } + private let queue = DispatchQueue(label: "com.gcd.CachingPlayerItemQueue", qos: .userInitiated) + private var pendingContentInfoRequest: PendingContentInfoRequest? { + didSet { oldValue?.cancelTask() } } - private var pendingRequestsValue = Set() + private var contentInfoResponse: URLResponse? + private var pendingDataRequests: [PendingRequestId: PendingDataRequest] = [:] + private var fullMediaFileDownloadTask: URLSessionDataTask? private var isDownloadComplete = false private let url: URL @@ -52,68 +54,116 @@ final class ResourceLoaderDelegate: NSObject, AVAssetResourceLoaderDelegate, URL func resourceLoader(_ resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) -> Bool { if session == nil { - // If we're playing from an url, we need to download the file. - // We start loading the file on first request only. - startDataRequest(with: url) + startFileDownload(with: url) } - pendingRequests.insert(loadingRequest) - processPendingRequests() - return true + assert(session != nil, "Session must be set before proceeding.") + guard let session else { return false } + + if let _ = loadingRequest.contentInformationRequest { + pendingContentInfoRequest = PendingContentInfoRequest(url: url, session: session, loadingRequest: loadingRequest, customHeaders: owner?.urlRequestHeaders) + pendingContentInfoRequest?.startTask() + return true + } else if let _ = loadingRequest.dataRequest { + let request = PendingDataRequest(url: url, session: session, loadingRequest: loadingRequest, customHeaders: owner?.urlRequestHeaders) + request.delegate = self + request.startTask() + pendingDataRequests[request.id] = request + return true + } else { + return false + } } func resourceLoader(_ resourceLoader: AVAssetResourceLoader, didCancel loadingRequest: AVAssetResourceLoadingRequest) { - pendingRequests.remove(loadingRequest) + queue.async { [weak self] in + guard let self else { return } + guard let key = pendingDataRequests.first(where: { $1.loadingRequest.request.url == loadingRequest.request.url })?.key else { return } + + pendingDataRequests[key]?.cancelTask() + pendingDataRequests.removeValue(forKey: key) + } } // MARK: URLSessionDelegate func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { - bufferData.append(data) - writeBufferDataToFileIfNeeded() - processPendingRequests() - DispatchQueue.main.async { - self.owner?.delegate?.playerItem?(self.owner!, didDownloadBytesSoFar: self.fileHandle.fileSize, outOf: Int(dataTask.countOfBytesExpectedToReceive)) - } - } + queue.async { [weak self] in + guard let self else { return } - func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) { - self.response = response - processPendingRequests() - completionHandler(.allow) - } - - func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { - if let error = error { - downloadFailed(with: error) - return + pendingDataRequests[dataTask.taskIdentifier]?.respond(withRemoteData: data) } - if bufferData.count > 0 { - fileHandle.append(data: bufferData) - } + if fullMediaFileDownloadTask?.taskIdentifier == dataTask.taskIdentifier { + bufferData.append(data) + writeBufferDataToFileIfNeeded() - let error = verifyResponse() + guard let response = contentInfoResponse else { return } - guard error == nil else { - downloadFailed(with: error!) - return + DispatchQueue.main.async { + self.owner?.delegate?.playerItem?(self.owner!, + didDownloadBytesSoFar: self.fileHandle.fileSize + self.bufferData.count, + outOf: Int(response.processedInfoData.expectedContentLength)) + } } + } - downloadComplete() + func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { + queue.async { [weak self] in + guard let self else { return } + + let taskId = task.taskIdentifier + + if let error = error { + if pendingContentInfoRequest?.id == taskId { + finishLoadingPendingRequest(withId: taskId, error: error) + downloadFailed(with: error) + } else if fullMediaFileDownloadTask?.taskIdentifier == taskId { + downloadFailed(with: error) + } else { + finishLoadingPendingRequest(withId: taskId, error: error) + } + + return + } + + if let response = task.response, pendingContentInfoRequest?.id == taskId { + pendingContentInfoRequest?.fillInContentInformationRequest(with: response) + finishLoadingPendingRequest(withId: taskId) + contentInfoResponse = response + } else { + finishLoadingPendingRequest(withId: taskId) + } + + guard fullMediaFileDownloadTask?.taskIdentifier == taskId else { return } + + if bufferData.count > 0 { + writeBufferDataToFileIfNeeded(forced: true) + } + + let error = verifyResponse() + + guard error == nil else { + downloadFailed(with: error!) + return + } + + downloadComplete() + } } // MARK: Internal methods - func startDataRequest(with url: URL) { + func startFileDownload(with url: URL) { guard session == nil else { return } - let configuration = URLSessionConfiguration.default - configuration.requestCachePolicy = .reloadIgnoringLocalAndRemoteCacheData + createURLSession() + var urlRequest = URLRequest(url: url) owner?.urlRequestHeaders?.forEach { urlRequest.setValue($0.value, forHTTPHeaderField: $0.key) } - session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil) - session?.dataTask(with: urlRequest).resume() + + fullMediaFileDownloadTask = session?.dataTask(with: urlRequest) + fullMediaFileDownloadTask?.resume() } func invalidateAndCancelSession(shouldResetData: Bool = true) { @@ -122,7 +172,13 @@ final class ResourceLoaderDelegate: NSObject, AVAssetResourceLoaderDelegate, URL if shouldResetData { bufferData = Data() - pendingRequests.removeAll() + queue.async { [weak self] in + guard let self else { return } + + pendingContentInfoRequest = nil + pendingDataRequests.removeAll() + } + } // We need to only remove the file if it hasn't been fully downloaded @@ -133,64 +189,38 @@ final class ResourceLoaderDelegate: NSObject, AVAssetResourceLoaderDelegate, URL // MARK: Private methods - private func processPendingRequests() { - lock.lock() - defer { lock.unlock() } - - // Filter out the unfullfilled requests - let requestsFulfilled: Set = pendingRequests.filter { - fillInContentInformationRequest($0.contentInformationRequest) - guard haveEnoughDataToFulfillRequest($0.dataRequest!) else { return false } - - $0.finishLoading() - return true + private func createURLSession() { + guard session == nil else { + assertionFailure("Session already created.") + return } - // Remove fulfilled requests from pending requests - requestsFulfilled.forEach { pendingRequests.remove($0) } - } - - private func fillInContentInformationRequest(_ contentInformationRequest: AVAssetResourceLoadingContentInformationRequest?) { - // Do we have response from the server? - guard let response = response else { return } - - contentInformationRequest?.contentType = response.mimeType - contentInformationRequest?.contentLength = response.expectedContentLength - contentInformationRequest?.isByteRangeAccessSupported = true + let configuration = URLSessionConfiguration.default + configuration.requestCachePolicy = .reloadIgnoringLocalAndRemoteCacheData + session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil) } - private func haveEnoughDataToFulfillRequest(_ dataRequest: AVAssetResourceLoadingDataRequest) -> Bool { - let requestedOffset = Int(dataRequest.requestedOffset) - let requestedLength = dataRequest.requestedLength - let currentOffset = Int(dataRequest.currentOffset) - let bytesCached = fileHandle.fileSize - - // Is there enough data cached to fulfill the request? - guard bytesCached > currentOffset else { return false } - - // Data length to be loaded into memory with maximum size of readDataLimit. - let bytesToRespond = min(bytesCached - currentOffset, requestedLength, readDataLimit) - - // Read data from disk and pass it to the dataRequest - guard let data = fileHandle.readData(withOffset: currentOffset, forLength: bytesToRespond) else { return false } - dataRequest.respond(with: data) - - return bytesCached >= requestedLength + requestedOffset + private func finishLoadingPendingRequest(withId id: PendingRequestId, error: Error? = nil) { + if pendingContentInfoRequest?.id == id { + pendingContentInfoRequest?.finishLoading(with: error) + pendingContentInfoRequest = nil + } else if pendingDataRequests[id] != nil { + pendingDataRequests[id]?.finishLoading(with: error) + pendingDataRequests.removeValue(forKey: id) + } } - private func writeBufferDataToFileIfNeeded() { + private func writeBufferDataToFileIfNeeded(forced: Bool = false) { lock.lock() defer { lock.unlock() } - guard bufferData.count >= downloadBufferLimit else { return } + guard bufferData.count >= downloadBufferLimit || forced else { return } fileHandle.append(data: bufferData) bufferData = Data() } private func downloadComplete() { - processPendingRequests() - isDownloadComplete = true DispatchQueue.main.async { @@ -199,7 +229,7 @@ final class ResourceLoaderDelegate: NSObject, AVAssetResourceLoaderDelegate, URL } private func verifyResponse() -> NSError? { - guard let response = response as? HTTPURLResponse else { return nil } + guard let response = contentInfoResponse as? HTTPURLResponse else { return nil } let shouldVerifyDownloadedFileSize = CachingPlayerItemConfiguration.shouldVerifyDownloadedFileSize let minimumExpectedFileSize = CachingPlayerItemConfiguration.minimumExpectedFileSize @@ -207,7 +237,7 @@ final class ResourceLoaderDelegate: NSObject, AVAssetResourceLoaderDelegate, URL if response.statusCode >= 400 { error = NSError(domain: "Failed downloading asset. Reason: response status code \(response.statusCode).", code: response.statusCode, userInfo: nil) - } else if shouldVerifyDownloadedFileSize && response.expectedContentLength != -1 && response.expectedContentLength != fileHandle.fileSize { + } else if shouldVerifyDownloadedFileSize && response.processedInfoData.expectedContentLength != -1 && response.processedInfoData.expectedContentLength != fileHandle.fileSize { error = NSError(domain: "Failed downloading asset. Reason: wrong file size, expected: \(response.expectedContentLength), actual: \(fileHandle.fileSize).", code: response.statusCode, userInfo: nil) } else if minimumExpectedFileSize > 0 && minimumExpectedFileSize > fileHandle.fileSize { error = NSError(domain: "Failed downloading asset. Reason: file size \(fileHandle.fileSize) is smaller than minimumExpectedFileSize", code: response.statusCode, userInfo: nil) @@ -228,3 +258,39 @@ final class ResourceLoaderDelegate: NSObject, AVAssetResourceLoaderDelegate, URL invalidateAndCancelSession(shouldResetData: false) } } + +// MARK: PendingDataRequestDelegate + +extension ResourceLoaderDelegate: PendingDataRequestDelegate { + func pendingDataRequest(_ request: PendingDataRequest, hasSufficientCachedDataFor offset: Int, with length: Int) -> Bool { + fileHandle.fileSize >= length + offset + } + + func pendingDataRequest(_ request: PendingDataRequest, + requestCachedDataFor offset: Int, + with length: Int, + completion: @escaping ((_ continueRequesting: Bool) -> Void)) { + queue.async { [weak self] in + guard let self else { return } + + let bytesCached = fileHandle.fileSize + // Data length to be loaded into memory with maximum size of readDataLimit. + let bytesToRespond = min(bytesCached - offset, length, readDataLimit) + // Read data from disk and pass it to the dataRequest + guard let data = fileHandle.readData(withOffset: offset, forLength: bytesToRespond) else { + finishLoadingPendingRequest(withId: request.id) + completion(false) + return + } + + request.respond(withCachedData: data) + + if data.count >= length { + finishLoadingPendingRequest(withId: request.id) + completion(false) + } else { + completion(true) + } + } + } +} diff --git a/Source/URLResponseExtension.swift b/Source/URLResponseExtension.swift new file mode 100644 index 0000000..84c5b1d --- /dev/null +++ b/Source/URLResponseExtension.swift @@ -0,0 +1,79 @@ +// +// URLResponseExtension.swift +// CachingPlayerItem +// +// Created by Gorjan Shukov on 10/24/20. +// + +import Foundation +import AVFoundation + +extension URLResponse { + struct ProcessedInfoData { + let response: URLResponse + + var mimeType: String { + if response.mimeType?.lowercased().contains("mp4") == true { + return AVFileType.mp4.rawValue + } else if response.mimeType?.lowercased().contains("mp3") == true { + return AVFileType.mp3.rawValue + } + + return AVFileType.mp4.rawValue + } + + var expectedContentLength: Int64 { + guard let response = response as? HTTPURLResponse else { + return response.expectedContentLength + } + + let contentRangeKeys: [String] = [ + "Content-Range", + "content-range", + "Content-range", + "content-Range", + ] + + var rangeString: String? + + for key in contentRangeKeys { + if let value = response.allHeaderFields[key] as? String { + rangeString = value + break + } + } + + if let rangeString = rangeString, + let bytesString = rangeString.split(separator: "/").map({String($0)}).last, + let bytes = Int64(bytesString) { + return bytes + } + + return response.expectedContentLength + } + + var isByteRangeAccessSupported: Bool { + guard let response = response as? HTTPURLResponse else { + return false + } + + let rangeAccessKeys: [String] = [ + "Accept-Ranges", + "accept-ranges", + "Accept-ranges", + "accept-Ranges", + ] + + for key in rangeAccessKeys { + if let value = response.allHeaderFields[key] as? String, + value == "bytes" { + return true + } + } + + return false + } + } + + var processedInfoData: ProcessedInfoData { .init(response: self) } +} From b0250003abac5b85ce88f291a700cbed7d8d19c9 Mon Sep 17 00:00:00 2001 From: Gorjan Shukov Date: Thu, 28 Nov 2024 17:42:18 +0100 Subject: [PATCH 2/2] Update jazzy docs --- docs/Classes.html | 7 +-- docs/Classes/CachingPlayerItem.html | 43 ++++++++++++------ docs/Enums.html | 4 +- .../Enums/CachingPlayerItemConfiguration.html | 4 +- docs/Protocols.html | 4 +- docs/Protocols/CachingPlayerItemDelegate.html | 4 +- .../Contents/Resources/Documents/Classes.html | 7 +-- .../Documents/Classes/CachingPlayerItem.html | 43 ++++++++++++------ .../Contents/Resources/Documents/Enums.html | 4 +- .../Enums/CachingPlayerItemConfiguration.html | 4 +- .../Resources/Documents/Protocols.html | 4 +- .../Protocols/CachingPlayerItemDelegate.html | 4 +- .../Contents/Resources/Documents/badge.svg | 6 +-- .../Contents/Resources/Documents/index.html | 4 +- .../Resources/Documents/undocumented.json | 16 +------ docs/docsets/CachingPlayerItem.tgz | Bin 77659 -> 77676 bytes docs/docsets/CachingPlayerItem.xml | 2 +- docs/index.html | 4 +- 18 files changed, 89 insertions(+), 75 deletions(-) diff --git a/docs/Classes.html b/docs/Classes.html index f7b95be..a12eb83 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -21,7 +21,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -117,7 +117,8 @@

Classes

Declaration

Swift

-
public final class CachingPlayerItem : AVPlayerItem
+
@MainActor
+public final class CachingPlayerItem : AVPlayerItem
@@ -132,7 +133,7 @@

Declaration

diff --git a/docs/Classes/CachingPlayerItem.html b/docs/Classes/CachingPlayerItem.html index 7d6cf81..3f295df 100644 --- a/docs/Classes/CachingPlayerItem.html +++ b/docs/Classes/CachingPlayerItem.html @@ -21,7 +21,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -90,7 +90,8 @@

CachingPlayerItem

-
public final class CachingPlayerItem : AVPlayerItem
+
@MainActor
+public final class CachingPlayerItem : AVPlayerItem
@@ -123,7 +124,8 @@

CachingPlayerItem

Declaration

Swift

-
public var passOnObject: Any?
+
@MainActor
+public var passOnObject: Any?
@@ -150,7 +152,8 @@

Declaration

Declaration

Swift

-
public weak var delegate: CachingPlayerItemDelegate?
+
@MainActor
+public weak var delegate: CachingPlayerItemDelegate?
@@ -236,7 +239,8 @@

Parameters

Declaration

Swift

-
public convenience init(url: URL, avUrlAssetOptions: [String : Any]? = nil)
+
@MainActor
+public convenience init(url: URL, avUrlAssetOptions: [String : Any]? = nil)
@@ -295,7 +299,8 @@

Parameters

Declaration

Swift

-
public convenience init(url: URL, customFileExtension: String, avUrlAssetOptions: [String : Any]? = nil)
+
@MainActor
+public convenience init(url: URL, customFileExtension: String, avUrlAssetOptions: [String : Any]? = nil)
@@ -366,7 +371,8 @@

Parameters

Declaration

Swift

-
public init(url: URL, saveFilePath: String, customFileExtension: String?, avUrlAssetOptions: [String : Any]? = nil)
+
@MainActor
+public init(url: URL, saveFilePath: String, customFileExtension: String?, avUrlAssetOptions: [String : Any]? = nil)
@@ -449,7 +455,8 @@

Parameters

Declaration

Swift

-
public init(nonCachingURL url: URL, avUrlAssetOptions: [String : Any]? = nil)
+
@MainActor
+public init(nonCachingURL url: URL, avUrlAssetOptions: [String : Any]? = nil)
@@ -513,7 +520,8 @@

Parameters

Declaration

Swift

-
public convenience init(data: Data, customFileExtension: String) throws
+
@MainActor
+public convenience init(data: Data, customFileExtension: String) throws
@@ -571,7 +579,8 @@

Parameters

Declaration

Swift

-
public init(filePathURL: URL, fileExtension: String? = nil)
+
@MainActor
+public init(filePathURL: URL, fileExtension: String? = nil)
@@ -629,7 +638,8 @@

Parameters

Declaration

Swift

-
override public init(asset: AVAsset, automaticallyLoadedAssetKeys: [String]?)
+
@MainActor
+override public init(asset: AVAsset, automaticallyLoadedAssetKeys: [String]?)
@@ -700,7 +710,8 @@

Public methods

Declaration

Swift

-
public func download()
+
@MainActor
+public func download()
@@ -727,7 +738,8 @@

Declaration

Declaration

Swift

-
public func cancelDownload()
+
@MainActor
+public func cancelDownload()
@@ -767,7 +779,8 @@

KVO

Declaration

Swift

-
public override func observeValue(forKeyPath keyPath: String?,
+                          
@MainActor
+public override func observeValue(forKeyPath keyPath: String?,
                            of object: Any?,
                            change: [NSKeyValueChangeKey : Any]?,
                            context: UnsafeMutableRawPointer?)
@@ -785,7 +798,7 @@

Declaration

diff --git a/docs/Enums.html b/docs/Enums.html index 43b53ab..99929d1 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -21,7 +21,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -132,7 +132,7 @@

Declaration

diff --git a/docs/Enums/CachingPlayerItemConfiguration.html b/docs/Enums/CachingPlayerItemConfiguration.html index 3578acf..3dfb732 100644 --- a/docs/Enums/CachingPlayerItemConfiguration.html +++ b/docs/Enums/CachingPlayerItemConfiguration.html @@ -21,7 +21,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -220,7 +220,7 @@

Declaration

diff --git a/docs/Protocols.html b/docs/Protocols.html index c5cbe26..ee6cff9 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -21,7 +21,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -133,7 +133,7 @@

Declaration

diff --git a/docs/Protocols/CachingPlayerItemDelegate.html b/docs/Protocols/CachingPlayerItemDelegate.html index b17fad0..4a9c4c0 100644 --- a/docs/Protocols/CachingPlayerItemDelegate.html +++ b/docs/Protocols/CachingPlayerItemDelegate.html @@ -21,7 +21,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -302,7 +302,7 @@

Declaration

diff --git a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Classes.html index f7b95be..a12eb83 100644 --- a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Classes.html @@ -21,7 +21,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -117,7 +117,8 @@

Classes

Declaration

Swift

-
public final class CachingPlayerItem : AVPlayerItem
+
@MainActor
+public final class CachingPlayerItem : AVPlayerItem
@@ -132,7 +133,7 @@

Declaration

diff --git a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Classes/CachingPlayerItem.html b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Classes/CachingPlayerItem.html index 7d6cf81..3f295df 100644 --- a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Classes/CachingPlayerItem.html +++ b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Classes/CachingPlayerItem.html @@ -21,7 +21,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -90,7 +90,8 @@

CachingPlayerItem

-
public final class CachingPlayerItem : AVPlayerItem
+
@MainActor
+public final class CachingPlayerItem : AVPlayerItem
@@ -123,7 +124,8 @@

CachingPlayerItem

Declaration

Swift

-
public var passOnObject: Any?
+
@MainActor
+public var passOnObject: Any?
@@ -150,7 +152,8 @@

Declaration

Declaration

Swift

-
public weak var delegate: CachingPlayerItemDelegate?
+
@MainActor
+public weak var delegate: CachingPlayerItemDelegate?
@@ -236,7 +239,8 @@

Parameters

Declaration

Swift

-
public convenience init(url: URL, avUrlAssetOptions: [String : Any]? = nil)
+
@MainActor
+public convenience init(url: URL, avUrlAssetOptions: [String : Any]? = nil)
@@ -295,7 +299,8 @@

Parameters

Declaration

Swift

-
public convenience init(url: URL, customFileExtension: String, avUrlAssetOptions: [String : Any]? = nil)
+
@MainActor
+public convenience init(url: URL, customFileExtension: String, avUrlAssetOptions: [String : Any]? = nil)
@@ -366,7 +371,8 @@

Parameters

Declaration

Swift

-
public init(url: URL, saveFilePath: String, customFileExtension: String?, avUrlAssetOptions: [String : Any]? = nil)
+
@MainActor
+public init(url: URL, saveFilePath: String, customFileExtension: String?, avUrlAssetOptions: [String : Any]? = nil)
@@ -449,7 +455,8 @@

Parameters

Declaration

Swift

-
public init(nonCachingURL url: URL, avUrlAssetOptions: [String : Any]? = nil)
+
@MainActor
+public init(nonCachingURL url: URL, avUrlAssetOptions: [String : Any]? = nil)
@@ -513,7 +520,8 @@

Parameters

Declaration

Swift

-
public convenience init(data: Data, customFileExtension: String) throws
+
@MainActor
+public convenience init(data: Data, customFileExtension: String) throws
@@ -571,7 +579,8 @@

Parameters

Declaration

Swift

-
public init(filePathURL: URL, fileExtension: String? = nil)
+
@MainActor
+public init(filePathURL: URL, fileExtension: String? = nil)
@@ -629,7 +638,8 @@

Parameters

Declaration

Swift

-
override public init(asset: AVAsset, automaticallyLoadedAssetKeys: [String]?)
+
@MainActor
+override public init(asset: AVAsset, automaticallyLoadedAssetKeys: [String]?)
@@ -700,7 +710,8 @@

Public methods

Declaration

Swift

-
public func download()
+
@MainActor
+public func download()
@@ -727,7 +738,8 @@

Declaration

Declaration

Swift

-
public func cancelDownload()
+
@MainActor
+public func cancelDownload()
@@ -767,7 +779,8 @@

KVO

Declaration

Swift

-
public override func observeValue(forKeyPath keyPath: String?,
+                          
@MainActor
+public override func observeValue(forKeyPath keyPath: String?,
                            of object: Any?,
                            change: [NSKeyValueChangeKey : Any]?,
                            context: UnsafeMutableRawPointer?)
@@ -785,7 +798,7 @@

Declaration

diff --git a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Enums.html index 43b53ab..99929d1 100644 --- a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Enums.html @@ -21,7 +21,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -132,7 +132,7 @@

Declaration

diff --git a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Enums/CachingPlayerItemConfiguration.html b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Enums/CachingPlayerItemConfiguration.html index 3578acf..3dfb732 100644 --- a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Enums/CachingPlayerItemConfiguration.html +++ b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Enums/CachingPlayerItemConfiguration.html @@ -21,7 +21,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -220,7 +220,7 @@

Declaration

diff --git a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Protocols.html index c5cbe26..ee6cff9 100644 --- a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Protocols.html @@ -21,7 +21,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -133,7 +133,7 @@

Declaration

diff --git a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Protocols/CachingPlayerItemDelegate.html b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Protocols/CachingPlayerItemDelegate.html index b17fad0..4a9c4c0 100644 --- a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Protocols/CachingPlayerItemDelegate.html +++ b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/Protocols/CachingPlayerItemDelegate.html @@ -21,7 +21,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -302,7 +302,7 @@

Declaration

diff --git a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/badge.svg b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/badge.svg index c8d6b74..685c5e1 100644 --- a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/badge.svg +++ b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/badge.svg @@ -8,7 +8,7 @@ - + @@ -19,10 +19,10 @@ documentation - 84% + 92% - 84% + 92% diff --git a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/index.html b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/index.html index 9296450..ef03540 100644 --- a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/index.html @@ -20,7 +20,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -224,7 +224,7 @@

Known limitations

diff --git a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/undocumented.json index 82c5047..74ff23d 100644 --- a/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/undocumented.json +++ b/docs/docsets/CachingPlayerItem.docset/Contents/Resources/Documents/undocumented.json @@ -9,21 +9,7 @@ }, { "file": "/Users/shukov/Projects/CachingPlayerItem/Source/CachingPlayerItem.swift", - "line": 54, - "symbol": "CachingPlayerItem.init(url:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/shukov/Projects/CachingPlayerItem/Source/CachingPlayerItem.swift", - "line": 193, - "symbol": "CachingPlayerItem.init(asset:automaticallyLoadedAssetKeys:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/shukov/Projects/CachingPlayerItem/Source/CachingPlayerItem.swift", - "line": 240, + "line": 251, "symbol": "CachingPlayerItem.observeValue(forKeyPath:of:change:context:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" diff --git a/docs/docsets/CachingPlayerItem.tgz b/docs/docsets/CachingPlayerItem.tgz index 5f62010e6b978798dc1dd899db6bb3013206897e..fad07ebe2000e3227d313fcf0067682b4c7d9c8f 100644 GIT binary patch literal 77676 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 z𝔐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 O`27D+$3}htbOiv+%j)j{ delta 77621 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%0Ax2y$*NZtgX+Ba8$>>jeadbKaYUE!|O2 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

=cl1zCU5bjDivu zEm6g*36mQ9E9`X9JBJWbsaMe+sF#GZ0-7#bo@GB<<=~*SaX5{W;{nWADYPgoe6RI1-iug2 zdtYQ}1~b7IQJQ2vau~&!>ui$1>B{wbrU{CjQ@n+sV4=eFK^Gy`dub_Xsn`0p zQab9Be7DENvPTh=Bh(>U-}L)oza`mN(zp`8H1sFXN`eGj2>DoFb12=zJe*-?kLz*+--OrUvo2oM2g zZxV$g7b>z%pRysYj4Tj7Vz_GDb?eqGb>^v-Zd46Qg1Q2y%v@NJk-yuW^T`r$g zc3fMM9c$$khFlljFT{h3>-t0xM>kwN_}x$-*j>xT`DZp5lDxDb}rbih|WW8VG0pI`=k+ zGNI;`IV_!LVGcB@>4k(t<%Zo=dx4W2rfEC9t74igr~G}v=oa5?FWkX|U9Jgm+KTzS zWv8v)9||z4IxAv-K95ET(DER%bca%=S981OJyih;_n^7+GUBTtYSRYSN|^Y$!o(Zv zQ~t=s9Dg$Uy?+LzYWT>8@pR_J8XcgmuM!NN_qH3u^5{qo<7Mj$9uouDC{^0KaZ1g8JmZ>Z!M^L6FsSKV~T)kqJyUMa{en z%cyLrr*l zTMQZN`t*y>e9BV0@3w|K$6ro`#|EL;%?~}rX_NwK|(;`g*mR_ zhG7xeX{3pL`KY)+umoYFo)=hYl;DXARrawq%?3#b@{vqPYMaz_yMDn%f3emRE)ow% z(P!gZyy7Oh88*hM&%1|Vo&ptoQEG%CM26@!DwF1*mxggt8Rs0>jK_CSxl+g=pqpK6 zR%L&$*4xmg@wnRQ=OKwyH0=gL!xZazvZ${1Nj{*}6E0ZafVji2E~apnsg&&7Ty;_a zmZGDZ2Dlt+NY8crga20pf7)DBPhl7(ky%p?l?}#m4jh(^X4y?$$^+phX`3rTHRQVqU59L4iuAhv8!N@XDe@|s$u z_dG3^y?LIrd%e|oy1!b?;uPrB+mFW`Zy1rH!nRCt3ntCFc{Gc{(m}jlS$3yUI6Tk)!^DMR;i3N?+Is;H_7A1.1.3https://sukov.github.io/CachingPlayerItem/docsets/CachingPlayerItem.tgz +2.0.0https://sukov.github.io/CachingPlayerItem/docsets/CachingPlayerItem.tgz diff --git a/docs/index.html b/docs/index.html index 9296450..ef03540 100644 --- a/docs/index.html +++ b/docs/index.html @@ -20,7 +20,7 @@

- CachingPlayerItem 1.1.3 Docs + CachingPlayerItem 2.0.0 Docs (92% documented)

@@ -224,7 +224,7 @@

Known limitations