diff --git a/CSNotificationView/CSNativeBlurView.h b/CSNotificationView/CSNativeBlurView.h index facaf85..7a12d49 100644 --- a/CSNotificationView/CSNativeBlurView.h +++ b/CSNotificationView/CSNativeBlurView.h @@ -9,6 +9,7 @@ #import #import "CSNotificationView_Private.h" +API_AVAILABLE(ios(8.0)) @interface CSNativeBlurView : UIVisualEffectView @end diff --git a/CSNotificationView/CSNativeBlurView.m b/CSNotificationView/CSNativeBlurView.m index 9ef9bfd..e96190c 100644 --- a/CSNotificationView/CSNativeBlurView.m +++ b/CSNotificationView/CSNativeBlurView.m @@ -22,7 +22,15 @@ @implementation CSNativeBlurView - (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]]; + if (@available(iOS 8.0, *)) { + self = [super initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]]; + } else { + // Fallback on earlier versions + }if (@available(iOS 8.0, *)) { + self = [super initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]]; + } else { + // Fallback on earlier versions + } if (self) { self.tintColorView = [[UIView alloc] initWithFrame:self.bounds]; self.tintColorView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; diff --git a/CSNotificationView/CSNotificationView.h b/CSNotificationView/CSNotificationView.h index 084a6b5..4804bcb 100755 --- a/CSNotificationView/CSNotificationView.h +++ b/CSNotificationView/CSNotificationView.h @@ -10,6 +10,8 @@ static CGFloat const kCSNotificationViewHeight = 50.0f; static CGFloat const kCSNotificationViewSymbolViewSidelength = 44.0f; +static CGFloat const kCSNotificationViewCloseButtonWidth = 44.0f; +static CGFloat const kCSNotificationViewCloseButtonHeight = 44.0f; static NSTimeInterval const kCSNotificationViewDefaultShowDuration = 2.0; typedef NS_ENUM(NSInteger, CSNotificationViewStyle) { @@ -17,7 +19,7 @@ typedef NS_ENUM(NSInteger, CSNotificationViewStyle) { CSNotificationViewStyleError }; -typedef void(^CSVoidBlock)(); +typedef void(^CSVoidBlock)(void); @interface CSNotificationView : UIView @@ -73,7 +75,7 @@ typedef void(^CSVoidBlock)(); * @param animated Should a change in `showing` be animated? * @param completion `nil` or a callback called on the main thread after changes to the interface are completed. */ -- (void)setVisible:(BOOL)showing animated:(BOOL)animated completion:(void (^)())completion; +- (void)setVisible:(BOOL)showing animated:(BOOL)animated completion:(void (^)(void))completion; /** * Convenience method to dismiss with a(nother) predefined style and / or message. @@ -100,6 +102,8 @@ typedef void(^CSVoidBlock)(); * The label containing the message displayed to the user. */ @property (nonatomic, readonly) UILabel* textLabel; + +@property (nonatomic, readonly) UIButton *closeButton; @property (nonatomic, getter = isShowingActivity) BOOL showingActivity; diff --git a/CSNotificationView/CSNotificationView.m b/CSNotificationView/CSNotificationView.m index 4f4fbb0..d71f5eb 100644 --- a/CSNotificationView/CSNotificationView.m +++ b/CSNotificationView/CSNotificationView.m @@ -14,6 +14,15 @@ @implementation CSNotificationView +-(nullable instancetype)initWithCoder:(NSCoder *)aDecoder { + self = [self initWithCoder:aDecoder]; + return self; +} + +-(instancetype)initWithFrame:(CGRect)frame { + self = [self initWithFrame:frame]; + return self; +} #pragma mark + quick presentation + (void)showInViewController:(UIViewController*)viewController @@ -29,7 +38,7 @@ + (void)showInViewController:(UIViewController*)viewController note.image = image; note.textLabel.text = message; - void (^completion)() = ^{[note setVisible:NO animated:YES completion:nil];}; + void (^completion)(void) = ^{[note setVisible:NO animated:YES completion:nil];}; [note setVisible:YES animated:YES completion:^{ double delayInSeconds = duration; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); @@ -57,7 +66,7 @@ + (void)showInViewController:(UIViewController*)viewController note.textLabel.textAlignment = textAlignment; note.textLabel.text = message; - void (^completion)() = ^{[note setVisible:NO animated:YES completion:nil];}; + void (^completion)(void) = ^{[note setVisible:NO animated:YES completion:nil];}; [note setVisible:YES animated:YES completion:^{ double delayInSeconds = duration; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); @@ -175,6 +184,14 @@ - (instancetype)initWithParentViewController:(UIViewController*)viewController { [self updateSymbolView]; } + + //closeButton + { + _closeButton = [[UIButton alloc] init]; + _closeButton.translatesAutoresizingMaskIntoConstraints = NO; + _closeButton.backgroundColor = [UIColor clearColor]; + [self addSubview:_closeButton]; + } } //Interaction @@ -255,23 +272,28 @@ - (void)updateConstraints CGFloat symbolViewWidth = self.symbolView.tag != kCSNotificationViewEmptySymbolViewTag ? kCSNotificationViewSymbolViewSidelength : 0.0f; CGFloat symbolViewHeight = kCSNotificationViewSymbolViewSidelength; - + + CGFloat closeButtonWidth = kCSNotificationViewCloseButtonWidth; + CGFloat closeButtonHeight = kCSNotificationViewCloseButtonHeight; + NSDictionary* metrics = @{@"symbolViewWidth": [NSNumber numberWithFloat:symbolViewWidth], - @"symbolViewHeight":[NSNumber numberWithFloat:symbolViewHeight]}; + @"symbolViewHeight":[NSNumber numberWithFloat:symbolViewHeight], + @"closeButtonWidth":@(closeButtonWidth), + @"closeButtonHeight":@(closeButtonHeight)}; [self addConstraints:[NSLayoutConstraint - constraintsWithVisualFormat:@"H:|-(4)-[_symbolView(symbolViewWidth)]-(5)-[_textLabel]-(10)-|" + constraintsWithVisualFormat:@"H:|-(4)-[_symbolView(symbolViewWidth)]-(5)-[_textLabel]-(5)-[_closeButton(closeButtonWidth)]-(10)-|" options:0 metrics:metrics - views:NSDictionaryOfVariableBindings(_textLabel, _symbolView)]]; + views:NSDictionaryOfVariableBindings(_textLabel, _symbolView,_closeButton)]]; [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[_symbolView(symbolViewHeight)]" options:0 metrics:metrics views:NSDictionaryOfVariableBindings(_symbolView)]]; - + [self addConstraint:[NSLayoutConstraint constraintWithItem:_symbolView attribute:NSLayoutAttributeBottom @@ -287,7 +309,22 @@ - (void)updateConstraints toItem:_symbolView attribute:NSLayoutAttributeCenterY multiplier:1.0f constant:0]]; - + + [self addConstraints:[NSLayoutConstraint + constraintsWithVisualFormat:@"V:[_closeButton(closeButtonHeight)]" + options:0 + metrics:metrics + views:NSDictionaryOfVariableBindings(_closeButton)]]; + + [self addConstraint:[NSLayoutConstraint + constraintWithItem:_closeButton + attribute:NSLayoutAttributeBottom + relatedBy:NSLayoutRelationEqual + toItem:self + attribute:NSLayoutAttributeBottom + multiplier:1.0f constant:0]]; + + [super updateConstraints]; } @@ -311,11 +348,11 @@ -(void)handleTapInView:(UITapGestureRecognizer*)tapGestureRecognizer #pragma mark - presentation -- (void)setVisible:(BOOL)visible animated:(BOOL)animated completion:(void (^)())completion +- (void)setVisible:(BOOL)visible animated:(BOOL)animated completion:(void (^)(void))completion { if (_visible != visible) { - NSTimeInterval animationDuration = animated ? 0.4 : 0.0; + NSTimeInterval animationDuration = animated ? 0.7 : 0.0; CGRect startFrame, endFrame; [self animationFramesForVisible:visible startFrame:&startFrame endFrame:&endFrame]; diff --git a/CSNotificationView/CSNotificationView_Private.h b/CSNotificationView/CSNotificationView_Private.h index 7fd0f38..0cd94f8 100644 --- a/CSNotificationView/CSNotificationView_Private.h +++ b/CSNotificationView/CSNotificationView_Private.h @@ -31,7 +31,6 @@ static NSString * kCSNavigationBarBoundsKeyPath = @"parentNavigationController.n #pragma mark - presentation @property (nonatomic, weak) UIViewController* parentViewController; @property (nonatomic, strong) UINavigationController* parentNavigationController; //Has to be strong-referenced because CSNotificationView does KVO on parentNavigationController -@property (nonatomic, getter = isVisible) BOOL visible; #pragma mark - content views @property (nonatomic, strong, readonly) UIView* symbolView; // is updated by -(void)updateSymbolView diff --git a/Example/CSNotificationViewDemo.xcodeproj/project.pbxproj b/Example/CSNotificationViewDemo.xcodeproj/project.pbxproj old mode 100755 new mode 100644 index dd3b95b..e013f7e --- a/Example/CSNotificationViewDemo.xcodeproj/project.pbxproj +++ b/Example/CSNotificationViewDemo.xcodeproj/project.pbxproj @@ -17,11 +17,12 @@ 8E4E1AE717D353F3005EB12B /* CSRootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E4E1AE617D353F3005EB12B /* CSRootViewController.m */; }; 8E4E1AEF17D35DBD005EB12B /* Storyboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8E4E1AE117D35364005EB12B /* Storyboard.storyboard */; }; 8E757B5117D38F6B0088845B /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8E757B4F17D38CE80088845B /* Images.xcassets */; }; - CDA22641FF7B56FDE45B7458 /* libPods-CSNotificationViewDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0093830E592DC8633F4507F /* libPods-CSNotificationViewDemo.a */; }; + EFDB4F3496FCE29F537F7B03 /* libPods-CSNotificationViewDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A30B0E313513121F25F387D /* libPods-CSNotificationViewDemo.a */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 880664D9E4CB6491EE4E5E3C /* Pods-CSNotificationViewDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CSNotificationViewDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-CSNotificationViewDemo/Pods-CSNotificationViewDemo.debug.xcconfig"; sourceTree = ""; }; + 0A30B0E313513121F25F387D /* libPods-CSNotificationViewDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-CSNotificationViewDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4F4337AC8FFB8ED9D2AA40EE /* Pods-CSNotificationViewDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CSNotificationViewDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-CSNotificationViewDemo/Pods-CSNotificationViewDemo.release.xcconfig"; sourceTree = ""; }; 8E310C7718BBA9AE0081DEC7 /* CSDetailsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSDetailsViewController.h; sourceTree = ""; }; 8E310C7818BBA9AE0081DEC7 /* CSDetailsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSDetailsViewController.m; sourceTree = ""; }; 8E4E1AAF17D35355005EB12B /* CSNotificationViewDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CSNotificationViewDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -39,8 +40,7 @@ 8E4E1AE517D353F3005EB12B /* CSRootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSRootViewController.h; sourceTree = ""; }; 8E4E1AE617D353F3005EB12B /* CSRootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSRootViewController.m; sourceTree = ""; }; 8E757B4F17D38CE80088845B /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - 9A4F14863F8ED23637102486 /* Pods-CSNotificationViewDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CSNotificationViewDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-CSNotificationViewDemo/Pods-CSNotificationViewDemo.release.xcconfig"; sourceTree = ""; }; - D0093830E592DC8633F4507F /* libPods-CSNotificationViewDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-CSNotificationViewDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + D5E85C63DB9D8DC050CFA0A1 /* Pods-CSNotificationViewDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CSNotificationViewDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-CSNotificationViewDemo/Pods-CSNotificationViewDemo.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -51,7 +51,7 @@ 8E4E1AB517D35355005EB12B /* CoreGraphics.framework in Frameworks */, 8E4E1AB717D35355005EB12B /* UIKit.framework in Frameworks */, 8E4E1AB317D35355005EB12B /* Foundation.framework in Frameworks */, - CDA22641FF7B56FDE45B7458 /* libPods-CSNotificationViewDemo.a in Frameworks */, + EFDB4F3496FCE29F537F7B03 /* libPods-CSNotificationViewDemo.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -64,7 +64,7 @@ 8E4E1AB817D35355005EB12B /* CSNotificationViewDemo */, 8E4E1AB117D35355005EB12B /* Frameworks */, 8E4E1AB017D35355005EB12B /* Products */, - 97AFF85B5E6D9E5841F97E5B /* Pods */, + C769347B83FC922860C9A7BE /* Pods */, ); sourceTree = ""; }; @@ -83,7 +83,7 @@ 8E4E1AB417D35355005EB12B /* CoreGraphics.framework */, 8E4E1AB617D35355005EB12B /* UIKit.framework */, 8E4E1ACB17D35355005EB12B /* XCTest.framework */, - D0093830E592DC8633F4507F /* libPods-CSNotificationViewDemo.a */, + 0A30B0E313513121F25F387D /* libPods-CSNotificationViewDemo.a */, ); name = Frameworks; sourceTree = ""; @@ -115,11 +115,11 @@ name = "Supporting Files"; sourceTree = ""; }; - 97AFF85B5E6D9E5841F97E5B /* Pods */ = { + C769347B83FC922860C9A7BE /* Pods */ = { isa = PBXGroup; children = ( - 880664D9E4CB6491EE4E5E3C /* Pods-CSNotificationViewDemo.debug.xcconfig */, - 9A4F14863F8ED23637102486 /* Pods-CSNotificationViewDemo.release.xcconfig */, + D5E85C63DB9D8DC050CFA0A1 /* Pods-CSNotificationViewDemo.debug.xcconfig */, + 4F4337AC8FFB8ED9D2AA40EE /* Pods-CSNotificationViewDemo.release.xcconfig */, ); name = Pods; sourceTree = ""; @@ -131,11 +131,11 @@ isa = PBXNativeTarget; buildConfigurationList = 8E4E1ADB17D35355005EB12B /* Build configuration list for PBXNativeTarget "CSNotificationViewDemo" */; buildPhases = ( - 00883B70016F4060A1A950ED /* Check Pods Manifest.lock */, + B80CC3F8F7E59CB19529FADA /* [CP] Check Pods Manifest.lock */, 8E4E1AAB17D35355005EB12B /* Sources */, 8E4E1AAC17D35355005EB12B /* Frameworks */, 8E4E1AAD17D35355005EB12B /* Resources */, - 19CFEDDF4B6643CB830EB555 /* Copy Pods Resources */, + BFA15B7F8A204606AE35F41B /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -153,8 +153,13 @@ isa = PBXProject; attributes = { CLASSPREFIX = CS; - LastUpgradeCheck = 0500; + LastUpgradeCheck = 1000; ORGANIZATIONNAME = "Christian Schwarz"; + TargetAttributes = { + 8E4E1AAE17D35355005EB12B = { + DevelopmentTeam = Z9E6AHNZ26; + }; + }; }; buildConfigurationList = 8E4E1AAA17D35355005EB12B /* Build configuration list for PBXProject "CSNotificationViewDemo" */; compatibilityVersion = "Xcode 3.2"; @@ -187,30 +192,36 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 00883B70016F4060A1A950ED /* Check Pods Manifest.lock */ = { + B80CC3F8F7E59CB19529FADA /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); - name = "Check Pods Manifest.lock"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-CSNotificationViewDemo-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 19CFEDDF4B6643CB830EB555 /* Copy Pods Resources */ = { + BFA15B7F8A204606AE35F41B /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-CSNotificationViewDemo/Pods-CSNotificationViewDemo-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/CSNotificationView/CSNotificationView.bundle", ); - name = "Copy Pods Resources"; + name = "[CP] Copy Pods Resources"; outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CSNotificationView.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -253,30 +264,45 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = 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_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + 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; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; }; @@ -290,24 +316,38 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = 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_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + 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; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; }; @@ -315,13 +355,15 @@ }; 8E4E1ADC17D35355005EB12B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 880664D9E4CB6491EE4E5E3C /* Pods-CSNotificationViewDemo.debug.xcconfig */; + baseConfigurationReference = D5E85C63DB9D8DC050CFA0A1 /* Pods-CSNotificationViewDemo.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + DEVELOPMENT_TEAM = Z9E6AHNZ26; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "CSNotificationViewDemo/CSNotificationViewDemo-Prefix.pch"; INFOPLIST_FILE = "CSNotificationViewDemo/CSNotificationViewDemo-Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = "com.cschwarz.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = CSNotificationViewDemo; WRAPPER_EXTENSION = app; }; @@ -329,13 +371,15 @@ }; 8E4E1ADD17D35355005EB12B /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9A4F14863F8ED23637102486 /* Pods-CSNotificationViewDemo.release.xcconfig */; + baseConfigurationReference = 4F4337AC8FFB8ED9D2AA40EE /* Pods-CSNotificationViewDemo.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + DEVELOPMENT_TEAM = Z9E6AHNZ26; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "CSNotificationViewDemo/CSNotificationViewDemo-Prefix.pch"; INFOPLIST_FILE = "CSNotificationViewDemo/CSNotificationViewDemo-Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = "com.cschwarz.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = CSNotificationViewDemo; WRAPPER_EXTENSION = app; }; diff --git a/Example/CSNotificationViewDemo/CSNotificationViewDemo-Info.plist b/Example/CSNotificationViewDemo/CSNotificationViewDemo-Info.plist index 36935be..1e8e2e9 100755 --- a/Example/CSNotificationViewDemo/CSNotificationViewDemo-Info.plist +++ b/Example/CSNotificationViewDemo/CSNotificationViewDemo-Info.plist @@ -9,7 +9,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - com.cschwarz.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 0681c23..94b1e3a 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -6,9 +6,11 @@ DEPENDENCIES: EXTERNAL SOURCES: CSNotificationView: - :path: ../ + :path: "../" SPEC CHECKSUMS: - CSNotificationView: 0792f5220163c2befaf1a9716aa3d5a7d6bd4fb1 + CSNotificationView: 24c2825b3e36f4ce77c87528f49ea51436614184 -COCOAPODS: 0.36.3 +PODFILE CHECKSUM: f4fddefb75e9a100b7ba088b458a9380505e17e4 + +COCOAPODS: 1.5.3