diff --git a/JPVideoPlayer/JPVideoPlayer.bundle/jp_videoplayer_play@2x.png b/JPVideoPlayer/JPVideoPlayer.bundle/jp_videoplayer_play@2x.png index cd0df76..44f385c 100644 Binary files a/JPVideoPlayer/JPVideoPlayer.bundle/jp_videoplayer_play@2x.png and b/JPVideoPlayer/JPVideoPlayer.bundle/jp_videoplayer_play@2x.png differ diff --git a/JPVideoPlayer/JPVideoPlayer.bundle/jp_videoplayer_play@3x.png b/JPVideoPlayer/JPVideoPlayer.bundle/jp_videoplayer_play@3x.png index e780dbe..bcb4acd 100644 Binary files a/JPVideoPlayer/JPVideoPlayer.bundle/jp_videoplayer_play@3x.png and b/JPVideoPlayer/JPVideoPlayer.bundle/jp_videoplayer_play@3x.png differ diff --git a/JPVideoPlayer/JPVideoPlayerControlViews.h b/JPVideoPlayer/JPVideoPlayerControlViews.h index c02c2c7..4ad5e13 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 @@ -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. * @@ -92,7 +95,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; @@ -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. */ @@ -136,6 +143,10 @@ UIKIT_EXTERN const CGFloat JPVideoPlayerProgressViewElementHeight; * 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 92e5881..7963c15 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() @@ -103,7 +105,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; } @@ -279,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 @@ -438,7 +440,11 @@ - (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; }); @@ -465,8 +471,12 @@ - (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; }); } @@ -493,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 { @@ -728,7 +738,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; } @@ -799,13 +809,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 +837,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 +882,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; }); @@ -914,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; @@ -944,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]; } @@ -962,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]; } @@ -980,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]; } @@ -1010,6 +1030,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)){ @@ -1083,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]]; } @@ -1163,6 +1197,20 @@ - (void)_setup { [self.userInteractionContainerView addGestureRecognizer:tapGestureRecognizer]; [self startTimer]; } + + UITapGestureRecognizer* doubleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureDidDoubleTap)]; + 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/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 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..5aa5029 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,13 @@ - (void)setBufferingIndicator:(UIView *_Nullabl self.jp_controlView = controlView; } } + + if(coverView && self.jp_coverView){ + [self.jp_coverView removeFromSuperview]; + } + if(coverView){ + self.jp_coverView = coverView; + } } - (void)jp_playVideoWithURL:(NSURL *)url @@ -288,6 +312,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; @@ -314,9 +341,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)]) { @@ -533,6 +571,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 { @@ -637,6 +678,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 @@ -677,6 +721,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 diff --git a/JPVideoPlayerDemo/.DS_Store b/JPVideoPlayerDemo/.DS_Store index 767d24a..2de75fd 100755 Binary files a/JPVideoPlayerDemo/.DS_Store and b/JPVideoPlayerDemo/.DS_Store differ diff --git a/JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/project.pbxproj b/JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/project.pbxproj old mode 100755 new mode 100644 index 028867d..f84d188 --- a/JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/project.pbxproj +++ b/JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/project.pbxproj @@ -21,6 +21,8 @@ 5F67056B1DADE88F001EBFAF /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F67056A1DADE88F001EBFAF /* AppDelegate.m */; }; 5F6705731DADE88F001EBFAF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5F6705721DADE88F001EBFAF /* Assets.xcassets */; }; 5FF7BAF11E7F8EC400912ACD /* JPVideoPlayerWeiBoListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FF7BAEE1E7F8EC400912ACD /* JPVideoPlayerWeiBoListViewController.m */; }; + 767932EE21B116300011D853 /* UIView+EnlargeEdge.m in Sources */ = {isa = PBXBuildFile; fileRef = 767932EA21B1162F0011D853 /* UIView+EnlargeEdge.m */; }; + 767932EF21B116300011D853 /* MRActivityIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 767932ED21B1162F0011D853 /* MRActivityIndicatorView.m */; }; C3D50D2EF7B7EB2F36B72E2D /* libPods-JPVideoPlayerDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EBFC49659DDED5EA35F2A91 /* libPods-JPVideoPlayerDemo.a */; }; CF45AA1220B8571C00E07B8E /* JPVideoPlayerAudioViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CF45AA1020B8571C00E07B8E /* JPVideoPlayerAudioViewController.m */; }; CF45AA1320B8571C00E07B8E /* JPVideoPlayerAudioViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = CF45AA1120B8571C00E07B8E /* JPVideoPlayerAudioViewController.xib */; }; @@ -88,6 +90,10 @@ 5F6705771DADE88F001EBFAF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 5FF7BAED1E7F8EC400912ACD /* JPVideoPlayerWeiBoListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JPVideoPlayerWeiBoListViewController.h; sourceTree = ""; }; 5FF7BAEE1E7F8EC400912ACD /* JPVideoPlayerWeiBoListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JPVideoPlayerWeiBoListViewController.m; sourceTree = ""; }; + 767932EA21B1162F0011D853 /* UIView+EnlargeEdge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+EnlargeEdge.m"; sourceTree = ""; }; + 767932EB21B1162F0011D853 /* UIView+EnlargeEdge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+EnlargeEdge.h"; sourceTree = ""; }; + 767932EC21B1162F0011D853 /* MRActivityIndicatorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MRActivityIndicatorView.h; sourceTree = ""; }; + 767932ED21B1162F0011D853 /* MRActivityIndicatorView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MRActivityIndicatorView.m; sourceTree = ""; }; 8EBFC49659DDED5EA35F2A91 /* libPods-JPVideoPlayerDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-JPVideoPlayerDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 8FB27241208F0C510025FF63 /* JPVideoPlayerKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JPVideoPlayerKit.h; sourceTree = ""; }; CF45AA0F20B8571C00E07B8E /* JPVideoPlayerAudioViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JPVideoPlayerAudioViewController.h; sourceTree = ""; }; @@ -267,37 +273,41 @@ CF5024CC207F66F300DE8E2E /* JPVideoPlayer */ = { isa = PBXGroup; children = ( - 8FB27241208F0C510025FF63 /* JPVideoPlayerKit.h */, + CF5024D8207F66F300DE8E2E /* JPResourceLoadingRequestTask.h */, + CF5024EA207F66F300DE8E2E /* JPResourceLoadingRequestTask.m */, + CF5024DF207F66F300DE8E2E /* JPVideoPlayer.bundle */, CF5024D6207F66F300DE8E2E /* JPVideoPlayer.h */, CF5024E6207F66F300DE8E2E /* JPVideoPlayer.m */, - CF5024D5207F66F300DE8E2E /* JPVideoPlayerProtocol.h */, - CF5024CD207F66F300DE8E2E /* JPVideoPlayerManager.h */, - CF5024E2207F66F300DE8E2E /* JPVideoPlayerManager.m */, - CF5024D2207F66F300DE8E2E /* JPVideoPlayerControlViews.h */, - CF5024DD207F66F300DE8E2E /* JPVideoPlayerControlViews.m */, CF5024DE207F66F300DE8E2E /* JPVideoPlayerCache.h */, CF5024D0207F66F300DE8E2E /* JPVideoPlayerCache.m */, CF5024D1207F66F300DE8E2E /* JPVideoPlayerCacheFile.h */, CF5024DC207F66F300DE8E2E /* JPVideoPlayerCacheFile.m */, CF5024D9207F66F300DE8E2E /* JPVideoPlayerCachePath.h */, CF5024E9207F66F300DE8E2E /* JPVideoPlayerCachePath.m */, + CF5024E3207F66F300DE8E2E /* JPVideoPlayerCompat.h */, + CF5024D4207F66F300DE8E2E /* JPVideoPlayerCompat.m */, + CF5024D2207F66F300DE8E2E /* JPVideoPlayerControlViews.h */, + CF5024DD207F66F300DE8E2E /* JPVideoPlayerControlViews.m */, CF5024E0207F66F300DE8E2E /* JPVideoPlayerDownloader.h */, CF5024CF207F66F300DE8E2E /* JPVideoPlayerDownloader.m */, + 8FB27241208F0C510025FF63 /* JPVideoPlayerKit.h */, + CF5024CD207F66F300DE8E2E /* JPVideoPlayerManager.h */, + CF5024E2207F66F300DE8E2E /* JPVideoPlayerManager.m */, + CF5024D5207F66F300DE8E2E /* JPVideoPlayerProtocol.h */, CF5024E5207F66F300DE8E2E /* JPVideoPlayerResourceLoader.h */, CF5024D7207F66F300DE8E2E /* JPVideoPlayerResourceLoader.m */, - CF5024D8207F66F300DE8E2E /* JPResourceLoadingRequestTask.h */, - CF5024EA207F66F300DE8E2E /* JPResourceLoadingRequestTask.m */, - CF5024E3207F66F300DE8E2E /* JPVideoPlayerCompat.h */, - CF5024D4207F66F300DE8E2E /* JPVideoPlayerCompat.m */, - CF5024E4207F66F300DE8E2E /* UIView+WebVideoCache.h */, - CF5024D3207F66F300DE8E2E /* UIView+WebVideoCache.m */, + CF5024DB207F66F300DE8E2E /* JPVideoPlayerSupportUtils.h */, + CF5024E7207F66F300DE8E2E /* JPVideoPlayerSupportUtils.m */, + 767932EC21B1162F0011D853 /* MRActivityIndicatorView.h */, + 767932ED21B1162F0011D853 /* MRActivityIndicatorView.m */, CF5024CE207F66F300DE8E2E /* UITableView+WebVideoCache.h */, CF5024E1207F66F300DE8E2E /* UITableView+WebVideoCache.m */, CF5024DA207F66F300DE8E2E /* UITableViewCell+WebVideoCache.h */, CF5024E8207F66F300DE8E2E /* UITableViewCell+WebVideoCache.m */, - CF5024DB207F66F300DE8E2E /* JPVideoPlayerSupportUtils.h */, - CF5024E7207F66F300DE8E2E /* JPVideoPlayerSupportUtils.m */, - CF5024DF207F66F300DE8E2E /* JPVideoPlayer.bundle */, + 767932EB21B1162F0011D853 /* UIView+EnlargeEdge.h */, + 767932EA21B1162F0011D853 /* UIView+EnlargeEdge.m */, + CF5024E4207F66F300DE8E2E /* UIView+WebVideoCache.h */, + CF5024D3207F66F300DE8E2E /* UIView+WebVideoCache.m */, ); name = JPVideoPlayer; path = ../../JPVideoPlayer; @@ -323,7 +333,6 @@ 5F67055F1DADE88F001EBFAF /* Sources */, 5F6705601DADE88F001EBFAF /* Frameworks */, 5F6705611DADE88F001EBFAF /* Resources */, - 818F9AB63D84633DC080A828 /* [CP] Embed Pods Frameworks */, 428134F9DF52FE292474C6FA /* [CP] Copy Pods Resources */, 48B548F91ED5B3AB00062DC2 /* Embed Frameworks */, ); @@ -342,7 +351,7 @@ 5F67055B1DADE88F001EBFAF /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0910; + LastUpgradeCheck = 1010; ORGANIZATIONNAME = NewPan; TargetAttributes = { 5F6705621DADE88F001EBFAF = { @@ -401,28 +410,13 @@ ); name = "[CP] Copy Pods Resources"; outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JPNavigationController.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 818F9AB63D84633DC080A828 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-JPVideoPlayerDemo/Pods-JPVideoPlayerDemo-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; FB1F63520C1F406AFCCB0116 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -448,6 +442,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 767932EF21B116300011D853 /* MRActivityIndicatorView.m in Sources */, CF5024EC207F66F400DE8E2E /* JPVideoPlayerCache.m in Sources */, 5FF7BAF11E7F8EC400912ACD /* JPVideoPlayerWeiBoListViewController.m in Sources */, CF5024F8207F66F400DE8E2E /* JPVideoPlayerCachePath.m in Sources */, @@ -457,6 +452,7 @@ CF5024EF207F66F400DE8E2E /* JPVideoPlayerResourceLoader.m in Sources */, CF73A143209217F000F8F63E /* JPVPNetEasyTableViewCell.m in Sources */, CF45AA1220B8571C00E07B8E /* JPVideoPlayerAudioViewController.m in Sources */, + 767932EE21B116300011D853 /* UIView+EnlargeEdge.m in Sources */, 5F67056B1DADE88F001EBFAF /* AppDelegate.m in Sources */, 48FD32711EB701D400ACCB05 /* JPQRCodeTool.m in Sources */, CF5024EB207F66F400DE8E2E /* JPVideoPlayerDownloader.m in Sources */, @@ -495,6 +491,7 @@ 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; @@ -502,6 +499,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; @@ -549,6 +547,7 @@ 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; @@ -556,6 +555,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; diff --git a/JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/JPVideoPlayerDemo/JPVideoPlayerDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + 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"> - + - - - - 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]; + } diff --git a/JPVideoPlayerDemo/Podfile.lock b/JPVideoPlayerDemo/Podfile.lock index d7636be..6f864e0 100755 --- a/JPVideoPlayerDemo/Podfile.lock +++ b/JPVideoPlayerDemo/Podfile.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/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