From 266b23046df363fb379b9c3c3a076a868ca41248 Mon Sep 17 00:00:00 2001 From: "jianfeng.mo" Date: Wed, 24 Oct 2018 14:46:43 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9elapsedProgressView=20s?= =?UTF-8?q?etProgress=20=E5=8A=A8=E7=94=BB=E4=B8=BA=20NO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JPVideoPlayer/JPVideoPlayerControlViews.m | 4 +- JPVideoPlayerDemo/.DS_Store | Bin 6148 -> 6148 bytes .../project.pbxproj | 18 +- JPVideoPlayerDemo/Podfile.lock | 7 +- JPVideoPlayerDemo/Pods/Manifest.lock | 7 +- .../Pods/Pods.xcodeproj/project.pbxproj | 542 +++++++++--------- .../JPNavigationController.xcconfig | 8 +- .../Masonry/Masonry.xcconfig | 8 +- .../Pods-JPVideoPlayerDemo-frameworks.sh | 57 +- .../Pods-JPVideoPlayerDemo-resources.sh | 18 +- .../Pods-JPVideoPlayerDemo.debug.xcconfig | 6 +- .../Pods-JPVideoPlayerDemo.release.xcconfig | 6 +- 12 files changed, 376 insertions(+), 305 deletions(-) mode change 100755 => 100644 JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/project.pbxproj mode change 100755 => 100644 JPVideoPlayerDemo/Pods/Pods.xcodeproj/project.pbxproj diff --git a/JPVideoPlayer/JPVideoPlayerControlViews.m b/JPVideoPlayer/JPVideoPlayerControlViews.m index 92e5881..102bae3 100644 --- a/JPVideoPlayer/JPVideoPlayerControlViews.m +++ b/JPVideoPlayer/JPVideoPlayerControlViews.m @@ -103,7 +103,7 @@ - (void)playProgressDidChangeElapsedSeconds:(NSTimeInterval)elapsedSeconds NSParameterAssert(delta <= 1); delta = MIN(1, delta); delta = MAX(0, delta); - [self.dragSlider setValue:delta animated:YES]; + [self.dragSlider setValue:delta animated:NO]; self.totalSeconds = totalSeconds; self.elapsedSeconds = elapsedSeconds; } @@ -728,7 +728,7 @@ - (void)playProgressDidChangeElapsedSeconds:(NSTimeInterval)elapsedSeconds NSParameterAssert(delta <= 1); delta = MIN(1, delta); delta = MAX(0, delta); - [self.elapsedProgressView setProgress:delta animated:YES]; + [self.elapsedProgressView setProgress:delta animated:NO]; self.totalSeconds = totalSeconds; self.elapsedSeconds = elapsedSeconds; } diff --git a/JPVideoPlayerDemo/.DS_Store b/JPVideoPlayerDemo/.DS_Store index 767d24af78c261f61c45bc144893db8f4494e198..be2ce6782833dca922422e3dbac90e079e1554d0 100755 GIT binary patch delta 344 zcmZoMXfc=|#>B!ku~2NHo}wr>0|Nsi1A_nqLkdGGLq0gY=84S9nOQ+nf|EZm zDJgj7TP0@=JdLSzjy02C}>#Q*>R delta 118 zcmZoMXfc=|#>B)qu~2NHo}w@t0|Nsi1A_nqLt 2.1.3) - Masonry +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - JPNavigationController + - Masonry + SPEC CHECKSUMS: JPNavigationController: f174edc3572edd9cd60cc65b51a14b6d75e47e9a Masonry: 678fab65091a9290e40e2832a55e7ab731aad201 PODFILE CHECKSUM: ba245dcff116910af192aa836652567e077cd9c7 -COCOAPODS: 1.3.1 +COCOAPODS: 1.5.3 diff --git a/JPVideoPlayerDemo/Pods/Manifest.lock b/JPVideoPlayerDemo/Pods/Manifest.lock index d7636be..6f864e0 100755 --- a/JPVideoPlayerDemo/Pods/Manifest.lock +++ b/JPVideoPlayerDemo/Pods/Manifest.lock @@ -6,10 +6,15 @@ DEPENDENCIES: - JPNavigationController (~> 2.1.3) - Masonry +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - JPNavigationController + - Masonry + SPEC CHECKSUMS: JPNavigationController: f174edc3572edd9cd60cc65b51a14b6d75e47e9a Masonry: 678fab65091a9290e40e2832a55e7ab731aad201 PODFILE CHECKSUM: ba245dcff116910af192aa836652567e077cd9c7 -COCOAPODS: 1.3.1 +COCOAPODS: 1.5.3 diff --git a/JPVideoPlayerDemo/Pods/Pods.xcodeproj/project.pbxproj b/JPVideoPlayerDemo/Pods/Pods.xcodeproj/project.pbxproj old mode 100755 new mode 100644 index 07c9618..ca3c690 --- a/JPVideoPlayerDemo/Pods/Pods.xcodeproj/project.pbxproj +++ b/JPVideoPlayerDemo/Pods/Pods.xcodeproj/project.pbxproj @@ -7,82 +7,81 @@ objects = { /* Begin PBXBuildFile section */ - 01E09711F001C49F92A97060414E262B /* MASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = EDAA265AE6826C029E4CEC27792AAE9A /* MASCompositeConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0DA241E8952D3935647727692A545440 /* JPWarpViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DA7E58583895F09891E1C1269FBA860C /* JPWarpViewController.m */; }; - 13635B78121B99E5C03C92506A161607 /* MASViewAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C9F922D9C424B122805DA6FA5D6A92D /* MASViewAttribute.m */; }; - 1653B4F9F9C410386ED8980F12E7F45C /* UIView+ScreenCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B1823B851AA1D2D702744304C5C7E64 /* UIView+ScreenCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 19449EEE1E549CFF3815DD5424140DF9 /* UIViewController+ViewControllers.h in Headers */ = {isa = PBXBuildFile; fileRef = BC33FE0A9D1A6FE658399712AAFDC5A4 /* UIViewController+ViewControllers.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F3BD3BC28432BB5E2F73501E06E4579 /* MASUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E5DEEA1B55FCD2A423C1B7FCF5265B22 /* MASUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DBB74B8B5DDB1F621433DD12BF35102 /* MASViewConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = F55BCC3BE5B8F8E17E4F9BB62FCAC482 /* MASViewConstraint.m */; }; - 2DCC468C9F5FB9F7B069A42DF3FACFDC /* UIViewController+ViewControllers.m in Sources */ = {isa = PBXBuildFile; fileRef = C66CE8ECABC2A6C9914DEA6D6F607CDB /* UIViewController+ViewControllers.m */; }; - 3E8E6916C563B9CB12AA417275FC6EB3 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 77270315B4D2037ADF28025013DA6521 /* NSLayoutConstraint+MASDebugAdditions.m */; }; - 3F417AB6FF342BC44067F8839FC020B7 /* UINavigationController+FulllScreenPopPush.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FBC4C17FE0B9CB32384AAD0192A4109 /* UINavigationController+FulllScreenPopPush.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 404BCF2F8ED79AFE50B0BB724F02D3EB /* UINavigationBar+HitTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 629E2397777B3FD8CF6B674797015E69 /* UINavigationBar+HitTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 46B02971087F7990353BB0CEBCD7BC8D /* JPNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = F24D3CDC4992D1029D590EB817584E67 /* JPNavigationController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 490CA524521F7D444EA58FA915D7E99C /* NSArray+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = B29D056B6A45CDE0319DFAD59D3819E4 /* NSArray+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 49B903D576E09560C52AA92FDCC31A68 /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C279B898ACAB2D356EEE709F4EC4AAE /* Masonry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4CBE1B46550A3FB90FDD1CB9CBA7B7FE /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = BFB5C9B6566B70C177C5233D1790095F /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55CA77DDE6601E8C3F9DD7309BF4B939 /* JPNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F56FF8D55872A48B4B71E974AF685F4 /* JPNavigationController.m */; }; - 56132F3774B488813F223B4BE5801B41 /* UIColor+ImageGenerate.m in Sources */ = {isa = PBXBuildFile; fileRef = 43772C8B434B7F4DE99A7D568609A500 /* UIColor+ImageGenerate.m */; }; - 5F6CAD0CC83537FF1BDEF4D75EA5E495 /* JPNavigationControllerTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = F1CA28A683FBDDB4B35338E13E2AB17F /* JPNavigationControllerTransition.m */; }; - 61CCEA01CBE8EFFA5515E7A0D8635AAE /* MASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ADC386259B9332A133DB4DC91CA4EF2 /* MASCompositeConstraint.m */; }; - 6209E20926D79222E59F58B962BFAA1E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B63C6A64CF66340668996F78DA6BB482 /* UIKit.framework */; }; - 6249770A7D163B0F3001D5A76C5FA01C /* MASConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 567871E3D05DB6F04BB805F59A7A437F /* MASConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 64899C57C15A803374D57957219EDF9E /* JPNavigationControllerTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 61299DBA6C5F8531F7015A95D6B05942 /* JPNavigationControllerTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68F98758BA84B8EC3472A8C6FD646D16 /* Masonry-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A42DE00CB6822CB064834AC217BF1220 /* Masonry-dummy.m */; }; - 6D23E62A4689E38A9F72AE25B348E8D9 /* JPNavigationControllerKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 12F7738B5374ED3CBA3E9D0F45BC5388 /* JPNavigationControllerKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 70A494C29B5ED81D82DF27A3A4BD6F5C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B63C6A64CF66340668996F78DA6BB482 /* UIKit.framework */; }; - 7BDDE51AF16FA53A09506EDB91E1C3C2 /* NSArray+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FFAAD8752041CE3A7B851AC613B0174 /* NSArray+MASAdditions.m */; }; - 7D2B38BB937C48428D53179103732549 /* JPNavigationControllerCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 15009A35E7C7721978828BE8AB63A61E /* JPNavigationControllerCompat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 86EE1CB5473A4A07081D8DE3A2C45924 /* View+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A4B35C43566C22C0369CEDE32DAB7730 /* View+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89450A58FD91E5B227171FC75160E4EA /* MASConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = EC5935DCB949DE2117073D5BE5824FDA /* MASConstraint.m */; }; - 89936327896F5E1483354365B3D9EC06 /* JPTransitionShadowView.h in Headers */ = {isa = PBXBuildFile; fileRef = 01D0029C8A08F53DFE8BA2BE8742DDC5 /* JPTransitionShadowView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 955BE39896CA35F2A585DC3309E5FDA5 /* MASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = D37EE54EF49A94F61D59112EFD170541 /* MASLayoutConstraint.m */; }; - 9571401E09B426D59E675807B484B35D /* JPNavigationControllerGestureRecognizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 50CD97D0918324550F4CB50F1E4B0085 /* JPNavigationControllerGestureRecognizer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 969D281CB940D55255F9869A15B8AE69 /* Pods-JPVideoPlayerDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6584CA31774F976F43B71D2CA06F00D6 /* Pods-JPVideoPlayerDemo-dummy.m */; }; - 983CB852CBBFBC04C2A6BA407E34F59B /* View+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A5F5F0C65B5867965EE4BEE98EFC8E5A /* View+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9934AEA2C891C201D8ED5746FF42FE1B /* NSLayoutConstraint+MASDebugAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 19C3854E70F47B4144B79C48E43D7A79 /* NSLayoutConstraint+MASDebugAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A1FA046FDFC42676D17FEC387B10D24A /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C6F243513AB9D49725772E203ADADDB /* View+MASAdditions.m */; }; - A41037983F1B6C0F46E0197D2BF204F2 /* JPWarpViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EA288FC60D38511EEF13C6ADE975B21 /* JPWarpViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6436E3CFFCBFE591E2D2A68ED90CAC6 /* MASLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4228AEC9CD48FC52DD30376F6AB83679 /* MASLayoutConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A83991D7C1373DF66020C2FDFC5D7564 /* MASViewConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BE820770DB5A00F83016E759DE9E574 /* MASViewConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A8CC13C53CAAAB14DCC8D5DEC770C600 /* JPBaseAnimationTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9FF79AFFF6F1F52EBB4B2500E9CF4F /* JPBaseAnimationTransition.m */; }; - A976D39E424FA5E9BA765C5F87378F8D /* JPNavigationController-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AA32F98F620FAEF16F01E0588A55581 /* JPNavigationController-dummy.m */; }; - AC6F1E816209A1D340EFA25550F76B7C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D88AAE1F92055A60CC2FC970D7D34634 /* Foundation.framework */; }; - B1711AB98237F0BAE6C62F1516440E17 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D88AAE1F92055A60CC2FC970D7D34634 /* Foundation.framework */; }; - B5AF6E6F1EE59531C2FAFBE83CD0B5AB /* UIView+ScreenCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = F18A38B84D5AB81B0B21FC73BF8B3656 /* UIView+ScreenCapture.m */; }; - B62C685EB8952A504322BE9FEC06F811 /* UINavigationBar+HitTest.m in Sources */ = {isa = PBXBuildFile; fileRef = D013299BF5961E35883E5F8FAC02A71C /* UINavigationBar+HitTest.m */; }; - BD222343236F3F660CFBD8656FCF6009 /* JPWarpNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9157DC47F6AE732702D4FBB306EA7C3C /* JPWarpNavigationController.m */; }; - BDBF8D4BF0D3765F9B15BA096AED3380 /* JPNavigationControllerGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 26072E14E188B77FFFD2FDE3020C99B4 /* JPNavigationControllerGestureRecognizer.m */; }; - BFFB81090044D77A8E4E0733F3F3D6B5 /* UIColor+ImageGenerate.h in Headers */ = {isa = PBXBuildFile; fileRef = 756258683A639C16EF2EDAEEAD02FDCD /* UIColor+ImageGenerate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C3E6D51F694C7527FAF4E7D5AEEEE8E8 /* JPTransitionShadowView.m in Sources */ = {isa = PBXBuildFile; fileRef = 42341542F0CC64E55D832F3116751944 /* JPTransitionShadowView.m */; }; - C6D674BB96A4233990A3D92D6693B6EF /* JPWarpNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = B81B33DFC99F15D59E1E1A65F3CD83D7 /* JPWarpNavigationController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C88F85D3200060BD98FC13EA58121706 /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = D1A074720A075F1118A136D1335EF101 /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CC69C87E8D6AE2804648827B78656FB0 /* JPPushAnimationTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 7417009D080ED048F1277F8D17BB1331 /* JPPushAnimationTransition.m */; }; - D7CE05A743B7ACD50796191FA442814C /* ViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 124625635F68FEA607E2D1191B7432D7 /* ViewController+MASAdditions.m */; }; - DE15DDB6B21B918B2D68B4B8C6A5EDC6 /* JPNavigationControllerProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = B829FC45FDD9762218DC8B921E23F80F /* JPNavigationControllerProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DF7F88B58B564EDF169EC0C9CF8E5124 /* MASConstraintMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 095596FBA1A435C7341BFD7F672854D2 /* MASConstraintMaker.m */; }; - E072DA57403C4BFF9B10467BE05604C5 /* NSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 33AE654F39CC4B25E03926B9D2212781 /* NSArray+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E1E771349813022263F549BDF33CB4BB /* MASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 588A906AC93B6997CD26D800578F4C0D /* MASViewAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E9FE7244FF2C2E3ABA969FB44C36F79C /* JPPushAnimationTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = B9ACE5D4EAA7B73E091E167B7DFC4E88 /* JPPushAnimationTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EC48DE078CA5E55922CCE02354D475CD /* MASConstraintMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = EACB4237997F4951703FF587382D3198 /* MASConstraintMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F0B56A7D38A399A2F67F9920C9526A66 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D88AAE1F92055A60CC2FC970D7D34634 /* Foundation.framework */; }; - F0ED48D1D320999434FBB67E18BEDF04 /* JPBaseAnimationTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DC5C0C9DFC51D6B2DCE42D674A3E78 /* JPBaseAnimationTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 012393CEBEFCF738B6E2C3F8A5D94D56 /* JPWarpNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9157DC47F6AE732702D4FBB306EA7C3C /* JPWarpNavigationController.m */; }; + 04864C7CCCD33CDC3AE4728645C445B9 /* JPNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = F24D3CDC4992D1029D590EB817584E67 /* JPNavigationController.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 049B460E1DDF110E868627655CE0ADEA /* MASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 588A906AC93B6997CD26D800578F4C0D /* MASViewAttribute.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0BED362262BF36B8F775BC5810DD7EDE /* NSArray+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = B29D056B6A45CDE0319DFAD59D3819E4 /* NSArray+MASAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 12B1110786810911F8F4D419021CF630 /* MASConstraintMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 095596FBA1A435C7341BFD7F672854D2 /* MASConstraintMaker.m */; }; + 152A87F3FB0450975932CF5C4CC7C78A /* JPBaseAnimationTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9FF79AFFF6F1F52EBB4B2500E9CF4F /* JPBaseAnimationTransition.m */; }; + 18BAD8398B6961E1134766FC0726C8C7 /* UIColor+ImageGenerate.m in Sources */ = {isa = PBXBuildFile; fileRef = 43772C8B434B7F4DE99A7D568609A500 /* UIColor+ImageGenerate.m */; }; + 1D78E256E636FCCB7DB7C39C673E6570 /* JPPushAnimationTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = B9ACE5D4EAA7B73E091E167B7DFC4E88 /* JPPushAnimationTransition.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1EC8595D0E176DB06815789B6F7E35C1 /* MASConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 567871E3D05DB6F04BB805F59A7A437F /* MASConstraint.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2A6EEFDF3EE2BBBF63F6063C3F6747A1 /* View+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A5F5F0C65B5867965EE4BEE98EFC8E5A /* View+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2AF8E8005BF2A4EBAC866F0A1AF5975C /* NSLayoutConstraint+MASDebugAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 19C3854E70F47B4144B79C48E43D7A79 /* NSLayoutConstraint+MASDebugAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2BBA747A4E46FFA08C5AFE5D3F6E9D7C /* NSArray+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FFAAD8752041CE3A7B851AC613B0174 /* NSArray+MASAdditions.m */; }; + 3162D4698FB3295EDF661DFD166E2B26 /* JPNavigationControllerGestureRecognizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 50CD97D0918324550F4CB50F1E4B0085 /* JPNavigationControllerGestureRecognizer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 38952A28635710B3B10BA2F6918F967F /* UIView+ScreenCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = F18A38B84D5AB81B0B21FC73BF8B3656 /* UIView+ScreenCapture.m */; }; + 38F3D784FFAE8F683F094CA4676DCF7B /* JPNavigationControllerGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 26072E14E188B77FFFD2FDE3020C99B4 /* JPNavigationControllerGestureRecognizer.m */; }; + 418BA71FF0CA977116A8A0F1291FBFE8 /* JPWarpViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EA288FC60D38511EEF13C6ADE975B21 /* JPWarpViewController.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 44081CCF462AE437F36222476DDA9816 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC2C02191C153C1554B35DEE8B2D09D4 /* UIKit.framework */; }; + 579278D8E1F9656ACED20350DE32848F /* UINavigationBar+HitTest.m in Sources */ = {isa = PBXBuildFile; fileRef = D013299BF5961E35883E5F8FAC02A71C /* UINavigationBar+HitTest.m */; }; + 59E460AA853038A50B89ED33CC615FB4 /* MASLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4228AEC9CD48FC52DD30376F6AB83679 /* MASLayoutConstraint.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 602B84E3F09A78687197C220921751AA /* JPWarpViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DA7E58583895F09891E1C1269FBA860C /* JPWarpViewController.m */; }; + 6133D4416359A441948608B123B7E918 /* JPBaseAnimationTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DC5C0C9DFC51D6B2DCE42D674A3E78 /* JPBaseAnimationTransition.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 62D4BB566600AF2CA6FA7B6353E85A11 /* JPNavigationControllerTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 61299DBA6C5F8531F7015A95D6B05942 /* JPNavigationControllerTransition.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 63D9E4A31BD106B5721BAA531A257275 /* JPTransitionShadowView.m in Sources */ = {isa = PBXBuildFile; fileRef = 42341542F0CC64E55D832F3116751944 /* JPTransitionShadowView.m */; }; + 699096520CABA15A0196609EAA54D366 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 908E902E026C5C22904CF9014A5604AD /* Foundation.framework */; }; + 7157D66DCE09397047A7ECF10F15DCBF /* MASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = EDAA265AE6826C029E4CEC27792AAE9A /* MASCompositeConstraint.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 727C772F6B4A540561BDEACD87CC4021 /* UINavigationBar+HitTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 629E2397777B3FD8CF6B674797015E69 /* UINavigationBar+HitTest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7D48232AE62FD0A1E4C4EEC4AE858209 /* MASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ADC386259B9332A133DB4DC91CA4EF2 /* MASCompositeConstraint.m */; }; + 7DAE4940AFCB8C0CC3287B171CE61E38 /* UIViewController+ViewControllers.h in Headers */ = {isa = PBXBuildFile; fileRef = BC33FE0A9D1A6FE658399712AAFDC5A4 /* UIViewController+ViewControllers.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7FE1C36A12C885ECCD858E05C3685AF5 /* MASViewConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BE820770DB5A00F83016E759DE9E574 /* MASViewConstraint.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 80168118387EDB797864E124C50B7C9A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC2C02191C153C1554B35DEE8B2D09D4 /* UIKit.framework */; }; + 8FC982D1A372C956E5485056B3F20246 /* JPNavigationControllerProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = B829FC45FDD9762218DC8B921E23F80F /* JPNavigationControllerProtocol.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 91BEFCA99AED2127184DEE584255FBFE /* MASViewAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C9F922D9C424B122805DA6FA5D6A92D /* MASViewAttribute.m */; }; + 984313E6945E20ECF653F093D870CCE1 /* JPNavigationControllerCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 15009A35E7C7721978828BE8AB63A61E /* JPNavigationControllerCompat.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9B5D721633B82BF8FE44D1A435434DF9 /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = D1A074720A075F1118A136D1335EF101 /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9FD2FB144A530D0AB5A82A99CB4ED088 /* Masonry-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A42DE00CB6822CB064834AC217BF1220 /* Masonry-dummy.m */; }; + 9FFB136A73785357DB71040EE98D64E8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 908E902E026C5C22904CF9014A5604AD /* Foundation.framework */; }; + A08A21B9333F68D5066060ACD379DCDF /* UINavigationController+FulllScreenPopPush.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FBC4C17FE0B9CB32384AAD0192A4109 /* UINavigationController+FulllScreenPopPush.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A2839EE1C3CFDBC573DF28B3EAAFF1B5 /* MASConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = EC5935DCB949DE2117073D5BE5824FDA /* MASConstraint.m */; }; + ADB022A853D74C0A9F48BC16D4EA59CF /* View+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A4B35C43566C22C0369CEDE32DAB7730 /* View+MASAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B4BEBC36B586556BFDEDDB9F6D669239 /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C279B898ACAB2D356EEE709F4EC4AAE /* Masonry.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B5BE571A0725C4506001C206FB69C2F7 /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = BFB5C9B6566B70C177C5233D1790095F /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BC4BB4FAA82D4C4C439CE83F0C004392 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 77270315B4D2037ADF28025013DA6521 /* NSLayoutConstraint+MASDebugAdditions.m */; }; + C0953168C5916BF83D7C7BDE01A2A300 /* NSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 33AE654F39CC4B25E03926B9D2212781 /* NSArray+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C1303CEB6117D6F4D6B2F63C69149B8E /* UIView+ScreenCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B1823B851AA1D2D702744304C5C7E64 /* UIView+ScreenCapture.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C16C13212FB04830D89E4913D41BFC6A /* Pods-JPVideoPlayerDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6584CA31774F976F43B71D2CA06F00D6 /* Pods-JPVideoPlayerDemo-dummy.m */; }; + C6074AEE7605822456EA1DA41295F9AF /* UIColor+ImageGenerate.h in Headers */ = {isa = PBXBuildFile; fileRef = 756258683A639C16EF2EDAEEAD02FDCD /* UIColor+ImageGenerate.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CE523F88E410C2942E1A54E391229AEB /* JPNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F56FF8D55872A48B4B71E974AF685F4 /* JPNavigationController.m */; }; + D52FD4D38F7D8083174D03819CF5F559 /* UIViewController+ViewControllers.m in Sources */ = {isa = PBXBuildFile; fileRef = C66CE8ECABC2A6C9914DEA6D6F607CDB /* UIViewController+ViewControllers.m */; }; + D69414EC55C9A49A3F7F1377DBFD2C24 /* JPPushAnimationTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 7417009D080ED048F1277F8D17BB1331 /* JPPushAnimationTransition.m */; }; + DB69FAD6D999B13BF9F64860542720D3 /* JPTransitionShadowView.h in Headers */ = {isa = PBXBuildFile; fileRef = 01D0029C8A08F53DFE8BA2BE8742DDC5 /* JPTransitionShadowView.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E3312A275C1003F02C7386349FBE4195 /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C6F243513AB9D49725772E203ADADDB /* View+MASAdditions.m */; }; + E385A08CD10C4AC61014F60783A1B947 /* JPNavigationControllerKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 12F7738B5374ED3CBA3E9D0F45BC5388 /* JPNavigationControllerKit.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E88F2B545510E531C518C2B9AA3ACCFD /* JPNavigationControllerTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = F1CA28A683FBDDB4B35338E13E2AB17F /* JPNavigationControllerTransition.m */; }; + E8D2B06760AD270146CF0C5CB07E2043 /* MASUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E5DEEA1B55FCD2A423C1B7FCF5265B22 /* MASUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F319E95FAAE49A1F1D979A45403AE906 /* JPNavigationController-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AA32F98F620FAEF16F01E0588A55581 /* JPNavigationController-dummy.m */; }; + F57F3C8BF466FA98523222E68B41B77D /* MASViewConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = F55BCC3BE5B8F8E17E4F9BB62FCAC482 /* MASViewConstraint.m */; }; + F6FCDB8385D380A13B3303853DDEEDAB /* ViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 124625635F68FEA607E2D1191B7432D7 /* ViewController+MASAdditions.m */; }; + FC2959986CFDEBB4308E36CF89A325B6 /* MASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = D37EE54EF49A94F61D59112EFD170541 /* MASLayoutConstraint.m */; }; + FCD64586536B2C1974F92ACAF8447ACD /* MASConstraintMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = EACB4237997F4951703FF587382D3198 /* MASConstraintMaker.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FFD1A76172058DCAC371A2DC71985872 /* JPWarpNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = B81B33DFC99F15D59E1E1A65F3CD83D7 /* JPWarpNavigationController.h */; settings = {ATTRIBUTES = (Project, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 6CB6AD2EB986E2C1129FDE873FA5F5E7 /* PBXContainerItemProxy */ = { + 09BE64446B33A3E82901D780BAF07C50 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 915E8FEADDA0644106187EA8CE7B2E00; + remoteGlobalIDString = C36F900B8ED706C8175130D7B4D79F83; remoteInfo = JPNavigationController; }; - 91C6C381C581CBA72C22712FC0F64275 /* PBXContainerItemProxy */ = { + D22B132F72D09562E5B95E47FE97DB47 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 9DC8D9E02903E93BD0B2FEC9D846EA20; + remoteGlobalIDString = 40A42EA465E764DD959C829C51404C08; remoteInfo = Masonry; }; /* End PBXContainerItemProxy section */ @@ -125,6 +124,7 @@ 7BBB3D4B8215F5151BEF46AAE2F2B330 /* Pods-JPVideoPlayerDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-JPVideoPlayerDemo.release.xcconfig"; sourceTree = ""; }; 7C6F243513AB9D49725772E203ADADDB /* View+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "View+MASAdditions.m"; path = "Masonry/View+MASAdditions.m"; sourceTree = ""; }; 7EA288FC60D38511EEF13C6ADE975B21 /* JPWarpViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JPWarpViewController.h; path = JPNavigationController/JPWarpViewController.h; sourceTree = ""; }; + 908E902E026C5C22904CF9014A5604AD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 9157DC47F6AE732702D4FBB306EA7C3C /* JPWarpNavigationController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JPWarpNavigationController.m; path = JPNavigationController/JPWarpNavigationController.m; sourceTree = ""; }; 938C6819ED29F581BA50870024B1DBF0 /* Pods-JPVideoPlayerDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-JPVideoPlayerDemo.debug.xcconfig"; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; @@ -134,11 +134,11 @@ AD7F5A3300762A7C3B41C1803E8D7B98 /* Pods-JPVideoPlayerDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-JPVideoPlayerDemo-acknowledgements.markdown"; sourceTree = ""; }; AFD713762BF7F114F4A22D2A64D2B7DB /* Masonry.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.xcconfig; sourceTree = ""; }; B29D056B6A45CDE0319DFAD59D3819E4 /* NSArray+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASAdditions.h"; path = "Masonry/NSArray+MASAdditions.h"; sourceTree = ""; }; - B63C6A64CF66340668996F78DA6BB482 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; B6DC5C0C9DFC51D6B2DCE42D674A3E78 /* JPBaseAnimationTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JPBaseAnimationTransition.h; path = JPNavigationController/JPBaseAnimationTransition.h; sourceTree = ""; }; B81B33DFC99F15D59E1E1A65F3CD83D7 /* JPWarpNavigationController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JPWarpNavigationController.h; path = JPNavigationController/JPWarpNavigationController.h; sourceTree = ""; }; B829FC45FDD9762218DC8B921E23F80F /* JPNavigationControllerProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JPNavigationControllerProtocol.h; path = JPNavigationController/JPNavigationControllerProtocol.h; sourceTree = ""; }; B9ACE5D4EAA7B73E091E167B7DFC4E88 /* JPPushAnimationTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JPPushAnimationTransition.h; path = JPNavigationController/JPPushAnimationTransition.h; sourceTree = ""; }; + BC2C02191C153C1554B35DEE8B2D09D4 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; BC33FE0A9D1A6FE658399712AAFDC5A4 /* UIViewController+ViewControllers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+ViewControllers.h"; path = "JPNavigationController/UIViewController+ViewControllers.h"; sourceTree = ""; }; BEDC75A0628C04B4E64BD822E20BED12 /* Pods-JPVideoPlayerDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-JPVideoPlayerDemo-frameworks.sh"; sourceTree = ""; }; BFB5C9B6566B70C177C5233D1790095F /* MASConstraint+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MASConstraint+Private.h"; path = "Masonry/MASConstraint+Private.h"; sourceTree = ""; }; @@ -148,7 +148,6 @@ D013299BF5961E35883E5F8FAC02A71C /* UINavigationBar+HitTest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UINavigationBar+HitTest.m"; path = "JPNavigationController/UINavigationBar+HitTest.m"; sourceTree = ""; }; D1A074720A075F1118A136D1335EF101 /* ViewController+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ViewController+MASAdditions.h"; path = "Masonry/ViewController+MASAdditions.h"; sourceTree = ""; }; D37EE54EF49A94F61D59112EFD170541 /* MASLayoutConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASLayoutConstraint.m; path = Masonry/MASLayoutConstraint.m; sourceTree = ""; }; - D88AAE1F92055A60CC2FC970D7D34634 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; DA7E58583895F09891E1C1269FBA860C /* JPWarpViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JPWarpViewController.m; path = JPNavigationController/JPWarpViewController.m; sourceTree = ""; }; DF9FF79AFFF6F1F52EBB4B2500E9CF4F /* JPBaseAnimationTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JPBaseAnimationTransition.m; path = JPNavigationController/JPBaseAnimationTransition.m; sourceTree = ""; }; E5DEEA1B55FCD2A423C1B7FCF5265B22 /* MASUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASUtilities.h; path = Masonry/MASUtilities.h; sourceTree = ""; }; @@ -164,29 +163,28 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 6FD8312A1AEB348F49A81C438DB25115 /* Frameworks */ = { + 98A5B6E315008B77DFA8DEF9BB111D0B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F0B56A7D38A399A2F67F9920C9526A66 /* Foundation.framework in Frameworks */, - 6209E20926D79222E59F58B962BFAA1E /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 85446CBBF8C5C615A8E2134786B05923 /* Frameworks */ = { + C95ADA1C4EF2FA5FF4EEC54DD65EAA3C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AC6F1E816209A1D340EFA25550F76B7C /* Foundation.framework in Frameworks */, - 70A494C29B5ED81D82DF27A3A4BD6F5C /* UIKit.framework in Frameworks */, + 699096520CABA15A0196609EAA54D366 /* Foundation.framework in Frameworks */, + 44081CCF462AE437F36222476DDA9816 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - CAB56A3280543B6A61C6774A953F3864 /* Frameworks */ = { + D5DBE6041E57221A2B2E132E7F140297 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B1711AB98237F0BAE6C62F1516440E17 /* Foundation.framework in Frameworks */, + 9FFB136A73785357DB71040EE98D64E8 /* Foundation.framework in Frameworks */, + 80168118387EDB797864E124C50B7C9A /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -204,6 +202,15 @@ path = "../Target Support Files/JPNavigationController"; sourceTree = ""; }; + 10DEDCB394BAA0C7FEDEBE330207B074 /* iOS */ = { + isa = PBXGroup; + children = ( + 908E902E026C5C22904CF9014A5604AD /* Foundation.framework */, + BC2C02191C153C1554B35DEE8B2D09D4 /* UIKit.framework */, + ); + name = iOS; + sourceTree = ""; + }; 1F895048C0660E48F4370E94061F6308 /* Support Files */ = { isa = PBXGroup; children = ( @@ -226,20 +233,11 @@ 433CD3331B6C3787F473C941B61FC68F /* Frameworks */ = { isa = PBXGroup; children = ( - 438B396F6B4147076630CAEFE34282C1 /* iOS */, + 10DEDCB394BAA0C7FEDEBE330207B074 /* iOS */, ); name = Frameworks; sourceTree = ""; }; - 438B396F6B4147076630CAEFE34282C1 /* iOS */ = { - isa = PBXGroup; - children = ( - D88AAE1F92055A60CC2FC970D7D34634 /* Foundation.framework */, - B63C6A64CF66340668996F78DA6BB482 /* UIKit.framework */, - ); - name = iOS; - sourceTree = ""; - }; 4ECA0B35873C1319F3C819757D46E709 /* Resources */ = { isa = PBXGroup; children = ( @@ -368,104 +366,112 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - BD57B6324F43233C1BF5CE9B1833955C /* Headers */ = { + 543777CFE5E87F8D74E7B6A7E372F6A2 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - F0ED48D1D320999434FBB67E18BEDF04 /* JPBaseAnimationTransition.h in Headers */, - 46B02971087F7990353BB0CEBCD7BC8D /* JPNavigationController.h in Headers */, - 7D2B38BB937C48428D53179103732549 /* JPNavigationControllerCompat.h in Headers */, - 9571401E09B426D59E675807B484B35D /* JPNavigationControllerGestureRecognizer.h in Headers */, - 6D23E62A4689E38A9F72AE25B348E8D9 /* JPNavigationControllerKit.h in Headers */, - DE15DDB6B21B918B2D68B4B8C6A5EDC6 /* JPNavigationControllerProtocol.h in Headers */, - 64899C57C15A803374D57957219EDF9E /* JPNavigationControllerTransition.h in Headers */, - E9FE7244FF2C2E3ABA969FB44C36F79C /* JPPushAnimationTransition.h in Headers */, - 89936327896F5E1483354365B3D9EC06 /* JPTransitionShadowView.h in Headers */, - C6D674BB96A4233990A3D92D6693B6EF /* JPWarpNavigationController.h in Headers */, - A41037983F1B6C0F46E0197D2BF204F2 /* JPWarpViewController.h in Headers */, - BFFB81090044D77A8E4E0733F3F3D6B5 /* UIColor+ImageGenerate.h in Headers */, - 404BCF2F8ED79AFE50B0BB724F02D3EB /* UINavigationBar+HitTest.h in Headers */, - 3F417AB6FF342BC44067F8839FC020B7 /* UINavigationController+FulllScreenPopPush.h in Headers */, - 1653B4F9F9C410386ED8980F12E7F45C /* UIView+ScreenCapture.h in Headers */, - 19449EEE1E549CFF3815DD5424140DF9 /* UIViewController+ViewControllers.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - BDF73468622762862D2FB76ED4AC0D8E /* Headers */ = { + 8990EEE1BB31A1D570F04DF35DD765DD /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 01E09711F001C49F92A97060414E262B /* MASCompositeConstraint.h in Headers */, - 4CBE1B46550A3FB90FDD1CB9CBA7B7FE /* MASConstraint+Private.h in Headers */, - 6249770A7D163B0F3001D5A76C5FA01C /* MASConstraint.h in Headers */, - EC48DE078CA5E55922CCE02354D475CD /* MASConstraintMaker.h in Headers */, - A6436E3CFFCBFE591E2D2A68ED90CAC6 /* MASLayoutConstraint.h in Headers */, - 49B903D576E09560C52AA92FDCC31A68 /* Masonry.h in Headers */, - 1F3BD3BC28432BB5E2F73501E06E4579 /* MASUtilities.h in Headers */, - E1E771349813022263F549BDF33CB4BB /* MASViewAttribute.h in Headers */, - A83991D7C1373DF66020C2FDFC5D7564 /* MASViewConstraint.h in Headers */, - 490CA524521F7D444EA58FA915D7E99C /* NSArray+MASAdditions.h in Headers */, - E072DA57403C4BFF9B10467BE05604C5 /* NSArray+MASShorthandAdditions.h in Headers */, - 9934AEA2C891C201D8ED5746FF42FE1B /* NSLayoutConstraint+MASDebugAdditions.h in Headers */, - 86EE1CB5473A4A07081D8DE3A2C45924 /* View+MASAdditions.h in Headers */, - 983CB852CBBFBC04C2A6BA407E34F59B /* View+MASShorthandAdditions.h in Headers */, - C88F85D3200060BD98FC13EA58121706 /* ViewController+MASAdditions.h in Headers */, + 7157D66DCE09397047A7ECF10F15DCBF /* MASCompositeConstraint.h in Headers */, + B5BE571A0725C4506001C206FB69C2F7 /* MASConstraint+Private.h in Headers */, + 1EC8595D0E176DB06815789B6F7E35C1 /* MASConstraint.h in Headers */, + FCD64586536B2C1974F92ACAF8447ACD /* MASConstraintMaker.h in Headers */, + 59E460AA853038A50B89ED33CC615FB4 /* MASLayoutConstraint.h in Headers */, + B4BEBC36B586556BFDEDDB9F6D669239 /* Masonry.h in Headers */, + E8D2B06760AD270146CF0C5CB07E2043 /* MASUtilities.h in Headers */, + 049B460E1DDF110E868627655CE0ADEA /* MASViewAttribute.h in Headers */, + 7FE1C36A12C885ECCD858E05C3685AF5 /* MASViewConstraint.h in Headers */, + 0BED362262BF36B8F775BC5810DD7EDE /* NSArray+MASAdditions.h in Headers */, + C0953168C5916BF83D7C7BDE01A2A300 /* NSArray+MASShorthandAdditions.h in Headers */, + 2AF8E8005BF2A4EBAC866F0A1AF5975C /* NSLayoutConstraint+MASDebugAdditions.h in Headers */, + ADB022A853D74C0A9F48BC16D4EA59CF /* View+MASAdditions.h in Headers */, + 2A6EEFDF3EE2BBBF63F6063C3F6747A1 /* View+MASShorthandAdditions.h in Headers */, + 9B5D721633B82BF8FE44D1A435434DF9 /* ViewController+MASAdditions.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DEB40540F1E28B8D7510C11578DA8518 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 6133D4416359A441948608B123B7E918 /* JPBaseAnimationTransition.h in Headers */, + 04864C7CCCD33CDC3AE4728645C445B9 /* JPNavigationController.h in Headers */, + 984313E6945E20ECF653F093D870CCE1 /* JPNavigationControllerCompat.h in Headers */, + 3162D4698FB3295EDF661DFD166E2B26 /* JPNavigationControllerGestureRecognizer.h in Headers */, + E385A08CD10C4AC61014F60783A1B947 /* JPNavigationControllerKit.h in Headers */, + 8FC982D1A372C956E5485056B3F20246 /* JPNavigationControllerProtocol.h in Headers */, + 62D4BB566600AF2CA6FA7B6353E85A11 /* JPNavigationControllerTransition.h in Headers */, + 1D78E256E636FCCB7DB7C39C673E6570 /* JPPushAnimationTransition.h in Headers */, + DB69FAD6D999B13BF9F64860542720D3 /* JPTransitionShadowView.h in Headers */, + FFD1A76172058DCAC371A2DC71985872 /* JPWarpNavigationController.h in Headers */, + 418BA71FF0CA977116A8A0F1291FBFE8 /* JPWarpViewController.h in Headers */, + C6074AEE7605822456EA1DA41295F9AF /* UIColor+ImageGenerate.h in Headers */, + 727C772F6B4A540561BDEACD87CC4021 /* UINavigationBar+HitTest.h in Headers */, + A08A21B9333F68D5066060ACD379DCDF /* UINavigationController+FulllScreenPopPush.h in Headers */, + C1303CEB6117D6F4D6B2F63C69149B8E /* UIView+ScreenCapture.h in Headers */, + 7DAE4940AFCB8C0CC3287B171CE61E38 /* UIViewController+ViewControllers.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 915E8FEADDA0644106187EA8CE7B2E00 /* JPNavigationController */ = { + 40A42EA465E764DD959C829C51404C08 /* Masonry */ = { isa = PBXNativeTarget; - buildConfigurationList = 7FB5B57C46CCC7929EA289FD249302BF /* Build configuration list for PBXNativeTarget "JPNavigationController" */; + buildConfigurationList = CFB00DFDEF804FAD5E3E20BC782ADAB8 /* Build configuration list for PBXNativeTarget "Masonry" */; buildPhases = ( - A2B657B6966DB54024DC78BB2DD6EE4B /* Sources */, - 85446CBBF8C5C615A8E2134786B05923 /* Frameworks */, - BD57B6324F43233C1BF5CE9B1833955C /* Headers */, + 8990EEE1BB31A1D570F04DF35DD765DD /* Headers */, + CD3F0F0348E695642F4232776EFC8AD5 /* Sources */, + C95ADA1C4EF2FA5FF4EEC54DD65EAA3C /* Frameworks */, ); buildRules = ( ); dependencies = ( ); - name = JPNavigationController; - productName = JPNavigationController; - productReference = 0053DC90A4F7A50307E5F006ABF6CB7E /* libJPNavigationController.a */; + name = Masonry; + productName = Masonry; + productReference = C5116D54DF09E9274DF13434B7D468C4 /* libMasonry.a */; productType = "com.apple.product-type.library.static"; }; - 9DC8D9E02903E93BD0B2FEC9D846EA20 /* Masonry */ = { + 5E538C769A0E0EC063F8818DAE7550B7 /* Pods-JPVideoPlayerDemo */ = { isa = PBXNativeTarget; - buildConfigurationList = 34CAE1CB89EDBF2E53735CC5D4E5E69F /* Build configuration list for PBXNativeTarget "Masonry" */; + buildConfigurationList = 366F9229BAC521E3891FB80B3C657794 /* Build configuration list for PBXNativeTarget "Pods-JPVideoPlayerDemo" */; buildPhases = ( - C4BE2DC1E815E7367562323223772531 /* Sources */, - 6FD8312A1AEB348F49A81C438DB25115 /* Frameworks */, - BDF73468622762862D2FB76ED4AC0D8E /* Headers */, + 543777CFE5E87F8D74E7B6A7E372F6A2 /* Headers */, + 885B641807C089027DBAEAE09AE9CD6D /* Sources */, + 98A5B6E315008B77DFA8DEF9BB111D0B /* Frameworks */, ); buildRules = ( ); dependencies = ( + 79EBD4B8295B272FC6CA092F1F756EC4 /* PBXTargetDependency */, + F05F326665F9B227A3F3D8346C421ACD /* PBXTargetDependency */, ); - name = Masonry; - productName = Masonry; - productReference = C5116D54DF09E9274DF13434B7D468C4 /* libMasonry.a */; + name = "Pods-JPVideoPlayerDemo"; + productName = "Pods-JPVideoPlayerDemo"; + productReference = F12C93C585F861DB703DFA07B51F5471 /* libPods-JPVideoPlayerDemo.a */; productType = "com.apple.product-type.library.static"; }; - FB2E6A68DB07F1F07DD46B6D55C2E365 /* Pods-JPVideoPlayerDemo */ = { + C36F900B8ED706C8175130D7B4D79F83 /* JPNavigationController */ = { isa = PBXNativeTarget; - buildConfigurationList = F2CF13AD3905807DEE236021E3D96773 /* Build configuration list for PBXNativeTarget "Pods-JPVideoPlayerDemo" */; + buildConfigurationList = 54D5FB71947FB1E3EC781521E2BDF6D3 /* Build configuration list for PBXNativeTarget "JPNavigationController" */; buildPhases = ( - 966595BED8ACC121996F594794331DE5 /* Sources */, - CAB56A3280543B6A61C6774A953F3864 /* Frameworks */, + DEB40540F1E28B8D7510C11578DA8518 /* Headers */, + C9311C61F0088037E9851EE2EACBC905 /* Sources */, + D5DBE6041E57221A2B2E132E7F140297 /* Frameworks */, ); buildRules = ( ); dependencies = ( - CA52853660395A58A5945A4AA1580BED /* PBXTargetDependency */, - 9039133999A8D7CA119304F5C6BEC0F0 /* PBXTargetDependency */, ); - name = "Pods-JPVideoPlayerDemo"; - productName = "Pods-JPVideoPlayerDemo"; - productReference = F12C93C585F861DB703DFA07B51F5471 /* libPods-JPVideoPlayerDemo.a */; + name = JPNavigationController; + productName = JPNavigationController; + productReference = 0053DC90A4F7A50307E5F006ABF6CB7E /* libJPNavigationController.a */; productType = "com.apple.product-type.library.static"; }; /* End PBXNativeTarget section */ @@ -474,8 +480,8 @@ D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0700; + LastSwiftUpdateCheck = 0930; + LastUpgradeCheck = 0930; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -489,79 +495,102 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 915E8FEADDA0644106187EA8CE7B2E00 /* JPNavigationController */, - 9DC8D9E02903E93BD0B2FEC9D846EA20 /* Masonry */, - FB2E6A68DB07F1F07DD46B6D55C2E365 /* Pods-JPVideoPlayerDemo */, + C36F900B8ED706C8175130D7B4D79F83 /* JPNavigationController */, + 40A42EA465E764DD959C829C51404C08 /* Masonry */, + 5E538C769A0E0EC063F8818DAE7550B7 /* Pods-JPVideoPlayerDemo */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 966595BED8ACC121996F594794331DE5 /* Sources */ = { + 885B641807C089027DBAEAE09AE9CD6D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 969D281CB940D55255F9869A15B8AE69 /* Pods-JPVideoPlayerDemo-dummy.m in Sources */, + C16C13212FB04830D89E4913D41BFC6A /* Pods-JPVideoPlayerDemo-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - A2B657B6966DB54024DC78BB2DD6EE4B /* Sources */ = { + C9311C61F0088037E9851EE2EACBC905 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A8CC13C53CAAAB14DCC8D5DEC770C600 /* JPBaseAnimationTransition.m in Sources */, - A976D39E424FA5E9BA765C5F87378F8D /* JPNavigationController-dummy.m in Sources */, - 55CA77DDE6601E8C3F9DD7309BF4B939 /* JPNavigationController.m in Sources */, - BDBF8D4BF0D3765F9B15BA096AED3380 /* JPNavigationControllerGestureRecognizer.m in Sources */, - 5F6CAD0CC83537FF1BDEF4D75EA5E495 /* JPNavigationControllerTransition.m in Sources */, - CC69C87E8D6AE2804648827B78656FB0 /* JPPushAnimationTransition.m in Sources */, - C3E6D51F694C7527FAF4E7D5AEEEE8E8 /* JPTransitionShadowView.m in Sources */, - BD222343236F3F660CFBD8656FCF6009 /* JPWarpNavigationController.m in Sources */, - 0DA241E8952D3935647727692A545440 /* JPWarpViewController.m in Sources */, - 56132F3774B488813F223B4BE5801B41 /* UIColor+ImageGenerate.m in Sources */, - B62C685EB8952A504322BE9FEC06F811 /* UINavigationBar+HitTest.m in Sources */, - B5AF6E6F1EE59531C2FAFBE83CD0B5AB /* UIView+ScreenCapture.m in Sources */, - 2DCC468C9F5FB9F7B069A42DF3FACFDC /* UIViewController+ViewControllers.m in Sources */, + 152A87F3FB0450975932CF5C4CC7C78A /* JPBaseAnimationTransition.m in Sources */, + F319E95FAAE49A1F1D979A45403AE906 /* JPNavigationController-dummy.m in Sources */, + CE523F88E410C2942E1A54E391229AEB /* JPNavigationController.m in Sources */, + 38F3D784FFAE8F683F094CA4676DCF7B /* JPNavigationControllerGestureRecognizer.m in Sources */, + E88F2B545510E531C518C2B9AA3ACCFD /* JPNavigationControllerTransition.m in Sources */, + D69414EC55C9A49A3F7F1377DBFD2C24 /* JPPushAnimationTransition.m in Sources */, + 63D9E4A31BD106B5721BAA531A257275 /* JPTransitionShadowView.m in Sources */, + 012393CEBEFCF738B6E2C3F8A5D94D56 /* JPWarpNavigationController.m in Sources */, + 602B84E3F09A78687197C220921751AA /* JPWarpViewController.m in Sources */, + 18BAD8398B6961E1134766FC0726C8C7 /* UIColor+ImageGenerate.m in Sources */, + 579278D8E1F9656ACED20350DE32848F /* UINavigationBar+HitTest.m in Sources */, + 38952A28635710B3B10BA2F6918F967F /* UIView+ScreenCapture.m in Sources */, + D52FD4D38F7D8083174D03819CF5F559 /* UIViewController+ViewControllers.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - C4BE2DC1E815E7367562323223772531 /* Sources */ = { + CD3F0F0348E695642F4232776EFC8AD5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 61CCEA01CBE8EFFA5515E7A0D8635AAE /* MASCompositeConstraint.m in Sources */, - 89450A58FD91E5B227171FC75160E4EA /* MASConstraint.m in Sources */, - DF7F88B58B564EDF169EC0C9CF8E5124 /* MASConstraintMaker.m in Sources */, - 955BE39896CA35F2A585DC3309E5FDA5 /* MASLayoutConstraint.m in Sources */, - 68F98758BA84B8EC3472A8C6FD646D16 /* Masonry-dummy.m in Sources */, - 13635B78121B99E5C03C92506A161607 /* MASViewAttribute.m in Sources */, - 2DBB74B8B5DDB1F621433DD12BF35102 /* MASViewConstraint.m in Sources */, - 7BDDE51AF16FA53A09506EDB91E1C3C2 /* NSArray+MASAdditions.m in Sources */, - 3E8E6916C563B9CB12AA417275FC6EB3 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */, - A1FA046FDFC42676D17FEC387B10D24A /* View+MASAdditions.m in Sources */, - D7CE05A743B7ACD50796191FA442814C /* ViewController+MASAdditions.m in Sources */, + 7D48232AE62FD0A1E4C4EEC4AE858209 /* MASCompositeConstraint.m in Sources */, + A2839EE1C3CFDBC573DF28B3EAAFF1B5 /* MASConstraint.m in Sources */, + 12B1110786810911F8F4D419021CF630 /* MASConstraintMaker.m in Sources */, + FC2959986CFDEBB4308E36CF89A325B6 /* MASLayoutConstraint.m in Sources */, + 9FD2FB144A530D0AB5A82A99CB4ED088 /* Masonry-dummy.m in Sources */, + 91BEFCA99AED2127184DEE584255FBFE /* MASViewAttribute.m in Sources */, + F57F3C8BF466FA98523222E68B41B77D /* MASViewConstraint.m in Sources */, + 2BBA747A4E46FFA08C5AFE5D3F6E9D7C /* NSArray+MASAdditions.m in Sources */, + BC4BB4FAA82D4C4C439CE83F0C004392 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */, + E3312A275C1003F02C7386349FBE4195 /* View+MASAdditions.m in Sources */, + F6FCDB8385D380A13B3303853DDEEDAB /* ViewController+MASAdditions.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 9039133999A8D7CA119304F5C6BEC0F0 /* PBXTargetDependency */ = { + 79EBD4B8295B272FC6CA092F1F756EC4 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Masonry; - target = 9DC8D9E02903E93BD0B2FEC9D846EA20 /* Masonry */; - targetProxy = 91C6C381C581CBA72C22712FC0F64275 /* PBXContainerItemProxy */; + name = JPNavigationController; + target = C36F900B8ED706C8175130D7B4D79F83 /* JPNavigationController */; + targetProxy = 09BE64446B33A3E82901D780BAF07C50 /* PBXContainerItemProxy */; }; - CA52853660395A58A5945A4AA1580BED /* PBXTargetDependency */ = { + F05F326665F9B227A3F3D8346C421ACD /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = JPNavigationController; - target = 915E8FEADDA0644106187EA8CE7B2E00 /* JPNavigationController */; - targetProxy = 6CB6AD2EB986E2C1129FDE873FA5F5E7 /* PBXContainerItemProxy */; + name = Masonry; + target = 40A42EA465E764DD959C829C51404C08 /* Masonry */; + targetProxy = D22B132F72D09562E5B95E47FE97DB47 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 38A72A20F22917DE929232E792928BD4 /* Debug */ = { + 1D3F48869EA6A0024D621535B6BC77C9 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AFD713762BF7F114F4A22D2A64D2B7DB /* Masonry.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/Masonry/Masonry-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = Masonry; + PRODUCT_NAME = Masonry; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 2651ED985672A17FBA68FDBBE3E32312 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 08200AE5ACF6E3FF07A21A8A8D4D1236 /* JPNavigationController.xcconfig */; buildSettings = { @@ -574,35 +603,41 @@ OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = JPNavigationController; + PRODUCT_NAME = JPNavigationController; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; - name = Debug; + name = Release; }; - 48B0687292FCCAF0C13CFF71991E9ACE /* Debug */ = { + 27B0AB8B3F2C508FAE95B978A9AE0607 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 938C6819ED29F581BA50870024B1DBF0 /* Pods-JPVideoPlayerDemo.debug.xcconfig */; + baseConfigurationReference = 08200AE5ACF6E3FF07A21A8A8D4D1236 /* JPNavigationController.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/JPNavigationController/JPNavigationController-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACH_O_TYPE = staticlib; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = JPNavigationController; + PRODUCT_NAME = JPNavigationController; + PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - B254DAA6CF0CE39F4A3D11B90A7E059A /* Release */ = { + 96434B6C8FF320C976A10DAD7174A4BB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -612,10 +647,12 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -623,6 +660,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -631,6 +669,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -650,57 +689,14 @@ GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; SYMROOT = "${SRCROOT}/../build"; }; name = Release; }; - B2EC7178CD496DB6CF33A493970CACA8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7BBB3D4B8215F5151BEF46AAE2F2B330 /* Pods-JPVideoPlayerDemo.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACH_O_TYPE = staticlib; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - C37F4CFEF0645101B374B62333D85EE4 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 08200AE5ACF6E3FF07A21A8A8D4D1236 /* JPNavigationController.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/JPNavigationController/JPNavigationController-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - DB4AA09D6A87734975482BB05CC1F54A /* Release */ = { + A254A1D5CAE40ABC54B15E5215496D62 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = AFD713762BF7F114F4A22D2A64D2B7DB /* Masonry.xcconfig */; buildSettings = { @@ -713,6 +709,8 @@ OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = Masonry; + PRODUCT_NAME = Masonry; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; @@ -722,28 +720,29 @@ }; name = Release; }; - E2EB527A037E509A0FEFD78B70F3433D /* Debug */ = { + B94B484B31B512A9283B8C02B4099F52 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AFD713762BF7F114F4A22D2A64D2B7DB /* Masonry.xcconfig */; + baseConfigurationReference = 7BBB3D4B8215F5151BEF46AAE2F2B330 /* Pods-JPVideoPlayerDemo.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/Masonry/Masonry-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACH_O_TYPE = staticlib; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PUBLIC_HEADERS_FOLDER_PATH = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; - name = Debug; + name = Release; }; - E4B68EE12B21C47CB798D9B1ECA6D7A7 /* Debug */ = { + D11C82AF2204B41B80412B8DC9C1D652 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -753,10 +752,12 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -764,6 +765,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -772,6 +774,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; @@ -793,51 +796,72 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SYMROOT = "${SRCROOT}/../build"; }; name = Debug; }; + D903CB998E2F6C9B4A224F42157AC4E6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 938C6819ED29F581BA50870024B1DBF0 /* Pods-JPVideoPlayerDemo.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACH_O_TYPE = staticlib; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - E4B68EE12B21C47CB798D9B1ECA6D7A7 /* Debug */, - B254DAA6CF0CE39F4A3D11B90A7E059A /* Release */, + D11C82AF2204B41B80412B8DC9C1D652 /* Debug */, + 96434B6C8FF320C976A10DAD7174A4BB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 34CAE1CB89EDBF2E53735CC5D4E5E69F /* Build configuration list for PBXNativeTarget "Masonry" */ = { + 366F9229BAC521E3891FB80B3C657794 /* Build configuration list for PBXNativeTarget "Pods-JPVideoPlayerDemo" */ = { isa = XCConfigurationList; buildConfigurations = ( - E2EB527A037E509A0FEFD78B70F3433D /* Debug */, - DB4AA09D6A87734975482BB05CC1F54A /* Release */, + D903CB998E2F6C9B4A224F42157AC4E6 /* Debug */, + B94B484B31B512A9283B8C02B4099F52 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7FB5B57C46CCC7929EA289FD249302BF /* Build configuration list for PBXNativeTarget "JPNavigationController" */ = { + 54D5FB71947FB1E3EC781521E2BDF6D3 /* Build configuration list for PBXNativeTarget "JPNavigationController" */ = { isa = XCConfigurationList; buildConfigurations = ( - 38A72A20F22917DE929232E792928BD4 /* Debug */, - C37F4CFEF0645101B374B62333D85EE4 /* Release */, + 27B0AB8B3F2C508FAE95B978A9AE0607 /* Debug */, + 2651ED985672A17FBA68FDBBE3E32312 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F2CF13AD3905807DEE236021E3D96773 /* Build configuration list for PBXNativeTarget "Pods-JPVideoPlayerDemo" */ = { + CFB00DFDEF804FAD5E3E20BC782ADAB8 /* Build configuration list for PBXNativeTarget "Masonry" */ = { isa = XCConfigurationList; buildConfigurations = ( - 48B0687292FCCAF0C13CFF71991E9ACE /* Debug */, - B2EC7178CD496DB6CF33A493970CACA8 /* Release */, + 1D3F48869EA6A0024D621535B6BC77C9 /* Debug */, + A254A1D5CAE40ABC54B15E5215496D62 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/JPVideoPlayerDemo/Pods/Target Support Files/JPNavigationController/JPNavigationController.xcconfig b/JPVideoPlayerDemo/Pods/Target Support Files/JPNavigationController/JPNavigationController.xcconfig index a46e6f7..915f661 100644 --- a/JPVideoPlayerDemo/Pods/Target Support Files/JPNavigationController/JPNavigationController.xcconfig +++ b/JPVideoPlayerDemo/Pods/Target Support Files/JPNavigationController/JPNavigationController.xcconfig @@ -1,9 +1,9 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/JPNavigationController +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JPNavigationController GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/JPNavigationController" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JPNavigationController" "${PODS_ROOT}/Headers/Public/Masonry" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/JPNavigationController" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JPNavigationController" OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/JPNavigationController PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} diff --git a/JPVideoPlayerDemo/Pods/Target Support Files/Masonry/Masonry.xcconfig b/JPVideoPlayerDemo/Pods/Target Support Files/Masonry/Masonry.xcconfig index 0da72af..a6ff5fb 100644 --- a/JPVideoPlayerDemo/Pods/Target Support Files/Masonry/Masonry.xcconfig +++ b/JPVideoPlayerDemo/Pods/Target Support Files/Masonry/Masonry.xcconfig @@ -1,9 +1,9 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Masonry +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Masonry GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Masonry" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JPNavigationController" "${PODS_ROOT}/Headers/Public/Masonry" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Masonry" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Masonry" OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/Masonry PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} diff --git a/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo-frameworks.sh b/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo-frameworks.sh index 88dd537..08e3eaa 100755 --- a/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo-frameworks.sh +++ b/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo-frameworks.sh @@ -1,15 +1,28 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi 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}" +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + # This protects against multiple targets copying the same framework dependency at the same time. The solution # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") +# Copies and strips a vendored framework install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then @@ -58,21 +71,40 @@ install_framework() fi } -# Copies the dSYM of a vendored framework +# Copies and strips a vendored dSYM install_dsym() { local source="$1" if [ -r "$source" ]; then - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DWARF_DSYM_FOLDER_PATH}" + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.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. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi fi } # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then code_sign_cmd="$code_sign_cmd &" @@ -85,10 +117,18 @@ code_sign_if_enabled() { # Strip invalid architectures strip_invalid_archs() { binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi stripped="" - for arch in $archs; do + for arch in $binary_archs; do if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 @@ -98,6 +138,7 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi + STRIP_BINARY_RETVAL=1 } if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then diff --git a/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo-resources.sh b/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo-resources.sh index 7a8d89d..7de5b86 100755 --- a/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo-resources.sh +++ b/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo-resources.sh @@ -1,5 +1,13 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -12,7 +20,7 @@ XCASSET_FILES=() # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") -case "${TARGETED_DEVICE_FAMILY}" in +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -98,7 +106,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then fi rm -f "$RESOURCES_TO_COPY" -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] then # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) @@ -108,5 +116,9 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi fi diff --git a/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo.debug.xcconfig b/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo.debug.xcconfig index d1e8e38..a96fcc2 100644 --- a/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo.debug.xcconfig +++ b/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo.debug.xcconfig @@ -1,9 +1,9 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JPNavigationController" "${PODS_ROOT}/Headers/Public/Masonry" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/JPNavigationController" "$PODS_CONFIGURATION_BUILD_DIR/Masonry" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/JPNavigationController" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/JPNavigationController" -isystem "${PODS_ROOT}/Headers/Public/Masonry" OTHER_LDFLAGS = $(inherited) -ObjC -l"JPNavigationController" -l"Masonry" -framework "Foundation" -framework "UIKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods diff --git a/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo.release.xcconfig b/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo.release.xcconfig index d1e8e38..a96fcc2 100644 --- a/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo.release.xcconfig +++ b/JPVideoPlayerDemo/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo.release.xcconfig @@ -1,9 +1,9 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JPNavigationController" "${PODS_ROOT}/Headers/Public/Masonry" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/JPNavigationController" "$PODS_CONFIGURATION_BUILD_DIR/Masonry" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/JPNavigationController" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/JPNavigationController" -isystem "${PODS_ROOT}/Headers/Public/Masonry" OTHER_LDFLAGS = $(inherited) -ObjC -l"JPNavigationController" -l"Masonry" -framework "Foundation" -framework "UIKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods From b8f48597836cbce051b42a09fc2eeb60a97290ac Mon Sep 17 00:00:00 2001 From: "jianfeng.mo" Date: Mon, 12 Nov 2018 13:53:40 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BD=AC=E5=9C=88?= =?UTF-8?q?=E6=8C=87=E7=A4=BA=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JPVideoPlayer/JPVideoPlayerControlViews.h | 4 +- JPVideoPlayer/JPVideoPlayerControlViews.m | 66 ++++++------ JPVideoPlayer/MRActivityIndicatorView.h | 53 ++++++++++ JPVideoPlayer/MRActivityIndicatorView.m | 123 ++++++++++++++++++++++ JPVideoPlayer/UIView+EnlargeEdge.h | 14 +++ JPVideoPlayer/UIView+EnlargeEdge.m | 74 +++++++++++++ 6 files changed, 302 insertions(+), 32 deletions(-) create mode 100755 JPVideoPlayer/MRActivityIndicatorView.h create mode 100755 JPVideoPlayer/MRActivityIndicatorView.m create mode 100644 JPVideoPlayer/UIView+EnlargeEdge.h create mode 100644 JPVideoPlayer/UIView+EnlargeEdge.m diff --git a/JPVideoPlayer/JPVideoPlayerControlViews.h b/JPVideoPlayer/JPVideoPlayerControlViews.h index c02c2c7..da4af9f 100644 --- a/JPVideoPlayer/JPVideoPlayerControlViews.h +++ b/JPVideoPlayer/JPVideoPlayerControlViews.h @@ -12,7 +12,7 @@ #import "JPVideoPlayerProtocol.h" @class JPVideoPlayerControlProgressView, - JPVideoPlayerControlView; + JPVideoPlayerControlView,MRActivityIndicatorView; NS_ASSUME_NONNULL_BEGIN @@ -92,7 +92,7 @@ UIKIT_EXTERN const CGFloat JPVideoPlayerProgressViewElementHeight; @interface JPVideoPlayerBufferingIndicator : UIView -@property (nonatomic, strong, readonly)UIActivityIndicatorView *activityIndicator; +@property (nonatomic, strong, readonly)MRActivityIndicatorView *activityIndicator; @property (nonatomic, strong, readonly)UIVisualEffectView *blurView; diff --git a/JPVideoPlayer/JPVideoPlayerControlViews.m b/JPVideoPlayer/JPVideoPlayerControlViews.m index 102bae3..997428a 100644 --- a/JPVideoPlayer/JPVideoPlayerControlViews.m +++ b/JPVideoPlayer/JPVideoPlayerControlViews.m @@ -12,6 +12,8 @@ #import "JPVideoPlayerControlViews.h" #import "JPVideoPlayerCompat.h" #import "UIView+WebVideoCache.h" +#import "MRActivityIndicatorView.h" +#import "UIView+EnlargeEdge.h" @interface JPVideoPlayerControlProgressView() @@ -466,7 +468,6 @@ - (void)_setup { [button setImage:[UIImage imageNamed:[bundlePath stringByAppendingPathComponent:@"jp_videoplayer_portrait"]] forState:UIControlStateSelected]; [button addTarget:self action:@selector(landscapeButtonDidClick:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:button]; - button; }); } @@ -799,13 +800,13 @@ - (NSUInteger)fetchDragStartLocation { @interface JPVideoPlayerBufferingIndicator() -@property(nonatomic, strong)UIActivityIndicatorView *activityIndicator; +@property(nonatomic, strong)MRActivityIndicatorView *activityIndicator; -@property(nonatomic, strong)UIVisualEffectView *blurView; +//@property(nonatomic, strong)UIVisualEffectView *blurView; @property(nonatomic, assign, getter=isAnimating)BOOL animating; -@property (nonatomic, strong) UIView *blurBackgroundView; +//@property (nonatomic, strong) UIView *blurBackgroundView; @end @@ -827,12 +828,15 @@ - (void)layoutThatFits:(CGRect)constrainedRect nearestViewControllerInViewTree:(UIViewController *_Nullable)nearestViewController interfaceOrientation:(JPVideoPlayViewInterfaceOrientation)interfaceOrientation { CGSize referenceSize = constrainedRect.size; - self.blurBackgroundView.frame = CGRectMake((referenceSize.width - JPVideoPlayerBufferingIndicatorWidthHeight) * 0.5, - (referenceSize.height - JPVideoPlayerBufferingIndicatorWidthHeight) * 0.5, - JPVideoPlayerBufferingIndicatorWidthHeight, - JPVideoPlayerBufferingIndicatorWidthHeight); - self.activityIndicator.frame = self.blurBackgroundView.bounds; - self.blurView.frame = self.blurBackgroundView.bounds; +// self.blurBackgroundView.frame = CGRectMake((referenceSize.width - JPVideoPlayerBufferingIndicatorWidthHeight) * 0.5, +// (referenceSize.height - JPVideoPlayerBufferingIndicatorWidthHeight) * 0.5, +// JPVideoPlayerBufferingIndicatorWidthHeight, +// JPVideoPlayerBufferingIndicatorWidthHeight); + self.activityIndicator.frame = CGRectMake((referenceSize.width - JPVideoPlayerBufferingIndicatorWidthHeight) * 0.5, + (referenceSize.height - JPVideoPlayerBufferingIndicatorWidthHeight) * 0.5, + JPVideoPlayerBufferingIndicatorWidthHeight, + JPVideoPlayerBufferingIndicatorWidthHeight); + //self.blurView.frame = self.blurBackgroundView.bounds; } @@ -869,28 +873,30 @@ - (void)didFinishBufferingVideoURL:(NSURL *)videoURL { - (void)_setup{ self.backgroundColor = [UIColor clearColor]; - self.blurBackgroundView = ({ - UIView *view = [UIView new]; - view.backgroundColor = [UIColor colorWithWhite:1 alpha:0.6]; - view.layer.cornerRadius = 10; - view.clipsToBounds = YES; - [self addSubview:view]; - - view; - }); - - self.blurView = ({ - UIVisualEffectView *blurView = [[UIVisualEffectView alloc]initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]]; - [self.blurBackgroundView addSubview:blurView]; - - blurView; - }); +// self.blurBackgroundView = ({ +// UIView *view = [UIView new]; +// view.backgroundColor = [UIColor colorWithWhite:1 alpha:0.6]; +// view.layer.cornerRadius = 10; +// view.clipsToBounds = YES; +// [self addSubview:view]; +// +// view; +// }); + +// self.blurView = ({ +// UIVisualEffectView *blurView = [[UIVisualEffectView alloc]initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]]; +// [self.blurBackgroundView addSubview:blurView]; +// +// blurView; +// }); self.activityIndicator = ({ - UIActivityIndicatorView *indicator = [UIActivityIndicatorView new]; - indicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray; - indicator.color = [UIColor colorWithRed:35.0/255 green:35.0/255 blue:35.0/255 alpha:1]; - [self.blurBackgroundView addSubview:indicator]; + MRActivityIndicatorView *indicator = [MRActivityIndicatorView new]; + indicator.tintColor = [UIColor whiteColor]; + //indicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray; + //indicator.backgroundColor = [UIColor clearColor]; + //indicator.color = [UIColor colorWithRed:35.0/255 green:35.0/255 blue:35.0/255 alpha:1]; + [self addSubview:indicator]; indicator; }); diff --git a/JPVideoPlayer/MRActivityIndicatorView.h b/JPVideoPlayer/MRActivityIndicatorView.h new file mode 100755 index 0000000..f7f6c49 --- /dev/null +++ b/JPVideoPlayer/MRActivityIndicatorView.h @@ -0,0 +1,53 @@ +// +// MRActivityIndicatorView.h +// MRProgress +// +// Created by 余龙泽 on 14-2-7. +// Copyright (c) 2014年 icephone. All rights reserved. +// + +#import + + +/** + Use an activity indicator to show that a task is in progress. An activity indicator appears as a circle slice that is + either spinning or stopped. + */ +@interface MRActivityIndicatorView : UIControl { +@package + BOOL _animating; +} + +/** + A Boolean value that controls whether the receiver is hidden when the animation is stopped. + + If the value of this property is YES (the default), the receiver sets its hidden property (UIView) to YES when receiver + is not animating. If the hidesWhenStopped property is NO, the receiver is not hidden when animation stops. You stop an + animating progress indicator with the stopAnimating method. + */ +@property(nonatomic) BOOL hidesWhenStopped; + +/** + Starts the animation of the progress indicator. + + When the progress indicator is animated, the gear spins to indicate indeterminate progress. The indicator is animated + until stopAnimating is called. + */ +- (void)startAnimating; + +/** + Stops the animation of the progress indicator. + + Call this method to stop the animation of the progress indicator started with a call to startAnimating. When animating + is stopped, the indicator is hidden, unless hidesWhenStopped is NO. + */ +- (void)stopAnimating; + +/** + Returns whether the receiver is animating. + + @return YES if the receiver is animating, otherwise NO. + */ +- (BOOL)isAnimating; + +@end diff --git a/JPVideoPlayer/MRActivityIndicatorView.m b/JPVideoPlayer/MRActivityIndicatorView.m new file mode 100755 index 0000000..0341ee2 --- /dev/null +++ b/JPVideoPlayer/MRActivityIndicatorView.m @@ -0,0 +1,123 @@ +// +// MRActivityIndicatorView.m +// MRProgress +// +// Created by 余龙泽 on 14-2-7. +// Copyright (c) 2014年 icephone. All rights reserved. +// + +#import +#import "MRActivityIndicatorView.h" + + +NSString *const MRActivityIndicatorViewSpinAnimationKey = @"MRActivityIndicatorViewSpinAnimationKey"; + + +@interface MRActivityIndicatorView () + +@end + + +@implementation MRActivityIndicatorView + +- (id)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self commonInit]; + } + return self; +} + +- (id)initWithCoder:(NSCoder *)aDecoder { + self = [super initWithCoder:aDecoder]; + if (self) { + [self commonInit]; + } + return self; +} + ++ (Class)layerClass { + return CAShapeLayer.class; +} + +- (CAShapeLayer *)shapeLayer { + return (CAShapeLayer *)self.layer; +} + +- (void)commonInit { + self.hidesWhenStopped = YES; + + self.layer.borderWidth = 0; + self.shapeLayer.lineWidth = 2.0f; + self.shapeLayer.fillColor = UIColor.clearColor.CGColor; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + + CGRect frame = self.frame; + if (frame.size.width != frame.size.height) { + // Ensure that we have a square frame + CGFloat s = MAX(frame.size.width, frame.size.height); + frame.size.width = s; + frame.size.height = s; + self.frame = frame; + } + + self.shapeLayer.path = [self layoutPath].CGPath; +} + +- (UIBezierPath *)layoutPath { + const double TWO_M_PI = 2.0 * M_PI; + double startAngle = 0.75 * TWO_M_PI; + double endAngle = startAngle + TWO_M_PI * 0.9; + + CGFloat width = self.bounds.size.width; + return [UIBezierPath bezierPathWithArcCenter:CGPointMake(width/2.0f, width/2.0f) + radius:width/2.2f + startAngle:startAngle + endAngle:endAngle + clockwise:YES]; +} + + +#pragma mark - Hook tintColor + +- (void)tintColorDidChange { + [super tintColorDidChange]; + self.shapeLayer.strokeColor = self.tintColor.CGColor; +} + + +#pragma mark - Control animation + +- (void)startAnimating { + _animating = YES; + + CABasicAnimation *spinAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; + spinAnimation.toValue = @(1*2*M_PI); + spinAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + spinAnimation.duration = 1.0; + spinAnimation.repeatCount = INFINITY; + [self.layer addAnimation:spinAnimation forKey:MRActivityIndicatorViewSpinAnimationKey]; + + if (self.hidesWhenStopped) { + self.hidden = NO; + } +} + +- (void)stopAnimating { + _animating = NO; + + [self.layer removeAnimationForKey:MRActivityIndicatorViewSpinAnimationKey]; + + if (self.hidesWhenStopped) { + self.hidden = YES; + } +} + +- (BOOL)isAnimating { + return _animating; +} + +@end diff --git a/JPVideoPlayer/UIView+EnlargeEdge.h b/JPVideoPlayer/UIView+EnlargeEdge.h new file mode 100644 index 0000000..3c54134 --- /dev/null +++ b/JPVideoPlayer/UIView+EnlargeEdge.h @@ -0,0 +1,14 @@ +// +// UIView+EnlargeEdge.h +// MonkeyKingTV +// +// Created by 莫 剑锋 on 2017/8/17. +// Copyright © 2017年 AppGame. All rights reserved. +// + +#import + +@interface UIView (EnlargeEdge) +- (void)setEnlargeEdge:(CGFloat) size; +- (void)setEnlargeEdgeWithTop:(CGFloat) top right:(CGFloat) right bottom:(CGFloat) bottom left:(CGFloat) left; +@end diff --git a/JPVideoPlayer/UIView+EnlargeEdge.m b/JPVideoPlayer/UIView+EnlargeEdge.m new file mode 100644 index 0000000..4c72734 --- /dev/null +++ b/JPVideoPlayer/UIView+EnlargeEdge.m @@ -0,0 +1,74 @@ +// +// UIView+EnlargeEdge.m +// MonkeyKingTV +// +// Created by 莫 剑锋 on 2017/8/17. +// Copyright © 2017年 AppGame. All rights reserved. +// + +#import "UIView+EnlargeEdge.h" +#import + +static char *buttonEnlargeEdgeTopNameKey = "com.appgame.mktv.buttonEnlargeEdge.top"; +static char *buttonEnlargeEdgeRightNameKey = "com.appgame.mktv.buttonEnlargeEdge.right"; +static char *buttonEnlargeEdgeBottomNameKey = "com.appgame.mktv.buttonEnlargeEdge.bottom"; +static char *buttonEnlargeEdgeLeftNameKey = "com.appgame.mktv.buttonEnlargeEdge.left"; + + +@implementation UIView (EnlargeEdge) +- (void)setEnlargeEdge:(CGFloat) size{ + objc_setAssociatedObject(self, buttonEnlargeEdgeTopNameKey, [NSNumber numberWithFloat:size], OBJC_ASSOCIATION_COPY_NONATOMIC); + objc_setAssociatedObject(self, buttonEnlargeEdgeRightNameKey, [NSNumber numberWithFloat:size], OBJC_ASSOCIATION_COPY_NONATOMIC); + objc_setAssociatedObject(self, buttonEnlargeEdgeBottomNameKey, [NSNumber numberWithFloat:size], OBJC_ASSOCIATION_COPY_NONATOMIC); + objc_setAssociatedObject(self, buttonEnlargeEdgeLeftNameKey, [NSNumber numberWithFloat:size], OBJC_ASSOCIATION_COPY_NONATOMIC); +} + +- (void)setEnlargeEdgeWithTop:(CGFloat) top right:(CGFloat) right bottom:(CGFloat) bottom left:(CGFloat) left{ + objc_setAssociatedObject(self, buttonEnlargeEdgeTopNameKey, [NSNumber numberWithFloat:top], OBJC_ASSOCIATION_COPY_NONATOMIC); + objc_setAssociatedObject(self, buttonEnlargeEdgeRightNameKey, [NSNumber numberWithFloat:right], OBJC_ASSOCIATION_COPY_NONATOMIC); + objc_setAssociatedObject(self, buttonEnlargeEdgeBottomNameKey, [NSNumber numberWithFloat:bottom], OBJC_ASSOCIATION_COPY_NONATOMIC); + objc_setAssociatedObject(self, buttonEnlargeEdgeLeftNameKey, [NSNumber numberWithFloat:left], OBJC_ASSOCIATION_COPY_NONATOMIC); +} + +- (CGRect)enlargedRect{ + NSNumber* topEdge = objc_getAssociatedObject(self, buttonEnlargeEdgeTopNameKey); + NSNumber* rightEdge = objc_getAssociatedObject(self, buttonEnlargeEdgeRightNameKey); + NSNumber* bottomEdge = objc_getAssociatedObject(self, buttonEnlargeEdgeBottomNameKey); + NSNumber* leftEdge = objc_getAssociatedObject(self, buttonEnlargeEdgeLeftNameKey); + if (topEdge && rightEdge && bottomEdge && leftEdge){ + return CGRectMake(self.bounds.origin.x - leftEdge.floatValue, + self.bounds.origin.y - topEdge.floatValue, + self.bounds.size.width + leftEdge.floatValue + rightEdge.floatValue, + self.bounds.size.height + topEdge.floatValue + bottomEdge.floatValue); + } + else{ + return self.bounds; + } +} +- (BOOL)mk_pointInside:(CGPoint)point withEvent:(UIEvent *)event{ + CGRect rect = [self enlargedRect]; + if (CGRectEqualToRect(rect, self.bounds)){ + return [self mk_pointInside:point withEvent:event]; + } + return CGRectContainsPoint(rect, point) ? YES : NO; +} + + ++ (void)load +{ + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + + NSArray *selStringsArray = @[@"pointInside:withEvent:"]; + + [selStringsArray enumerateObjectsUsingBlock:^(NSString *selString, NSUInteger idx, BOOL *stop) { + NSString *mySelString = [@"mk_" stringByAppendingString:selString]; + + Method originalMethod = class_getInstanceMethod(self, NSSelectorFromString(selString)); + Method myMethod = class_getInstanceMethod(self, NSSelectorFromString(mySelString)); + method_exchangeImplementations(originalMethod, myMethod); + }]; + }); +} + +@end From 4ac0d232c6bbe9c529551086009da6ab519b1ee8 Mon Sep 17 00:00:00 2001 From: "jianfeng.mo" Date: Fri, 30 Nov 2018 15:13:34 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E6=92=AD=E6=94=BE=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E7=83=AD=E5=8C=BA=E6=94=BE=E5=A4=A715?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JPVideoPlayer/JPVideoPlayerControlViews.m | 3 +- JPVideoPlayerDemo/.DS_Store | Bin 6148 -> 6148 bytes .../project.pbxproj | 48 ++++++++++++------ .../xcshareddata/IDEWorkspaceChecks.plist | 8 +++ .../xcschemes/VideoPlayer.xcscheme | 16 ++---- 5 files changed, 45 insertions(+), 30 deletions(-) create mode 100644 JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/JPVideoPlayer/JPVideoPlayerControlViews.m b/JPVideoPlayer/JPVideoPlayerControlViews.m index 997428a..27662ea 100644 --- a/JPVideoPlayer/JPVideoPlayerControlViews.m +++ b/JPVideoPlayer/JPVideoPlayerControlViews.m @@ -440,7 +440,7 @@ - (void)_setup { [button setImage:[UIImage imageNamed:[bundlePath stringByAppendingPathComponent:@"jp_videoplayer_play"]] forState:UIControlStateSelected]; [button addTarget:self action:@selector(playButtonDidClick:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:button]; - + [button setEnlargeEdge:15]; button; }); @@ -468,6 +468,7 @@ - (void)_setup { [button setImage:[UIImage imageNamed:[bundlePath stringByAppendingPathComponent:@"jp_videoplayer_portrait"]] forState:UIControlStateSelected]; [button addTarget:self action:@selector(landscapeButtonDidClick:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:button]; + [button setEnlargeEdge:15]; button; }); } diff --git a/JPVideoPlayerDemo/.DS_Store b/JPVideoPlayerDemo/.DS_Store index be2ce6782833dca922422e3dbac90e079e1554d0..bef8daeda72a8da18c960cd6c2a530ee62405224 100755 GIT binary patch delta 54 zcmZoMXfc@J&&abeU^g=(&tyLqwarE>`` + + + + IDEDidComputeMac32BitWarning + + + diff --git a/JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/xcshareddata/xcschemes/VideoPlayer.xcscheme b/JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/xcshareddata/xcschemes/VideoPlayer.xcscheme index 1e5e458..8fc3bd4 100644 --- a/JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/xcshareddata/xcschemes/VideoPlayer.xcscheme +++ b/JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/xcshareddata/xcschemes/VideoPlayer.xcscheme @@ -1,6 +1,6 @@ @@ -37,14 +36,14 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" allowLocationSimulation = "YES"> - + - - - - From 90a5090d30e68770eae7b204b9bf970505202d28 Mon Sep 17 00:00:00 2001 From: "jianfeng.mo" Date: Fri, 30 Nov 2018 15:27:03 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E6=94=BE=E5=A4=A7=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E5=B0=BA=E5=AF=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JPVideoPlayer/JPVideoPlayerControlViews.m | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/JPVideoPlayer/JPVideoPlayerControlViews.m b/JPVideoPlayer/JPVideoPlayerControlViews.m index 27662ea..1f50918 100644 --- a/JPVideoPlayer/JPVideoPlayerControlViews.m +++ b/JPVideoPlayer/JPVideoPlayerControlViews.m @@ -440,6 +440,10 @@ - (void)_setup { [button setImage:[UIImage imageNamed:[bundlePath stringByAppendingPathComponent:@"jp_videoplayer_play"]] forState:UIControlStateSelected]; [button addTarget:self action:@selector(playButtonDidClick:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:button]; + CGRect rc = button.frame; + rc.size.width += 10; + rc.size.height += 10; + button.frame = rc; [button setEnlargeEdge:15]; button; }); @@ -467,6 +471,10 @@ - (void)_setup { [button setImage:[UIImage imageNamed:[bundlePath stringByAppendingPathComponent:@"jp_videoplayer_landscape"]] forState:UIControlStateNormal]; [button setImage:[UIImage imageNamed:[bundlePath stringByAppendingPathComponent:@"jp_videoplayer_portrait"]] forState:UIControlStateSelected]; [button addTarget:self action:@selector(landscapeButtonDidClick:) forControlEvents:UIControlEventTouchUpInside]; + CGRect rc = button.frame; + rc.size.width += 10; + rc.size.height += 10; + button.frame = rc; [self addSubview:button]; [button setEnlargeEdge:15]; button; From e965c8b6ba16682595b6c8480251f70090b1ac39 Mon Sep 17 00:00:00 2001 From: "jianfeng.mo" Date: Fri, 30 Nov 2018 15:58:38 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A8=AA=E5=B1=8F?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JPVideoPlayer/JPVideoPlayerControlViews.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/JPVideoPlayer/JPVideoPlayerControlViews.m b/JPVideoPlayer/JPVideoPlayerControlViews.m index 1f50918..b76ee32 100644 --- a/JPVideoPlayer/JPVideoPlayerControlViews.m +++ b/JPVideoPlayer/JPVideoPlayerControlViews.m @@ -281,8 +281,8 @@ @interface JPVideoPlayerControlBar() @end -static const CGFloat kJPVideoPlayerControlBarButtonWidthHeight = 22; -static const CGFloat kJPVideoPlayerControlBarElementGap = 16; +static const CGFloat kJPVideoPlayerControlBarButtonWidthHeight = 28; +static const CGFloat kJPVideoPlayerControlBarElementGap = 15; static const CGFloat kJPVideoPlayerControlBarTimeLabelWidth = 68; @implementation JPVideoPlayerControlBar @@ -503,7 +503,7 @@ @interface JPVideoPlayerControlView() @end static const CGFloat kJPVideoPlayerControlBarHeight = 38; -static const CGFloat kJPVideoPlayerControlBarLandscapeUpOffset = 12; +static const CGFloat kJPVideoPlayerControlBarLandscapeUpOffset = 4; @implementation JPVideoPlayerControlView - (instancetype)initWithFrame:(CGRect)frame { From f5ae0eb563e7a9a193e71d8d4a90e58384e6eb09 Mon Sep 17 00:00:00 2001 From: "jianfeng.mo" Date: Fri, 30 Nov 2018 16:18:58 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=8C=E5=87=BB?= =?UTF-8?q?=E8=A7=86=E9=A2=91block?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JPVideoPlayer/JPVideoPlayerControlViews.h | 7 +++++++ JPVideoPlayer/JPVideoPlayerControlViews.m | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/JPVideoPlayer/JPVideoPlayerControlViews.h b/JPVideoPlayer/JPVideoPlayerControlViews.h index da4af9f..5be6f0f 100644 --- a/JPVideoPlayer/JPVideoPlayerControlViews.h +++ b/JPVideoPlayer/JPVideoPlayerControlViews.h @@ -52,12 +52,15 @@ UIKIT_EXTERN NSString *JPVideoPlayerControlProgressViewUserDidEndDragNotificatio @end + @interface JPVideoPlayerControlView : UIView @property (nonatomic, strong, readonly) UIView *controlBar; @property (nonatomic, strong, readonly) UIImage *blurImage; + + /** * A designated initializer. * @@ -100,8 +103,12 @@ UIKIT_EXTERN const CGFloat JPVideoPlayerProgressViewElementHeight; @end +typedef void(^JPVideoPlayerControlViewDoubleClickBlock)(void); + @interface JPVideoPlayerView : UIView +@property (nonatomic, copy) JPVideoPlayerControlViewDoubleClickBlock doubleClickBlock; + /** * A placeholderView to custom your own business. */ diff --git a/JPVideoPlayer/JPVideoPlayerControlViews.m b/JPVideoPlayer/JPVideoPlayerControlViews.m index b76ee32..f0a3840 100644 --- a/JPVideoPlayer/JPVideoPlayerControlViews.m +++ b/JPVideoPlayer/JPVideoPlayerControlViews.m @@ -1025,6 +1025,13 @@ - (void)tapGestureDidTap { }]; } +- (void)tapGestureDidDoubleTap { + NSLog(@"双击视频"); + if(self.doubleClickBlock) { + self.doubleClickBlock(); + } +} + - (void)layoutContainerSubviewsWithBounds:(CGRect)bounds center:(CGPoint)center frame:(CGRect)frame { for(UIView *view in self.controlContainerView.subviews){ if(!CGRectIsEmpty(frame)){ @@ -1178,6 +1185,11 @@ - (void)_setup { [self.userInteractionContainerView addGestureRecognizer:tapGestureRecognizer]; [self startTimer]; } + + UITapGestureRecognizer* doubleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureDidDoubleTap)]; + doubleTapGestureRecognizer.numberOfTapsRequired = 2; + [self.userInteractionContainerView addGestureRecognizer:doubleTapGestureRecognizer]; + [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(didReceiveUserStartDragNotification) name:JPVideoPlayerControlProgressViewUserDidStartDragNotification From bb79df33a8a283c5aad29945365b6d2925c357fc Mon Sep 17 00:00:00 2001 From: "jianfeng.mo" Date: Sat, 1 Dec 2018 15:00:28 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B0=81=E9=9D=A2cover?= =?UTF-8?q?View?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JPVideoPlayer/JPVideoPlayerControlViews.h | 4 +++ JPVideoPlayer/JPVideoPlayerControlViews.m | 14 ++++++++ JPVideoPlayer/UIView+WebVideoCache.h | 4 +++ JPVideoPlayer/UIView+WebVideoCache.m | 32 ++++++++++++++++++ JPVideoPlayerDemo/.DS_Store | Bin 6148 -> 6148 bytes .../JPVideoPlayerAudioViewController.m | 1 + .../JPVideoPlayerDetailViewController.m | 1 + .../JPVideoPlayerHoverViewController.m | 2 ++ .../NetEasy/JPVPNetEasyViewController.m | 5 +++ 9 files changed, 63 insertions(+) diff --git a/JPVideoPlayer/JPVideoPlayerControlViews.h b/JPVideoPlayer/JPVideoPlayerControlViews.h index 5be6f0f..4ad5e13 100644 --- a/JPVideoPlayer/JPVideoPlayerControlViews.h +++ b/JPVideoPlayer/JPVideoPlayerControlViews.h @@ -143,6 +143,10 @@ typedef void(^JPVideoPlayerControlViewDoubleClickBlock)(void); * To control need automatic hide controlView when user touched. */ @property (nonatomic, assign, readonly) BOOL needAutoHideControlViewWhenUserTapping; +/** + * A top cover view of viedeo. + */ +@property (nonatomic, strong, readonly) UIView *coverContainerView; - (instancetype)initWithNeedAutoHideControlViewWhenUserTapping:(BOOL)needAutoHideControlViewWhenUserTapping; diff --git a/JPVideoPlayer/JPVideoPlayerControlViews.m b/JPVideoPlayer/JPVideoPlayerControlViews.m index f0a3840..c810a10 100644 --- a/JPVideoPlayer/JPVideoPlayerControlViews.m +++ b/JPVideoPlayer/JPVideoPlayerControlViews.m @@ -929,6 +929,8 @@ @interface JPVideoPlayerView() @property (nonatomic, strong) UIView *userInteractionContainerView; +@property (nonatomic, strong) UIView *coverContainerView; + @property (nonatomic, strong) NSTimer *timer; @property(nonatomic, assign) BOOL isInterruptTimer; @@ -959,6 +961,7 @@ - (void)setFrame:(CGRect)frame { self.progressContainerView.frame = self.bounds; self.bufferingIndicatorContainerView.frame = self.bounds; self.userInteractionContainerView.frame = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height - kJPVideoPlayerControlBarHeight); + self.coverContainerView.frame = self.bounds; [self layoutContainerSubviewsWithBounds:CGRectZero center:CGPointZero frame:frame]; [self callLayoutMethodForContainerSubviews]; } @@ -977,6 +980,7 @@ - (void)setBounds:(CGRect)bounds { self.userInteractionContainerView.center.y - bounds.size.height * 0.5, bounds.size.width, bounds.size.height - kJPVideoPlayerControlBarHeight); + self.coverContainerView.frame = self.videoContainerView.frame; [self layoutContainerSubviewsWithBounds:bounds center:CGPointZero frame:CGRectZero]; [self callLayoutMethodForContainerSubviews]; } @@ -995,6 +999,7 @@ - (void)setCenter:(CGPoint)center { center.x - self.userInteractionContainerView.bounds.size.height * 0.5, self.userInteractionContainerView.bounds.size.width, self.userInteractionContainerView.bounds.size.height - kJPVideoPlayerControlBarHeight); + self.coverContainerView.frame = self.videoContainerView.frame; [self layoutContainerSubviewsWithBounds:CGRectZero center:center frame:CGRectZero]; [self callLayoutMethodForContainerSubviews]; } @@ -1190,6 +1195,15 @@ - (void)_setup { doubleTapGestureRecognizer.numberOfTapsRequired = 2; [self.userInteractionContainerView addGestureRecognizer:doubleTapGestureRecognizer]; + self.coverContainerView = ({ + UIView *view = [UIView new]; + view.backgroundColor = [UIColor clearColor]; + [self addSubview:view]; + view.userInteractionEnabled = NO; + + view; + }); + [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(didReceiveUserStartDragNotification) name:JPVideoPlayerControlProgressViewUserDidStartDragNotification diff --git a/JPVideoPlayer/UIView+WebVideoCache.h b/JPVideoPlayer/UIView+WebVideoCache.h index 31fb0e6..b9583c7 100755 --- a/JPVideoPlayer/UIView+WebVideoCache.h +++ b/JPVideoPlayer/UIView+WebVideoCache.h @@ -166,6 +166,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, readonly, nullable) UIView *jp_controlView; +@property (nonatomic, strong, nullable) UIView *jp_coverView; + @property (nonatomic, readonly, nullable) UIView *jp_bufferingIndicator; @property(nonatomic, copy, readonly, nullable) NSURL *jp_videoURL; @@ -241,6 +243,7 @@ NS_ASSUME_NONNULL_BEGIN bufferingIndicator:(UIView *_Nullable)bufferingIndicator controlView:(UIView *_Nullable)controlView progressView:(UIView *_Nullable)progressView + coverView:(UIView *_Nullable)coverView configuration:(JPPlayVideoConfiguration _Nullable)configuration; /** @@ -267,6 +270,7 @@ NS_ASSUME_NONNULL_BEGIN bufferingIndicator:(UIView *_Nullable)bufferingIndicator controlView:(UIView *_Nullable)controlView progressView:(UIView *_Nullable)progressView + coverView:(UIView *_Nullable)coverView configuration:(JPPlayVideoConfiguration _Nullable)configuration; /** diff --git a/JPVideoPlayer/UIView+WebVideoCache.m b/JPVideoPlayer/UIView+WebVideoCache.m index 2fdafab..ef42dce 100755 --- a/JPVideoPlayer/UIView+WebVideoCache.m +++ b/JPVideoPlayer/UIView+WebVideoCache.m @@ -23,6 +23,8 @@ @interface JPVideoPlayerHelper : NSObject @property(nonatomic, strong) UIView *controlView; +@property(nonatomic, strong) UIView *coverView; + @property(nonatomic, strong) UIView *bufferingIndicator; @property(nonatomic, weak) id videoPlayerDelegate; @@ -107,6 +109,14 @@ - (void)setJp_controlView:(UIView *)jp_controlView { return self.helper.controlView; } +- (void)setJp_coverView:(UIView *)jp_coverView { + self.helper.coverView = jp_coverView; +} + +- (UIView *)jp_coverView { + return self.helper.coverView; +} + - (void)setJp_bufferingIndicator:(UIView *)jp_bufferingIndicator { self.helper.bufferingIndicator = jp_bufferingIndicator; } @@ -148,6 +158,7 @@ - (void)jp_playVideoMuteWithURL:(NSURL *)url [self setBufferingIndicator:bufferingIndicator controlView:nil progressView:progressView + coverView:nil needSetControlView:NO]; [self jp_stopPlay]; [self jp_playVideoWithURL:url @@ -164,6 +175,7 @@ - (void)jp_resumeMutePlayWithURL:(NSURL *)url [self setBufferingIndicator:bufferingIndicator controlView:nil progressView:progressView + coverView:nil needSetControlView:NO]; [self jp_resumePlayWithURL:url options:JPVideoPlayerContinueInBackground | @@ -176,10 +188,12 @@ - (void)jp_playVideoWithURL:(NSURL *)url bufferingIndicator:(UIView *_Nullable)bufferingIndicator controlView:(UIView *_Nullable)controlView progressView:(UIView *_Nullable)progressView + coverView:(UIView *_Nullable)coverView configuration:(JPPlayVideoConfiguration _Nullable)configuration { [self setBufferingIndicator:bufferingIndicator controlView:controlView progressView:progressView + coverView:coverView needSetControlView:YES]; [self jp_stopPlay]; [self jp_playVideoWithURL:url @@ -192,10 +206,12 @@ - (void)jp_resumePlayWithURL:(NSURL *)url bufferingIndicator:(UIView *_Nullable)bufferingIndicator controlView:(UIView *_Nullable)controlView progressView:(UIView *_Nullable)progressView + coverView:(UIView *_Nullable)coverView configuration:(JPPlayVideoConfiguration _Nullable)configuration { [self setBufferingIndicator:bufferingIndicator controlView:controlView progressView:progressView + coverView:coverView needSetControlView:YES]; [self jp_resumePlayWithURL:url options:JPVideoPlayerContinueInBackground | @@ -206,6 +222,7 @@ - (void)jp_resumePlayWithURL:(NSURL *)url - (void)setBufferingIndicator:(UIView *_Nullable)bufferingIndicator controlView:(UIView *_Nullable)controlView progressView:(UIView *_Nullable)progressView + coverView:(UIView *_Nullable)coverView needSetControlView:(BOOL)needSetControlView { // should show default. BOOL showDefaultView = YES; @@ -251,6 +268,10 @@ - (void)setBufferingIndicator:(UIView *_Nullabl self.jp_controlView = controlView; } } + + if(coverView) { + self.jp_coverView = coverView; + } } - (void)jp_playVideoWithURL:(NSURL *)url @@ -314,9 +335,20 @@ - (void)playVideoWithURL:(NSURL *)url [self.helper.videoPlayerView.controlContainerView addSubview:self.jp_controlView]; self.helper.videoPlayerView.progressContainerView.alpha = 0; } + + if(self.jp_coverView && !self.jp_coverView.superview){ + self.jp_coverView.frame = self.bounds; + if(self.jp_coverView && [self.jp_coverView respondsToSelector:@selector(viewWillAddToSuperView:)]){ + [self.jp_coverView viewWillAddToSuperView:self]; + } + [self.helper.videoPlayerView.coverContainerView addSubview:self.jp_coverView]; + self.helper.videoPlayerView.coverContainerView.alpha = 1; + } + if(!self.helper.videoPlayerView.superview){ [self addSubview:self.helper.videoPlayerView]; } + self.helper.videoPlayerView.frame = self.bounds; self.helper.videoPlayerView.backgroundColor = [UIColor clearColor]; if (self.jp_videoPlayerDelegate && [self.jp_videoPlayerDelegate respondsToSelector:@selector(shouldShowBlackBackgroundBeforePlaybackStart)]) { diff --git a/JPVideoPlayerDemo/.DS_Store b/JPVideoPlayerDemo/.DS_Store index bef8daeda72a8da18c960cd6c2a530ee62405224..2de75fde1479f16a85b3cbd3b049ae080b2cc9bd 100755 GIT binary patch delta 59 zcmZoMXffCz%gW5iwP>;et2;ZR0|OAqP8MKMnmmEEo}D4v1c@&(Ie?9qiDAR$c($d2 E0C=tq0RR91 delta 59 zcmZoMXffCz%gW4>zizSut2;ZZ00R)nP8MKMnmmEEo}Jt06%t=!asV4I6ZeJ9@oY;4 E0hsR&761SM diff --git a/JPVideoPlayerDemo/JPVideoPlayerDemo/JPVideoPlayerAudioViewController.m b/JPVideoPlayerDemo/JPVideoPlayerDemo/JPVideoPlayerAudioViewController.m index e4b2c31..ed9382a 100644 --- a/JPVideoPlayerDemo/JPVideoPlayerDemo/JPVideoPlayerAudioViewController.m +++ b/JPVideoPlayerDemo/JPVideoPlayerDemo/JPVideoPlayerAudioViewController.m @@ -24,6 +24,7 @@ - (void)viewDidLoad { [self.audioView jp_playVideoWithURL:[NSURL URLWithString:@"http://music.163.com/song/media/outer/url?id=518066666.mp3"] bufferingIndicator:nil controlView:nil progressView:nil + coverView:nil configuration:nil]; self.audioView.jp_videoPlayerDelegate = self; } diff --git a/JPVideoPlayerDemo/JPVideoPlayerDemo/JPVideoPlayerDetailViewController.m b/JPVideoPlayerDemo/JPVideoPlayerDemo/JPVideoPlayerDetailViewController.m index 3cefbff..6698f3b 100755 --- a/JPVideoPlayerDemo/JPVideoPlayerDemo/JPVideoPlayerDetailViewController.m +++ b/JPVideoPlayerDemo/JPVideoPlayerDemo/JPVideoPlayerDetailViewController.m @@ -88,6 +88,7 @@ - (void)viewWillAppear:(BOOL)animated { bufferingIndicator:nil controlView:[[JPVideoPlayerDetailControlView alloc] initWithControlBar:nil blurImage:nil] progressView:nil + coverView:nil configuration:^(UIView *view, JPVideoPlayerModel *playerModel) { self.muteSwitch.on = ![self.videoContainer jp_muted]; }]; diff --git a/JPVideoPlayerDemo/JPVideoPlayerDemo/JPVideoPlayerHoverViewController.m b/JPVideoPlayerDemo/JPVideoPlayerDemo/JPVideoPlayerHoverViewController.m index 8137765..db51658 100644 --- a/JPVideoPlayerDemo/JPVideoPlayerDemo/JPVideoPlayerHoverViewController.m +++ b/JPVideoPlayerDemo/JPVideoPlayerDemo/JPVideoPlayerHoverViewController.m @@ -86,6 +86,7 @@ - (void)viewDidAppear:(BOOL)animated { bufferingIndicator:nil controlView:nil progressView:nil + coverView:nil configuration:nil]; } @@ -117,6 +118,7 @@ - (void)scrollViewDidScroll:(UIScrollView *)scrollView { bufferingIndicator:nil controlView:nil progressView:nil + coverView:nil configuration:nil]; } else if(!headerVisible && self.hoverView.hidden){ diff --git a/JPVideoPlayerDemo/JPVideoPlayerDemo/NetEasy/JPVPNetEasyViewController.m b/JPVideoPlayerDemo/JPVideoPlayerDemo/NetEasy/JPVPNetEasyViewController.m index 374eb14..0983968 100644 --- a/JPVideoPlayerDemo/JPVideoPlayerDemo/NetEasy/JPVPNetEasyViewController.m +++ b/JPVideoPlayerDemo/JPVideoPlayerDemo/NetEasy/JPVPNetEasyViewController.m @@ -67,11 +67,16 @@ - (void)cellPlayButtonDidClick:(JPVPNetEasyTableViewCell *)cell { self.playingCell.playButton.hidden = YES; self.playingCell.videoPlayView.jp_videoPlayerDelegate = self; NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; + UIView *view = [UIView new]; + view.backgroundColor = [UIColor redColor]; + [self.playingCell.videoPlayView jp_playVideoWithURL:[NSURL URLWithString:self.pathStrings[indexPath.row]] bufferingIndicator:[JPVideoPlayerBufferingIndicator new] controlView:[[JPVideoPlayerControlView alloc] initWithControlBar:nil blurImage:nil] progressView:nil + coverView:view configuration:nil]; + } From c7f0f68ef7ebe2dc475a1f297b1d595b3a850ee2 Mon Sep 17 00:00:00 2001 From: "jianfeng.mo" Date: Sat, 1 Dec 2018 15:33:50 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8DcoverView=20delegate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JPVideoPlayer/UIView+WebVideoCache.m | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/JPVideoPlayer/UIView+WebVideoCache.m b/JPVideoPlayer/UIView+WebVideoCache.m index ef42dce..8c1013c 100755 --- a/JPVideoPlayer/UIView+WebVideoCache.m +++ b/JPVideoPlayer/UIView+WebVideoCache.m @@ -309,6 +309,9 @@ - (void)playVideoWithURL:(NSURL *)url if(self.jp_controlView && [self.jp_controlView respondsToSelector:@selector(viewWillPrepareToReuse)]){ [self.jp_controlView viewWillPrepareToReuse]; } + if(self.jp_coverView && [self.jp_coverView respondsToSelector:@selector(viewWillPrepareToReuse)]){ + [self.jp_coverView viewWillPrepareToReuse]; + } [self callFinishBufferingDelegate]; // Add progressView and controlView if need. self.helper.videoPlayerView.hidden = NO; @@ -565,6 +568,9 @@ - (void)callOrientationDelegateWithInterfaceOrientation:(JPVideoPlayViewInterfac if(self.jp_progressView && [self.jp_progressView respondsToSelector:@selector(videoPlayerInterfaceOrientationDidChange:videoURL:)]){ [self.jp_progressView videoPlayerInterfaceOrientationDidChange:interfaceOrientation videoURL:self.jp_videoURL]; } + if(self.jp_coverView && [self.jp_coverView respondsToSelector:@selector(videoPlayerInterfaceOrientationDidChange:videoURL:)]){ + [self.jp_coverView videoPlayerInterfaceOrientationDidChange:interfaceOrientation videoURL:self.jp_videoURL]; + } } - (void)callStartBufferingDelegate { @@ -669,6 +675,9 @@ - (void)videoPlayerManager:(JPVideoPlayerManager *)videoPlayerManager if(self.jp_progressView && [self.jp_progressView respondsToSelector:@selector(videoPlayerStatusDidChange:videoURL:)]){ [self.jp_progressView videoPlayerStatusDidChange:playerStatus videoURL:self.jp_videoURL]; } + if(self.jp_coverView && [self.jp_coverView respondsToSelector:@selector(videoPlayerStatusDidChange:videoURL:)]){ + [self.jp_coverView videoPlayerStatusDidChange:playerStatus videoURL:self.jp_videoURL]; + } } - (void)videoPlayerManager:(JPVideoPlayerManager *)videoPlayerManager From 2e6d475cca8db985a744b2c24b4a61b91b0bf57d Mon Sep 17 00:00:00 2001 From: "jianfeng.mo" Date: Sat, 1 Dec 2018 15:46:52 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JPVideoPlayer/JPVideoPlayerControlViews.m | 7 +++++++ JPVideoPlayer/UIView+WebVideoCache.m | 3 +++ 2 files changed, 10 insertions(+) diff --git a/JPVideoPlayer/JPVideoPlayerControlViews.m b/JPVideoPlayer/JPVideoPlayerControlViews.m index c810a10..7963c15 100644 --- a/JPVideoPlayer/JPVideoPlayerControlViews.m +++ b/JPVideoPlayer/JPVideoPlayerControlViews.m @@ -1110,6 +1110,13 @@ - (void)callLayoutMethodForContainerSubviews { for(UIView *view in self.bufferingIndicatorContainerView.subviews){ if([view respondsToSelector:@selector(layoutThatFits:nearestViewControllerInViewTree:interfaceOrientation:)]){ [view layoutThatFits:self.bounds + nearestViewControllerInViewTree:nearestViewController + interfaceOrientation:[self fetchCurrentInterfaceOrientation]]; + } + } + for(UIView *view in self.coverContainerView.subviews){ + if([view respondsToSelector:@selector(layoutThatFits:nearestViewControllerInViewTree:interfaceOrientation:)]){ + [view layoutThatFits:self.bounds nearestViewControllerInViewTree:nearestViewController interfaceOrientation:[self fetchCurrentInterfaceOrientation]]; } diff --git a/JPVideoPlayer/UIView+WebVideoCache.m b/JPVideoPlayer/UIView+WebVideoCache.m index 8c1013c..6338677 100755 --- a/JPVideoPlayer/UIView+WebVideoCache.m +++ b/JPVideoPlayer/UIView+WebVideoCache.m @@ -718,6 +718,9 @@ - (void)videoPlayerManagerDownloadProgressDidChange:(JPVideoPlayerManager *)vide if(self.helper.progressView && [self.helper.progressView respondsToSelector:@selector(cacheRangeDidChange:videoURL:)]){ [self.helper.progressView cacheRangeDidChange:fragmentRanges videoURL:self.jp_videoURL]; } + if(self.helper.coverView && [self.helper.coverView respondsToSelector:@selector(cacheRangeDidChange:videoURL:)]){ + [self.helper.coverView cacheRangeDidChange:fragmentRanges videoURL:self.jp_videoURL]; + } } - (void)videoPlayerManagerPlayProgressDidChange:(JPVideoPlayerManager *)videoPlayerManager From c87c20a989cc099f5a094375ddc6e6435714d3d1 Mon Sep 17 00:00:00 2001 From: "jianfeng.mo" Date: Sat, 1 Dec 2018 16:24:44 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=8A=E6=AC=A1?= =?UTF-8?q?=E7=9A=84coverView?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JPVideoPlayer/UIView+WebVideoCache.m | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/JPVideoPlayer/UIView+WebVideoCache.m b/JPVideoPlayer/UIView+WebVideoCache.m index 6338677..cb5db3c 100755 --- a/JPVideoPlayer/UIView+WebVideoCache.m +++ b/JPVideoPlayer/UIView+WebVideoCache.m @@ -269,8 +269,11 @@ - (void)setBufferingIndicator:(UIView *_Nullabl } } - if(coverView) { - self.jp_coverView = coverView; + if(coverView && self.jp_controlView){ + [self.jp_coverView removeFromSuperview]; + } + if(coverView){ + self.jp_coverView = controlView; } } From 1233174577cdf53957b2716bfabcc7d6f4a735ff Mon Sep 17 00:00:00 2001 From: "jianfeng.mo" Date: Sat, 1 Dec 2018 16:30:37 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JPVideoPlayer/UIView+WebVideoCache.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/JPVideoPlayer/UIView+WebVideoCache.m b/JPVideoPlayer/UIView+WebVideoCache.m index cb5db3c..5aa5029 100755 --- a/JPVideoPlayer/UIView+WebVideoCache.m +++ b/JPVideoPlayer/UIView+WebVideoCache.m @@ -269,11 +269,11 @@ - (void)setBufferingIndicator:(UIView *_Nullabl } } - if(coverView && self.jp_controlView){ + if(coverView && self.jp_coverView){ [self.jp_coverView removeFromSuperview]; } if(coverView){ - self.jp_coverView = controlView; + self.jp_coverView = coverView; } } From 5ba5e6789e946f4cb240bdb022145497ccc12431 Mon Sep 17 00:00:00 2001 From: "jianfeng.mo" Date: Sat, 5 Jan 2019 15:33:20 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jp_videoplayer_play@2x.png | Bin 3138 -> 518 bytes .../jp_videoplayer_play@3x.png | Bin 5521 -> 781 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/JPVideoPlayer/JPVideoPlayer.bundle/jp_videoplayer_play@2x.png b/JPVideoPlayer/JPVideoPlayer.bundle/jp_videoplayer_play@2x.png index cd0df76677aac26fa31c63326d3447190323a1af..44f385cb3704f43027b24f735a9b9c1b02fc3631 100644 GIT binary patch delta 500 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 c?Ej(uFW07*qoM6N<$g2I0Tq5uE@ diff --git a/JPVideoPlayer/JPVideoPlayer.bundle/jp_videoplayer_play@3x.png b/JPVideoPlayer/JPVideoPlayer.bundle/jp_videoplayer_play@3x.png index e780dbe71a6de5f268100bc2dc8591e182cd93ad..bcb4acd88d20a57323c1540deb0438ecb9af3340 100644 GIT binary patch delta 765 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 T8E1B}00000NkvXXu0mjf)b_M}