diff --git a/.swift-version b/.swift-version index 9f55b2c..bf77d54 100644 --- a/.swift-version +++ b/.swift-version @@ -1 +1 @@ -3.0 +4.2 diff --git a/CalendarDateRangePickerViewController.podspec b/CalendarDateRangePickerViewController.podspec index 88bbc8a..8a787bd 100644 --- a/CalendarDateRangePickerViewController.podspec +++ b/CalendarDateRangePickerViewController.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'CalendarDateRangePickerViewController' - s.version = '0.1.0' + s.version = '0.3.0' s.summary = 'A calendar date range picker view controller in Swift for iOS.' # This description is used to generate tags and improve search results. @@ -39,4 +39,6 @@ This is a calendar date range picker view controller written in Swift for iOS. T # s.public_header_files = 'Pod/Classes/**/*.h' # s.frameworks = 'UIKit', 'MapKit' # s.dependency 'AFNetworking', '~> 2.3' + + s.swift_version = '4.2' end diff --git a/CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerCell.swift b/CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerCell.swift index b0b64cd..b3e1b2f 100644 --- a/CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerCell.swift +++ b/CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerCell.swift @@ -11,9 +11,13 @@ import UIKit class CalendarDateRangePickerCell: UICollectionViewCell { private let defaultTextColor = UIColor.darkGray - private let highlightedColor = UIColor(white: 0.9, alpha: 1.0) + var highlightedColor = UIColor(white: 0.9, alpha: 1.0) private let disabledColor = UIColor.lightGray - + var font = UIFont(name: "HelveticaNeue", size: CalendarDateRangePickerViewController.defaultCellFontSize) { + didSet { + label?.font = font + } + } var selectedColor: UIColor! var date: Date? @@ -36,7 +40,7 @@ class CalendarDateRangePickerCell: UICollectionViewCell { func initLabel() { label = UILabel(frame: frame) label.center = CGPoint(x: frame.size.width / 2, y: frame.size.height / 2) - label.font = UIFont(name: "HelveticaNeue", size: 15.0) + label.font = font label.textColor = UIColor.darkGray label.textAlignment = NSTextAlignment.center self.addSubview(label) @@ -67,7 +71,7 @@ class CalendarDateRangePickerCell: UICollectionViewCell { selectedView?.backgroundColor = selectedColor selectedView?.layer.cornerRadius = height / 2 self.addSubview(selectedView!) - self.sendSubview(toBack: selectedView!) + self.sendSubviewToBack(selectedView!) label.textColor = UIColor.white } @@ -79,7 +83,7 @@ class CalendarDateRangePickerCell: UICollectionViewCell { halfBackgroundView = UIView(frame: CGRect(x: width / 2, y: 0, width: width / 2, height: height)) halfBackgroundView?.backgroundColor = highlightedColor self.addSubview(halfBackgroundView!) - self.sendSubview(toBack: halfBackgroundView!) + self.sendSubviewToBack(halfBackgroundView!) addRoundHighlightView() } @@ -91,7 +95,7 @@ class CalendarDateRangePickerCell: UICollectionViewCell { halfBackgroundView = UIView(frame: CGRect(x: 0, y: 0, width: width / 2, height: height)) halfBackgroundView?.backgroundColor = highlightedColor self.addSubview(halfBackgroundView!) - self.sendSubview(toBack: halfBackgroundView!) + self.sendSubviewToBack(halfBackgroundView!) addRoundHighlightView() } @@ -103,7 +107,7 @@ class CalendarDateRangePickerCell: UICollectionViewCell { roundHighlightView?.backgroundColor = highlightedColor roundHighlightView?.layer.cornerRadius = height / 2 self.addSubview(roundHighlightView!) - self.sendSubview(toBack: roundHighlightView!) + self.sendSubviewToBack(roundHighlightView!) } func highlight() { diff --git a/CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerHeaderView.swift b/CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerHeaderView.swift index c5d3b4e..babe99b 100644 --- a/CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerHeaderView.swift +++ b/CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerHeaderView.swift @@ -11,6 +11,11 @@ import UIKit class CalendarDateRangePickerHeaderView: UICollectionReusableView { var label: UILabel! + var font = UIFont(name: "HelveticaNeue-Light", size: CalendarDateRangePickerViewController.defaultHeaderFontSize) { + didSet { + label?.font = font + } + } override init(frame: CGRect) { super.init(frame: frame) @@ -24,11 +29,14 @@ class CalendarDateRangePickerHeaderView: UICollectionReusableView { func initLabel() { label = UILabel(frame: frame) - label.center = CGPoint(x: frame.size.width / 2, y: frame.size.height / 2) - label.font = UIFont(name: "HelveticaNeue-Light", size: 17.0) + label.font = font label.textColor = UIColor.darkGray label.textAlignment = NSTextAlignment.center self.addSubview(label) } + override func layoutSubviews() { + super.layoutSubviews() + label.center = CGPoint(x: frame.size.width / 2, y: frame.size.height / 2) + } } diff --git a/CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerViewController.swift b/CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerViewController.swift index 3626fdc..4f4ef7e 100644 --- a/CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerViewController.swift +++ b/CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerViewController.swift @@ -11,6 +11,18 @@ import UIKit public protocol CalendarDateRangePickerViewControllerDelegate { func didCancelPickingDateRange() func didPickDateRange(startDate: Date!, endDate: Date!) + + // Optional + func didPickDate(date: Date) + func calendarViewDidLayoutSubviews() + func calendarViewWillLayoutSubviews() +} + +public extension CalendarDateRangePickerViewControllerDelegate { + // Making these optional. For backwards compatiblity. + func didPickDate(date: Date) {} + func calendarViewDidLayoutSubviews() {} + func calendarViewWillLayoutSubviews() {} } public class CalendarDateRangePickerViewController: UICollectionViewController { @@ -22,7 +34,25 @@ public class CalendarDateRangePickerViewController: UICollectionViewController { let itemsPerRow = 7 let itemHeight: CGFloat = 40 - let collectionViewInsets = UIEdgeInsets(top: 0, left: 25, bottom: 0, right: 25) + + // 3/20/18; Changed from `let` to `var`, and made public, to allow Cocoapod user to change insets. + public var collectionViewInsets = UIEdgeInsets(top: 0, left: 25, bottom: 0, right: 25) + + // Allow the user select "backwards" in the calendar? E.g., say I select March 16 first and then want to select March 14 for range of March 14 to March 16. Default is `false` because this was the original behavior of this Cocoapod. + public var allowBackwardSelection: Bool = false + + // Only allow a single date (not a date range) to be selected. Default behavior is not to allow this. + public var onlySingleDateSelection: Bool = false + + // If you set this to false, then you get a callback for date selection on every tap. `true` is the original behavior of this Cocoapod. + public var requireDone: Bool = true + + fileprivate var calendar:Calendar = Calendar.current + public var timezone: TimeZone = TimeZone.current { + didSet { + calendar.timeZone = timezone + } + } public var minimumDate: Date! public var maximumDate: Date! @@ -30,9 +60,15 @@ public class CalendarDateRangePickerViewController: UICollectionViewController { public var selectedStartDate: Date? public var selectedEndDate: Date? + public var cellHighlightedColor = UIColor(white: 0.9, alpha: 1.0) + public static let defaultCellFontSize:CGFloat = 15.0 + public static let defaultHeaderFontSize:CGFloat = 17.0 + public var cellFont:UIFont = UIFont(name: "HelveticaNeue", size: CalendarDateRangePickerViewController.defaultCellFontSize)! + public var headerFont:UIFont = UIFont(name: "HelveticaNeue-Light", size: CalendarDateRangePickerViewController.defaultHeaderFontSize)! + public var selectedColor = UIColor(red: 66/255.0, green: 150/255.0, blue: 240/255.0, alpha: 1.0) public var titleText = "Select Dates" - + override public func viewDidLoad() { super.viewDidLoad() @@ -43,14 +79,14 @@ public class CalendarDateRangePickerViewController: UICollectionViewController { collectionView?.backgroundColor = UIColor.white collectionView?.register(CalendarDateRangePickerCell.self, forCellWithReuseIdentifier: cellReuseIdentifier) - collectionView?.register(CalendarDateRangePickerHeaderView.self, forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: headerReuseIdentifier) + collectionView?.register(CalendarDateRangePickerHeaderView.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: headerReuseIdentifier) collectionView?.contentInset = collectionViewInsets if minimumDate == nil { minimumDate = Date() } if maximumDate == nil { - maximumDate = Calendar.current.date(byAdding: .year, value: 3, to: minimumDate) + maximumDate = calendar.date(byAdding: .year, value: 3, to: minimumDate) } self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(CalendarDateRangePickerViewController.didTapCancel)) @@ -58,17 +94,32 @@ public class CalendarDateRangePickerViewController: UICollectionViewController { self.navigationItem.rightBarButtonItem?.isEnabled = selectedStartDate != nil && selectedEndDate != nil } - func didTapCancel() { + override public func viewDidLayoutSubviews() { + super.viewDidLayoutSubviews() + delegate.calendarViewDidLayoutSubviews() + } + + override public func viewWillLayoutSubviews() { + super.viewWillLayoutSubviews() + delegate.calendarViewWillLayoutSubviews() + } + + @objc func didTapCancel() { delegate.didCancelPickingDateRange() } - func didTapDone() { - if selectedStartDate == nil || selectedEndDate == nil { + @objc func didTapDone() { + if selectedStartDate == nil { + return + } + + if selectedEndDate == nil { + delegate.didPickDate(date: selectedStartDate!) return } + delegate.didPickDateRange(startDate: selectedStartDate!, endDate: selectedEndDate!) } - } extension CalendarDateRangePickerViewController { @@ -76,7 +127,7 @@ extension CalendarDateRangePickerViewController { // UICollectionViewDataSource override public func numberOfSections(in collectionView: UICollectionView) -> Int { - let difference = Calendar.current.dateComponents([.month], from: minimumDate, to: maximumDate) + let difference = calendar.dateComponents([.month], from: minimumDate, to: maximumDate) return difference.month! + 1 } @@ -90,7 +141,9 @@ extension CalendarDateRangePickerViewController { override public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellReuseIdentifier, for: indexPath) as! CalendarDateRangePickerCell + cell.highlightedColor = self.cellHighlightedColor cell.selectedColor = self.selectedColor + cell.font = self.cellFont cell.reset() let blankItems = getWeekday(date: getFirstDateForSection(section: indexPath.section)) - 1 if indexPath.item < 7 { @@ -132,9 +185,10 @@ extension CalendarDateRangePickerViewController { override public func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { switch kind { - case UICollectionElementKindSectionHeader: + case UICollectionView.elementKindSectionHeader: let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: headerReuseIdentifier, for: indexPath) as! CalendarDateRangePickerHeaderView headerView.label.text = getMonthLabel(date: getFirstDateForSection(section: indexPath.section)) + headerView.font = headerFont return headerView default: fatalError("Unexpected element kind") @@ -144,6 +198,11 @@ extension CalendarDateRangePickerViewController { } extension CalendarDateRangePickerViewController : UICollectionViewDelegateFlowLayout { + func didPickDateRangeIfNeeded() { + if !requireDone { + didTapDone() + } + } override public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { let cell = collectionView.cellForItem(at: indexPath) as! CalendarDateRangePickerCell @@ -153,20 +212,29 @@ extension CalendarDateRangePickerViewController : UICollectionViewDelegateFlowLa if isBefore(dateA: cell.date!, dateB: minimumDate) { return } - if selectedStartDate == nil { + if selectedStartDate == nil || onlySingleDateSelection { selectedStartDate = cell.date } else if selectedEndDate == nil { if isBefore(dateA: selectedStartDate!, dateB: cell.date!) { selectedEndDate = cell.date self.navigationItem.rightBarButtonItem?.isEnabled = true } else { - // If a cell before the currently selected start date is selected then just set it as the new start date - selectedStartDate = cell.date + if allowBackwardSelection && selectedStartDate != cell.date { + selectedEndDate = selectedStartDate + selectedStartDate = cell.date + } + else { + // If a cell before the currently selected start date is selected then just set it as the new start date + selectedStartDate = cell.date + } } } else { selectedStartDate = cell.date selectedEndDate = nil } + + didPickDateRangeIfNeeded() + collectionView.reloadData() } @@ -198,54 +266,56 @@ extension CalendarDateRangePickerViewController { // Helper functions func getFirstDate() -> Date { - var components = Calendar.current.dateComponents([.month, .year], from: minimumDate) + var components = calendar.dateComponents([.month, .year], from: minimumDate) components.day = 1 - return Calendar.current.date(from: components)! + return calendar.date(from: components)! } func getFirstDateForSection(section: Int) -> Date { - return Calendar.current.date(byAdding: .month, value: section, to: getFirstDate())! + return calendar.date(byAdding: .month, value: section, to: getFirstDate())! } func getMonthLabel(date: Date) -> String { let dateFormatter = DateFormatter() + dateFormatter.timeZone = timezone dateFormatter.dateFormat = "MMMM yyyy" return dateFormatter.string(from: date) } func getWeekdayLabel(weekday: Int) -> String { var components = DateComponents() - components.calendar = Calendar.current + components.calendar = calendar components.weekday = weekday - let date = Calendar.current.nextDate(after: Date(), matching: components, matchingPolicy: Calendar.MatchingPolicy.strict) + let date = calendar.nextDate(after: Date(), matching: components, matchingPolicy: Calendar.MatchingPolicy.strict) if date == nil { return "E" } let dateFormatter = DateFormatter() + dateFormatter.timeZone = timezone dateFormatter.dateFormat = "EEEEE" return dateFormatter.string(from: date!) } func getWeekday(date: Date) -> Int { - return Calendar.current.dateComponents([.weekday], from: date).weekday! + return calendar.dateComponents([.weekday], from: date).weekday! } func getNumberOfDaysInMonth(date: Date) -> Int { - return Calendar.current.range(of: .day, in: .month, for: date)!.count + return calendar.range(of: .day, in: .month, for: date)!.count } func getDate(dayOfMonth: Int, section: Int) -> Date { - var components = Calendar.current.dateComponents([.month, .year], from: getFirstDateForSection(section: section)) + var components = calendar.dateComponents([.month, .year], from: getFirstDateForSection(section: section)) components.day = dayOfMonth - return Calendar.current.date(from: components)! + return calendar.date(from: components)! } func areSameDay(dateA: Date, dateB: Date) -> Bool { - return Calendar.current.compare(dateA, to: dateB, toGranularity: .day) == ComparisonResult.orderedSame + return calendar.compare(dateA, to: dateB, toGranularity: .day) == ComparisonResult.orderedSame } func isBefore(dateA: Date, dateB: Date) -> Bool { - return Calendar.current.compare(dateA, to: dateB, toGranularity: .day) == ComparisonResult.orderedAscending + return calendar.compare(dateA, to: dateB, toGranularity: .day) == ComparisonResult.orderedAscending } } diff --git a/Example/CalendarDateRangePickerViewController.xcodeproj/project.pbxproj b/Example/CalendarDateRangePickerViewController.xcodeproj/project.pbxproj index 2525d1c..332cf00 100644 --- a/Example/CalendarDateRangePickerViewController.xcodeproj/project.pbxproj +++ b/Example/CalendarDateRangePickerViewController.xcodeproj/project.pbxproj @@ -171,7 +171,6 @@ 607FACCD1AFB9204008FA782 /* Frameworks */, 607FACCE1AFB9204008FA782 /* Resources */, 0F6BE5847BE8AA6CB69B2A9C /* [CP] Embed Pods Frameworks */, - D95801AA4A89A942D009ACE7 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -190,8 +189,6 @@ 607FACE11AFB9204008FA782 /* Sources */, 607FACE21AFB9204008FA782 /* Frameworks */, 607FACE31AFB9204008FA782 /* Resources */, - EF6A64A75FB01E436EFB8F2A /* [CP] Embed Pods Frameworks */, - 90660E831BCDAF1A8D8E88DC /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -210,17 +207,18 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0830; + LastUpgradeCheck = 1010; ORGANIZATIONNAME = CocoaPods; TargetAttributes = { 607FACCF1AFB9204008FA782 = { CreatedOnToolsVersion = 6.3.1; - DevelopmentTeam = 3EKA2B3YUL; + DevelopmentTeam = 4BPBWM9E57; LastSwiftMigration = 0900; }; 607FACE41AFB9204008FA782 = { CreatedOnToolsVersion = 6.3.1; - LastSwiftMigration = 0900; + DevelopmentTeam = 4BPBWM9E57; + LastSwiftMigration = 1010; TestTargetID = 607FACCF1AFB9204008FA782; }; }; @@ -271,73 +269,34 @@ files = ( ); inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CalendarDateRangePickerViewController.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 90660E831BCDAF1A8D8E88DC /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; AECF8035088311CEEB0C1BA1 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-CalendarDateRangePickerViewController_Example-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - 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"; - showEnvVarsInLog = 0; - }; - D95801AA4A89A942D009ACE7 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - EF6A64A75FB01E436EFB8F2A /* [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-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests-frameworks.sh\"\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; }; F46BA43B1CDF10DDB838ED4C /* [CP] Check Pods Manifest.lock */ = { @@ -346,13 +305,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-CalendarDateRangePickerViewController_Tests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - 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"; + 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; }; /* End PBXShellScriptBuildPhase section */ @@ -417,12 +379,14 @@ 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; @@ -455,7 +419,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Debug; }; @@ -471,12 +435,14 @@ 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; @@ -501,7 +467,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; VALIDATE_PRODUCT = YES; }; name = Release; @@ -511,14 +477,14 @@ baseConfigurationReference = 863F34A79DF14110025EE9E4 /* Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - DEVELOPMENT_TEAM = 3EKA2B3YUL; + DEVELOPMENT_TEAM = 4BPBWM9E57; INFOPLIST_FILE = CalendarDateRangePickerViewController/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "com.miraan.CalendarDateRangePickerViewController-Example"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Debug; }; @@ -527,14 +493,14 @@ baseConfigurationReference = C9304EBA1ACFB048B6759598 /* Pods-CalendarDateRangePickerViewController_Example.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - DEVELOPMENT_TEAM = 3EKA2B3YUL; + DEVELOPMENT_TEAM = 4BPBWM9E57; INFOPLIST_FILE = CalendarDateRangePickerViewController/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "com.miraan.CalendarDateRangePickerViewController-Example"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Release; }; @@ -542,10 +508,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = D8AE4ACECA92B54848C70741 /* Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig */; buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); + DEVELOPMENT_TEAM = 4BPBWM9E57; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", @@ -555,7 +518,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Debug; }; @@ -563,16 +526,14 @@ isa = XCBuildConfiguration; baseConfigurationReference = C5211826DC9557421575D69D /* Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig */; buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); + DEVELOPMENT_TEAM = 4BPBWM9E57; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Release; }; diff --git a/Example/CalendarDateRangePickerViewController.xcodeproj/xcshareddata/xcschemes/CalendarDateRangePickerViewController-Example.xcscheme b/Example/CalendarDateRangePickerViewController.xcodeproj/xcshareddata/xcschemes/CalendarDateRangePickerViewController-Example.xcscheme index f594deb..c2c632e 100644 --- a/Example/CalendarDateRangePickerViewController.xcodeproj/xcshareddata/xcschemes/CalendarDateRangePickerViewController-Example.xcscheme +++ b/Example/CalendarDateRangePickerViewController.xcodeproj/xcshareddata/xcschemes/CalendarDateRangePickerViewController-Example.xcscheme @@ -1,6 +1,6 @@ Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. return true } diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 72ea42c..bdae9c9 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - CalendarDateRangePickerViewController (0.1.0) + - CalendarDateRangePickerViewController (0.3.0) DEPENDENCIES: - CalendarDateRangePickerViewController (from `../`) @@ -9,8 +9,8 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - CalendarDateRangePickerViewController: 3199c67b45160527ae3864980caad29343366ce0 + CalendarDateRangePickerViewController: b076ed2b1c0782c9b5705df38b8397f705157631 PODFILE CHECKSUM: 2451ae3089d0abca27169c63b3f8b007c0f69b64 -COCOAPODS: 1.2.1 +COCOAPODS: 1.5.3 diff --git a/Example/Pods/Local Podspecs/CalendarDateRangePickerViewController.podspec.json b/Example/Pods/Local Podspecs/CalendarDateRangePickerViewController.podspec.json index 534de0f..9a80d97 100644 --- a/Example/Pods/Local Podspecs/CalendarDateRangePickerViewController.podspec.json +++ b/Example/Pods/Local Podspecs/CalendarDateRangePickerViewController.podspec.json @@ -1,6 +1,6 @@ { "name": "CalendarDateRangePickerViewController", - "version": "0.1.0", + "version": "0.3.0", "summary": "A calendar date range picker view controller in Swift for iOS.", "description": "This is a calendar date range picker view controller written in Swift for iOS. The typical use case is where you want the user to input a date range, i.e. a start date and an end date. This view controller allows this in an intuitive way, and is easy to use by implementing the delegate methods. See the example project for a taste.", "homepage": "https://github.com/miraan/CalendarDateRangePickerViewController", @@ -13,10 +13,11 @@ }, "source": { "git": "https://github.com/miraan/CalendarDateRangePickerViewController.git", - "tag": "0.1.0" + "tag": "0.3.0" }, "platforms": { "ios": "8.0" }, - "source_files": "CalendarDateRangePickerViewController/Classes/**/*" + "source_files": "CalendarDateRangePickerViewController/Classes/**/*", + "swift_version": "4.2" } diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 72ea42c..bdae9c9 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - CalendarDateRangePickerViewController (0.1.0) + - CalendarDateRangePickerViewController (0.3.0) DEPENDENCIES: - CalendarDateRangePickerViewController (from `../`) @@ -9,8 +9,8 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - CalendarDateRangePickerViewController: 3199c67b45160527ae3864980caad29343366ce0 + CalendarDateRangePickerViewController: b076ed2b1c0782c9b5705df38b8397f705157631 PODFILE CHECKSUM: 2451ae3089d0abca27169c63b3f8b007c0f69b64 -COCOAPODS: 1.2.1 +COCOAPODS: 1.5.3 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 9655cf0..8989ad7 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,21 +7,28 @@ objects = { /* Begin PBXBuildFile section */ - 1E4EC50ABC329D5A836D1D94242A58C0 /* CalendarDateRangePickerViewController-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1673A5479D44E2FC82AE481FCBFFE742 /* CalendarDateRangePickerViewController-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35BD327B27ABC782D937A666C2946848 /* CalendarDateRangePickerHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D75C979600E8A5FBF5F42F5CC5FA9DA /* CalendarDateRangePickerHeaderView.swift */; }; - 4DD185C05800CA69CD85017078E13168 /* Pods-CalendarDateRangePickerViewController_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A8178AD51DBB17E31CD43FF9A46689C9 /* Pods-CalendarDateRangePickerViewController_Tests-dummy.m */; }; - 4F2AA04D47433CB084EC55986DAFEB14 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; - 73FCAABC93DEF4EBE86403AA24C64673 /* Pods-CalendarDateRangePickerViewController_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4740F54E33287DBB42E7F91759B2C268 /* Pods-CalendarDateRangePickerViewController_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7808BE22FFB035A128888E0AF4060BD1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; - BE3F2AD6C776A8AB271230065EB3814C /* CalendarDateRangePickerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB418F748CD3F803A37EB14882E9D0CE /* CalendarDateRangePickerCell.swift */; }; - C10E4168CB00C0E3B2027B2FDB15551B /* CalendarDateRangePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A49805888B49A3A37F661EB44FC04FA /* CalendarDateRangePickerViewController.swift */; }; - C684FD8E2EA72BC05AE191E12CFCE261 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; - D2D04A31B43CF995D8CF31B0507AE35F /* Pods-CalendarDateRangePickerViewController_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FE25D3424A69F085B96399278B5035E /* Pods-CalendarDateRangePickerViewController_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D9A53DBA18904FD8FC984569305A3AEB /* CalendarDateRangePickerViewController-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F32B3971F72639D1F18CE5E5D1CBB999 /* CalendarDateRangePickerViewController-dummy.m */; }; - DFAE6E16A8BD7200E218A3B462B8F571 /* Pods-CalendarDateRangePickerViewController_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A84C1CB842AC8B9771C7ECD192D480B0 /* Pods-CalendarDateRangePickerViewController_Example-dummy.m */; }; + 1E4EC50ABC329D5A836D1D94242A58C0 /* CalendarDateRangePickerViewController-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D031774937848C4F601EA1400FE7EE64 /* CalendarDateRangePickerViewController-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2C0F00EFB32503B8036716E0A30771BE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; + 44D9A1B613EBDBD285773A89DC23C128 /* CalendarDateRangePickerHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98BEB140AD19E6883E90D5C189F37297 /* CalendarDateRangePickerHeaderView.swift */; }; + 60279219806CED7C50B3BF6409618172 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; + 73FCAABC93DEF4EBE86403AA24C64673 /* Pods-CalendarDateRangePickerViewController_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F2549B070D3AAC919632E79A60B22AC /* Pods-CalendarDateRangePickerViewController_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 78C00919E8E89633E977C4B0F3A5B499 /* Pods-CalendarDateRangePickerViewController_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 20EBB0C520C1AC77FCE696C748DEAE03 /* Pods-CalendarDateRangePickerViewController_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8004AFC0477281A16BCA1DA511826138 /* CalendarDateRangePickerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8EA5F0E3D723DC0207FFCD91F4F989E /* CalendarDateRangePickerCell.swift */; }; + 98B5A766AC1B8D9F43B1F124B978AA72 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; + CA1BC90207ACC04694A1323D0AA64B72 /* CalendarDateRangePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6296C2E64FE035E9C74081E4BA80D8 /* CalendarDateRangePickerViewController.swift */; }; + DA633422E5392ADC8B0E628D1E3EE94A /* Pods-CalendarDateRangePickerViewController_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 60573F90ABEAB6D2778D943EF59FF7CC /* Pods-CalendarDateRangePickerViewController_Tests-dummy.m */; }; + DFAE6E16A8BD7200E218A3B462B8F571 /* Pods-CalendarDateRangePickerViewController_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F2BB3AADB854A783B02DB2C1F4E5C8E /* Pods-CalendarDateRangePickerViewController_Example-dummy.m */; }; + F3CA961367AE4C71824A872DC4C97FC8 /* CalendarDateRangePickerViewController-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A26B40F1ADC8E17B42D935F77564DC0 /* CalendarDateRangePickerViewController-dummy.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 0B218C9648E0BA055C0A26D72D9628FA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 77B9D0C34AFEC78F982D3D8A11A84330; + remoteInfo = "Pods-CalendarDateRangePickerViewController_Example"; + }; E3BE9DCBA95C8D5C03FC8DBD16974794 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -32,48 +39,51 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0148BAA8FDBE646D63A642E62711E291 /* Pods-CalendarDateRangePickerViewController_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-CalendarDateRangePickerViewController_Example.modulemap"; sourceTree = ""; }; - 0A49805888B49A3A37F661EB44FC04FA /* CalendarDateRangePickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CalendarDateRangePickerViewController.swift; sourceTree = ""; }; - 0B149CD46FB0FF6E7364E973FADA68D5 /* Pods-CalendarDateRangePickerViewController_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-CalendarDateRangePickerViewController_Example-acknowledgements.markdown"; sourceTree = ""; }; - 1673A5479D44E2FC82AE481FCBFFE742 /* CalendarDateRangePickerViewController-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CalendarDateRangePickerViewController-umbrella.h"; sourceTree = ""; }; - 17FDB27756BA44C4F5FCCDE465907A18 /* CalendarDateRangePickerViewController.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CalendarDateRangePickerViewController.xcconfig; sourceTree = ""; }; - 282824AB3188DE0E84CB1A3FDE637FD4 /* Pods-CalendarDateRangePickerViewController_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-CalendarDateRangePickerViewController_Tests-acknowledgements.plist"; sourceTree = ""; }; - 3F7AB8A77F735D9B114F2BC4DED68270 /* Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig"; sourceTree = ""; }; - 3FE25D3424A69F085B96399278B5035E /* Pods-CalendarDateRangePickerViewController_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-CalendarDateRangePickerViewController_Tests-umbrella.h"; sourceTree = ""; }; - 4740F54E33287DBB42E7F91759B2C268 /* Pods-CalendarDateRangePickerViewController_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-CalendarDateRangePickerViewController_Example-umbrella.h"; sourceTree = ""; }; - 56A93C888A18F1A479C489856C4033BE /* CalendarDateRangePickerViewController.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = CalendarDateRangePickerViewController.modulemap; sourceTree = ""; }; - 6604A7D69453B4569E4E4827FB9155A9 /* 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; }; - 715A77DD2FAF7EB2E3141C961C905971 /* Pods-CalendarDateRangePickerViewController_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CalendarDateRangePickerViewController_Example.release.xcconfig"; sourceTree = ""; }; - 7812E19A58DDDF1DA9A161C2DA9B79E4 /* Pods-CalendarDateRangePickerViewController_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-CalendarDateRangePickerViewController_Example-acknowledgements.plist"; sourceTree = ""; }; - 81B0504AFABE1A3AD56E87DA8BFCA5C1 /* Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig"; sourceTree = ""; }; + 005C1815E38659ED21956EB7B017F4CB /* Pods-CalendarDateRangePickerViewController_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-CalendarDateRangePickerViewController_Example-acknowledgements.plist"; sourceTree = ""; }; + 17B4C1A0734124085FAD3154B264BDD7 /* CalendarDateRangePickerViewController.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CalendarDateRangePickerViewController.modulemap; sourceTree = ""; }; + 1B69EA13B3422096BF8F9D9A63CA8E02 /* CalendarDateRangePickerViewController.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CalendarDateRangePickerViewController.xcconfig; sourceTree = ""; }; + 20EBB0C520C1AC77FCE696C748DEAE03 /* Pods-CalendarDateRangePickerViewController_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-CalendarDateRangePickerViewController_Tests-umbrella.h"; sourceTree = ""; }; + 2A26B40F1ADC8E17B42D935F77564DC0 /* CalendarDateRangePickerViewController-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CalendarDateRangePickerViewController-dummy.m"; sourceTree = ""; }; + 2D269EDAF32074EACC581943EE56A965 /* Pods-CalendarDateRangePickerViewController_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CalendarDateRangePickerViewController_Example-resources.sh"; sourceTree = ""; }; + 2D6D1C8F8CC8EAD2E153C91B8DE31BB2 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 2F2549B070D3AAC919632E79A60B22AC /* Pods-CalendarDateRangePickerViewController_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-CalendarDateRangePickerViewController_Example-umbrella.h"; sourceTree = ""; }; + 30552C475BD9CBB1AFCF8FB2AB93A8CB /* CalendarDateRangePickerViewController-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CalendarDateRangePickerViewController-prefix.pch"; sourceTree = ""; }; + 33B6F5440C1CB469CA30D3BF188EDB36 /* Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig"; sourceTree = ""; }; + 3F4D79599F094C77133EACFA56B92677 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 58BE2C9A6D63A672CC42115BB09A2D20 /* Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig"; sourceTree = ""; }; + 5A16F4CFC63FAC439D7A04994F579A03 /* 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; }; + 5AB752FED2801E04C1E9C56A040D5FE0 /* Pods-CalendarDateRangePickerViewController_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CalendarDateRangePickerViewController_Example.release.xcconfig"; sourceTree = ""; }; + 5DB796FAD92F4439D5DBA08F2862F946 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 60573F90ABEAB6D2778D943EF59FF7CC /* Pods-CalendarDateRangePickerViewController_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-CalendarDateRangePickerViewController_Tests-dummy.m"; sourceTree = ""; }; + 6DD48A01B440B93F090F83833A2CAB29 /* Pods-CalendarDateRangePickerViewController_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-CalendarDateRangePickerViewController_Example.modulemap"; sourceTree = ""; }; + 6F2BB3AADB854A783B02DB2C1F4E5C8E /* Pods-CalendarDateRangePickerViewController_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-CalendarDateRangePickerViewController_Example-dummy.m"; sourceTree = ""; }; + 76E417F5ADFC98B1AE3288B4DEB4ED83 /* Pods-CalendarDateRangePickerViewController_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-CalendarDateRangePickerViewController_Example-acknowledgements.markdown"; sourceTree = ""; }; 83C670EA4CF3822AD954DA801FBF3132 /* Pods_CalendarDateRangePickerViewController_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_CalendarDateRangePickerViewController_Tests.framework; path = "Pods-CalendarDateRangePickerViewController_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D75C979600E8A5FBF5F42F5CC5FA9DA /* CalendarDateRangePickerHeaderView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CalendarDateRangePickerHeaderView.swift; sourceTree = ""; }; + 884CC57906142A654E6144C1590C60FD /* Pods-CalendarDateRangePickerViewController_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-CalendarDateRangePickerViewController_Tests.modulemap"; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 98BEB140AD19E6883E90D5C189F37297 /* CalendarDateRangePickerHeaderView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CalendarDateRangePickerHeaderView.swift; path = CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerHeaderView.swift; sourceTree = ""; }; 9DA2125F305F25D93B32CBB177390C16 /* CalendarDateRangePickerViewController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CalendarDateRangePickerViewController.framework; path = CalendarDateRangePickerViewController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A3897269F90EB5F8D49BBFC6F2474DF3 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A67FE854740E4F36D86A94599E52ABE6 /* Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig"; sourceTree = ""; }; - A8178AD51DBB17E31CD43FF9A46689C9 /* Pods-CalendarDateRangePickerViewController_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-CalendarDateRangePickerViewController_Tests-dummy.m"; sourceTree = ""; }; - A84C1CB842AC8B9771C7ECD192D480B0 /* Pods-CalendarDateRangePickerViewController_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-CalendarDateRangePickerViewController_Example-dummy.m"; sourceTree = ""; }; - A96ABA7F3EC8F5D41F82CF610954DA7C /* Pods-CalendarDateRangePickerViewController_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CalendarDateRangePickerViewController_Example-frameworks.sh"; sourceTree = ""; }; - B2F126D011F5C4835D5E7EA8050FCAA1 /* Pods-CalendarDateRangePickerViewController_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CalendarDateRangePickerViewController_Tests-frameworks.sh"; sourceTree = ""; }; + A8044606AB23543310577D49EFF2D519 /* CalendarDateRangePickerViewController.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = CalendarDateRangePickerViewController.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + ADDCFFCEBBC7B686958F03E7F5AD4DC4 /* Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig"; sourceTree = ""; }; + AE96B566BD942C4D2D2648EC0AF69D5D /* Pods-CalendarDateRangePickerViewController_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CalendarDateRangePickerViewController_Tests-resources.sh"; sourceTree = ""; }; + AFB7A97999A01C5E25F5A097210B97C9 /* Pods-CalendarDateRangePickerViewController_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-CalendarDateRangePickerViewController_Tests-acknowledgements.plist"; sourceTree = ""; }; + B48ED9E7315DF1FB815EA580AEAD76EF /* Pods-CalendarDateRangePickerViewController_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CalendarDateRangePickerViewController_Tests-frameworks.sh"; sourceTree = ""; }; + B6BEB5D19F58E857311380E52BA5B395 /* Pods-CalendarDateRangePickerViewController_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-CalendarDateRangePickerViewController_Tests-acknowledgements.markdown"; sourceTree = ""; }; BC88B657ED483FF70FB465C9035D9B5D /* Pods_CalendarDateRangePickerViewController_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_CalendarDateRangePickerViewController_Example.framework; path = "Pods-CalendarDateRangePickerViewController_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - C0B516091F6B38006FCD868D3E17FD38 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DFCD66755972151678CC738E9327BBD2 /* Pods-CalendarDateRangePickerViewController_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-CalendarDateRangePickerViewController_Tests-acknowledgements.markdown"; sourceTree = ""; }; - E36FA64337EC90F33E32EDB2DDD18C97 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E64D4B5D79327A7215979E2C7E9F074C /* Pods-CalendarDateRangePickerViewController_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CalendarDateRangePickerViewController_Example-resources.sh"; sourceTree = ""; }; - EB418F748CD3F803A37EB14882E9D0CE /* CalendarDateRangePickerCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CalendarDateRangePickerCell.swift; sourceTree = ""; }; - F32B3971F72639D1F18CE5E5D1CBB999 /* CalendarDateRangePickerViewController-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CalendarDateRangePickerViewController-dummy.m"; sourceTree = ""; }; - F63988E25133FD68B56845D05B8C834A /* Pods-CalendarDateRangePickerViewController_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CalendarDateRangePickerViewController_Tests-resources.sh"; sourceTree = ""; }; - FB3659AFE2022112C87D34DD540FD0F6 /* CalendarDateRangePickerViewController-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CalendarDateRangePickerViewController-prefix.pch"; sourceTree = ""; }; - FBF491DFA46BA5963C0D4239F06D5EB0 /* Pods-CalendarDateRangePickerViewController_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-CalendarDateRangePickerViewController_Tests.modulemap"; sourceTree = ""; }; + BD6296C2E64FE035E9C74081E4BA80D8 /* CalendarDateRangePickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CalendarDateRangePickerViewController.swift; path = CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerViewController.swift; sourceTree = ""; }; + C745A312DB1C897187E82B5610E54416 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D031774937848C4F601EA1400FE7EE64 /* CalendarDateRangePickerViewController-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CalendarDateRangePickerViewController-umbrella.h"; sourceTree = ""; }; + D58E121E2F14C32D89C760D8C04D10C1 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E85DD6C0A93285F4B9952945ECB5113D /* Pods-CalendarDateRangePickerViewController_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-CalendarDateRangePickerViewController_Example-frameworks.sh"; sourceTree = ""; }; + F8EA5F0E3D723DC0207FFCD91F4F989E /* CalendarDateRangePickerCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CalendarDateRangePickerCell.swift; path = CalendarDateRangePickerViewController/Classes/CalendarDateRangePickerCell.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 46EA05B1FC343FE510484ECCEB1A2A86 /* Frameworks */ = { + 059A62539B097F632E62FABF34F08DF3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7808BE22FFB035A128888E0AF4060BD1 /* Foundation.framework in Frameworks */, + 2C0F00EFB32503B8036716E0A30771BE /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -81,7 +91,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C684FD8E2EA72BC05AE191E12CFCE261 /* Foundation.framework in Frameworks */, + 98B5A766AC1B8D9F43B1F124B978AA72 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -89,7 +99,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4F2AA04D47433CB084EC55986DAFEB14 /* Foundation.framework in Frameworks */, + 60279219806CED7C50B3BF6409618172 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -99,105 +109,85 @@ 270F7FDB167E47EABF031636B08FF22D /* Targets Support Files */ = { isa = PBXGroup; children = ( - 5C8EAA2B222F898C7716BB2A4F0C67AE /* Pods-CalendarDateRangePickerViewController_Example */, - 7B8B116EF4DF1D41B0019CA3ED7CA19D /* Pods-CalendarDateRangePickerViewController_Tests */, + F2951950403A46F5530A3D27FC2003E9 /* Pods-CalendarDateRangePickerViewController_Example */, + 97990E6E83FDDB8B07FBF8E4467420A2 /* Pods-CalendarDateRangePickerViewController_Tests */, ); name = "Targets Support Files"; sourceTree = ""; }; - 5C8EAA2B222F898C7716BB2A4F0C67AE /* Pods-CalendarDateRangePickerViewController_Example */ = { + 5E0D919E635D23B70123790B8308F8EF /* iOS */ = { isa = PBXGroup; children = ( - A3897269F90EB5F8D49BBFC6F2474DF3 /* Info.plist */, - 0148BAA8FDBE646D63A642E62711E291 /* Pods-CalendarDateRangePickerViewController_Example.modulemap */, - 0B149CD46FB0FF6E7364E973FADA68D5 /* Pods-CalendarDateRangePickerViewController_Example-acknowledgements.markdown */, - 7812E19A58DDDF1DA9A161C2DA9B79E4 /* Pods-CalendarDateRangePickerViewController_Example-acknowledgements.plist */, - A84C1CB842AC8B9771C7ECD192D480B0 /* Pods-CalendarDateRangePickerViewController_Example-dummy.m */, - A96ABA7F3EC8F5D41F82CF610954DA7C /* Pods-CalendarDateRangePickerViewController_Example-frameworks.sh */, - E64D4B5D79327A7215979E2C7E9F074C /* Pods-CalendarDateRangePickerViewController_Example-resources.sh */, - 4740F54E33287DBB42E7F91759B2C268 /* Pods-CalendarDateRangePickerViewController_Example-umbrella.h */, - 81B0504AFABE1A3AD56E87DA8BFCA5C1 /* Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig */, - 715A77DD2FAF7EB2E3141C961C905971 /* Pods-CalendarDateRangePickerViewController_Example.release.xcconfig */, + 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */, ); - name = "Pods-CalendarDateRangePickerViewController_Example"; - path = "Target Support Files/Pods-CalendarDateRangePickerViewController_Example"; + name = iOS; sourceTree = ""; }; - 628E6CF1814A94563983E1EEAD63FBEE /* Support Files */ = { + 7334DAFE10E26FB484E88BC37615B57F /* Support Files */ = { isa = PBXGroup; children = ( - 56A93C888A18F1A479C489856C4033BE /* CalendarDateRangePickerViewController.modulemap */, - 17FDB27756BA44C4F5FCCDE465907A18 /* CalendarDateRangePickerViewController.xcconfig */, - F32B3971F72639D1F18CE5E5D1CBB999 /* CalendarDateRangePickerViewController-dummy.m */, - FB3659AFE2022112C87D34DD540FD0F6 /* CalendarDateRangePickerViewController-prefix.pch */, - 1673A5479D44E2FC82AE481FCBFFE742 /* CalendarDateRangePickerViewController-umbrella.h */, - C0B516091F6B38006FCD868D3E17FD38 /* Info.plist */, + 17B4C1A0734124085FAD3154B264BDD7 /* CalendarDateRangePickerViewController.modulemap */, + 1B69EA13B3422096BF8F9D9A63CA8E02 /* CalendarDateRangePickerViewController.xcconfig */, + 2A26B40F1ADC8E17B42D935F77564DC0 /* CalendarDateRangePickerViewController-dummy.m */, + 30552C475BD9CBB1AFCF8FB2AB93A8CB /* CalendarDateRangePickerViewController-prefix.pch */, + D031774937848C4F601EA1400FE7EE64 /* CalendarDateRangePickerViewController-umbrella.h */, + C745A312DB1C897187E82B5610E54416 /* Info.plist */, ); name = "Support Files"; path = "Example/Pods/Target Support Files/CalendarDateRangePickerViewController"; sourceTree = ""; }; - 7B8B116EF4DF1D41B0019CA3ED7CA19D /* Pods-CalendarDateRangePickerViewController_Tests */ = { + 7A8A15338D2843647807630340C35EA9 /* Pod */ = { isa = PBXGroup; children = ( - E36FA64337EC90F33E32EDB2DDD18C97 /* Info.plist */, - FBF491DFA46BA5963C0D4239F06D5EB0 /* Pods-CalendarDateRangePickerViewController_Tests.modulemap */, - DFCD66755972151678CC738E9327BBD2 /* Pods-CalendarDateRangePickerViewController_Tests-acknowledgements.markdown */, - 282824AB3188DE0E84CB1A3FDE637FD4 /* Pods-CalendarDateRangePickerViewController_Tests-acknowledgements.plist */, - A8178AD51DBB17E31CD43FF9A46689C9 /* Pods-CalendarDateRangePickerViewController_Tests-dummy.m */, - B2F126D011F5C4835D5E7EA8050FCAA1 /* Pods-CalendarDateRangePickerViewController_Tests-frameworks.sh */, - F63988E25133FD68B56845D05B8C834A /* Pods-CalendarDateRangePickerViewController_Tests-resources.sh */, - 3FE25D3424A69F085B96399278B5035E /* Pods-CalendarDateRangePickerViewController_Tests-umbrella.h */, - 3F7AB8A77F735D9B114F2BC4DED68270 /* Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig */, - A67FE854740E4F36D86A94599E52ABE6 /* Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig */, + A8044606AB23543310577D49EFF2D519 /* CalendarDateRangePickerViewController.podspec */, + 5DB796FAD92F4439D5DBA08F2862F946 /* LICENSE */, + 3F4D79599F094C77133EACFA56B92677 /* README.md */, ); - name = "Pods-CalendarDateRangePickerViewController_Tests"; - path = "Target Support Files/Pods-CalendarDateRangePickerViewController_Tests"; + name = Pod; sourceTree = ""; }; 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - AD34F0518B9E1E5BBD112F12DF543E5F /* Development Pods */, + 958C83BE92894B4A55FD705E11EB6448 /* Development Pods */, BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, BEDE9DE4F7DCFFD7703D8351C6AB7E99 /* Products */, 270F7FDB167E47EABF031636B08FF22D /* Targets Support Files */, ); sourceTree = ""; }; - 8477E267C7DCBA3A3DE1A3C65D5AFF7E /* Classes */ = { - isa = PBXGroup; - children = ( - EB418F748CD3F803A37EB14882E9D0CE /* CalendarDateRangePickerCell.swift */, - 8D75C979600E8A5FBF5F42F5CC5FA9DA /* CalendarDateRangePickerHeaderView.swift */, - 0A49805888B49A3A37F661EB44FC04FA /* CalendarDateRangePickerViewController.swift */, - ); - name = Classes; - path = Classes; - sourceTree = ""; - }; - A4E9BB39BE5747B8F2F1A216C0FB30E4 /* CalendarDateRangePickerViewController */ = { + 958C83BE92894B4A55FD705E11EB6448 /* Development Pods */ = { isa = PBXGroup; children = ( - 8477E267C7DCBA3A3DE1A3C65D5AFF7E /* Classes */, + E06188F9C5475CD6C4868DFC3C0FA178 /* CalendarDateRangePickerViewController */, ); - name = CalendarDateRangePickerViewController; - path = CalendarDateRangePickerViewController; + name = "Development Pods"; sourceTree = ""; }; - AD34F0518B9E1E5BBD112F12DF543E5F /* Development Pods */ = { + 97990E6E83FDDB8B07FBF8E4467420A2 /* Pods-CalendarDateRangePickerViewController_Tests */ = { isa = PBXGroup; children = ( - F9A5460D8A7EB22ADD0EBFC420563AC7 /* CalendarDateRangePickerViewController */, + 2D6D1C8F8CC8EAD2E153C91B8DE31BB2 /* Info.plist */, + 884CC57906142A654E6144C1590C60FD /* Pods-CalendarDateRangePickerViewController_Tests.modulemap */, + B6BEB5D19F58E857311380E52BA5B395 /* Pods-CalendarDateRangePickerViewController_Tests-acknowledgements.markdown */, + AFB7A97999A01C5E25F5A097210B97C9 /* Pods-CalendarDateRangePickerViewController_Tests-acknowledgements.plist */, + 60573F90ABEAB6D2778D943EF59FF7CC /* Pods-CalendarDateRangePickerViewController_Tests-dummy.m */, + B48ED9E7315DF1FB815EA580AEAD76EF /* Pods-CalendarDateRangePickerViewController_Tests-frameworks.sh */, + AE96B566BD942C4D2D2648EC0AF69D5D /* Pods-CalendarDateRangePickerViewController_Tests-resources.sh */, + 20EBB0C520C1AC77FCE696C748DEAE03 /* Pods-CalendarDateRangePickerViewController_Tests-umbrella.h */, + 33B6F5440C1CB469CA30D3BF188EDB36 /* Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig */, + ADDCFFCEBBC7B686958F03E7F5AD4DC4 /* Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig */, ); - name = "Development Pods"; + name = "Pods-CalendarDateRangePickerViewController_Tests"; + path = "Target Support Files/Pods-CalendarDateRangePickerViewController_Tests"; sourceTree = ""; }; BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { isa = PBXGroup; children = ( - D35AF013A5F0BAD4F32504907A52519E /* iOS */, + 5E0D919E635D23B70123790B8308F8EF /* iOS */, ); name = Frameworks; sourceTree = ""; @@ -212,22 +202,35 @@ name = Products; sourceTree = ""; }; - D35AF013A5F0BAD4F32504907A52519E /* iOS */ = { + E06188F9C5475CD6C4868DFC3C0FA178 /* CalendarDateRangePickerViewController */ = { isa = PBXGroup; children = ( - 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */, + F8EA5F0E3D723DC0207FFCD91F4F989E /* CalendarDateRangePickerCell.swift */, + 98BEB140AD19E6883E90D5C189F37297 /* CalendarDateRangePickerHeaderView.swift */, + BD6296C2E64FE035E9C74081E4BA80D8 /* CalendarDateRangePickerViewController.swift */, + 7A8A15338D2843647807630340C35EA9 /* Pod */, + 7334DAFE10E26FB484E88BC37615B57F /* Support Files */, ); - name = iOS; + name = CalendarDateRangePickerViewController; + path = ../..; sourceTree = ""; }; - F9A5460D8A7EB22ADD0EBFC420563AC7 /* CalendarDateRangePickerViewController */ = { + F2951950403A46F5530A3D27FC2003E9 /* Pods-CalendarDateRangePickerViewController_Example */ = { isa = PBXGroup; children = ( - A4E9BB39BE5747B8F2F1A216C0FB30E4 /* CalendarDateRangePickerViewController */, - 628E6CF1814A94563983E1EEAD63FBEE /* Support Files */, + D58E121E2F14C32D89C760D8C04D10C1 /* Info.plist */, + 6DD48A01B440B93F090F83833A2CAB29 /* Pods-CalendarDateRangePickerViewController_Example.modulemap */, + 76E417F5ADFC98B1AE3288B4DEB4ED83 /* Pods-CalendarDateRangePickerViewController_Example-acknowledgements.markdown */, + 005C1815E38659ED21956EB7B017F4CB /* Pods-CalendarDateRangePickerViewController_Example-acknowledgements.plist */, + 6F2BB3AADB854A783B02DB2C1F4E5C8E /* Pods-CalendarDateRangePickerViewController_Example-dummy.m */, + E85DD6C0A93285F4B9952945ECB5113D /* Pods-CalendarDateRangePickerViewController_Example-frameworks.sh */, + 2D269EDAF32074EACC581943EE56A965 /* Pods-CalendarDateRangePickerViewController_Example-resources.sh */, + 2F2549B070D3AAC919632E79A60B22AC /* Pods-CalendarDateRangePickerViewController_Example-umbrella.h */, + 58BE2C9A6D63A672CC42115BB09A2D20 /* Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig */, + 5AB752FED2801E04C1E9C56A040D5FE0 /* Pods-CalendarDateRangePickerViewController_Example.release.xcconfig */, ); - name = CalendarDateRangePickerViewController; - path = ../..; + name = "Pods-CalendarDateRangePickerViewController_Example"; + path = "Target Support Files/Pods-CalendarDateRangePickerViewController_Example"; sourceTree = ""; }; /* End PBXGroup section */ @@ -249,17 +252,35 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - B384B7441F6A5B06BE5E2E1A7F5F05AD /* Headers */ = { + C3486FF32673C8A8AE65F14F9FFF3531 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D2D04A31B43CF995D8CF31B0507AE35F /* Pods-CalendarDateRangePickerViewController_Tests-umbrella.h in Headers */, + 78C00919E8E89633E977C4B0F3A5B499 /* Pods-CalendarDateRangePickerViewController_Tests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + 4C44C8B1EE7BC3096EA12CAE46E02642 /* Pods-CalendarDateRangePickerViewController_Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = FA12AB78E4176DA7F3D8B02E9DB5A923 /* Build configuration list for PBXNativeTarget "Pods-CalendarDateRangePickerViewController_Tests" */; + buildPhases = ( + A738CB8F1B36F89B77C25729F8CA560A /* Sources */, + 059A62539B097F632E62FABF34F08DF3 /* Frameworks */, + C3486FF32673C8A8AE65F14F9FFF3531 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 5DEF47D4DE83E16CF32DA845F954E962 /* PBXTargetDependency */, + ); + name = "Pods-CalendarDateRangePickerViewController_Tests"; + productName = "Pods-CalendarDateRangePickerViewController_Tests"; + productReference = 83C670EA4CF3822AD954DA801FBF3132 /* Pods_CalendarDateRangePickerViewController_Tests.framework */; + productType = "com.apple.product-type.framework"; + }; 77B9D0C34AFEC78F982D3D8A11A84330 /* Pods-CalendarDateRangePickerViewController_Example */ = { isa = PBXNativeTarget; buildConfigurationList = CBD50354C76ADF3869F59B31356D2ECD /* Build configuration list for PBXNativeTarget "Pods-CalendarDateRangePickerViewController_Example" */; @@ -282,7 +303,7 @@ isa = PBXNativeTarget; buildConfigurationList = 2B4BD86E647E7072BCC530A24BE87671 /* Build configuration list for PBXNativeTarget "CalendarDateRangePickerViewController" */; buildPhases = ( - F849C22D0B8C84B106E69EDD44CA57BF /* Sources */, + D9A6DC4AC2188CDE09FD5A9DF3BF2E16 /* Sources */, 48E14DB9912A2AD6C4513FCE0FFDE41A /* Frameworks */, 9FE33BC83E6480E0DD4D8C2A803BF1ED /* Headers */, ); @@ -295,31 +316,14 @@ productReference = 9DA2125F305F25D93B32CBB177390C16 /* CalendarDateRangePickerViewController.framework */; productType = "com.apple.product-type.framework"; }; - B78E4D1C87F3118D0DBA6118C3AC86C2 /* Pods-CalendarDateRangePickerViewController_Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8C6AC58B0346986ECF712D9508DAA001 /* Build configuration list for PBXNativeTarget "Pods-CalendarDateRangePickerViewController_Tests" */; - buildPhases = ( - 34416A2CEB28613147DB4EE3632BCDF4 /* Sources */, - 46EA05B1FC343FE510484ECCEB1A2A86 /* Frameworks */, - B384B7441F6A5B06BE5E2E1A7F5F05AD /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-CalendarDateRangePickerViewController_Tests"; - productName = "Pods-CalendarDateRangePickerViewController_Tests"; - productReference = 83C670EA4CF3822AD954DA801FBF3132 /* Pods_CalendarDateRangePickerViewController_Tests.framework */; - productType = "com.apple.product-type.framework"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 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"; @@ -335,17 +339,17 @@ targets = ( 8F6EA6E60876BF509C484037E487507E /* CalendarDateRangePickerViewController */, 77B9D0C34AFEC78F982D3D8A11A84330 /* Pods-CalendarDateRangePickerViewController_Example */, - B78E4D1C87F3118D0DBA6118C3AC86C2 /* Pods-CalendarDateRangePickerViewController_Tests */, + 4C44C8B1EE7BC3096EA12CAE46E02642 /* Pods-CalendarDateRangePickerViewController_Tests */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 34416A2CEB28613147DB4EE3632BCDF4 /* Sources */ = { + A738CB8F1B36F89B77C25729F8CA560A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4DD185C05800CA69CD85017078E13168 /* Pods-CalendarDateRangePickerViewController_Tests-dummy.m in Sources */, + DA633422E5392ADC8B0E628D1E3EE94A /* Pods-CalendarDateRangePickerViewController_Tests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -357,20 +361,26 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - F849C22D0B8C84B106E69EDD44CA57BF /* Sources */ = { + D9A6DC4AC2188CDE09FD5A9DF3BF2E16 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BE3F2AD6C776A8AB271230065EB3814C /* CalendarDateRangePickerCell.swift in Sources */, - 35BD327B27ABC782D937A666C2946848 /* CalendarDateRangePickerHeaderView.swift in Sources */, - D9A53DBA18904FD8FC984569305A3AEB /* CalendarDateRangePickerViewController-dummy.m in Sources */, - C10E4168CB00C0E3B2027B2FDB15551B /* CalendarDateRangePickerViewController.swift in Sources */, + 8004AFC0477281A16BCA1DA511826138 /* CalendarDateRangePickerCell.swift in Sources */, + 44D9A1B613EBDBD285773A89DC23C128 /* CalendarDateRangePickerHeaderView.swift in Sources */, + F3CA961367AE4C71824A872DC4C97FC8 /* CalendarDateRangePickerViewController-dummy.m in Sources */, + CA1BC90207ACC04694A1323D0AA64B72 /* CalendarDateRangePickerViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + 5DEF47D4DE83E16CF32DA845F954E962 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-CalendarDateRangePickerViewController_Example"; + target = 77B9D0C34AFEC78F982D3D8A11A84330 /* Pods-CalendarDateRangePickerViewController_Example */; + targetProxy = 0B218C9648E0BA055C0A26D72D9628FA /* PBXContainerItemProxy */; + }; F6469ED4AC81D8C9C2494EB2A517B772 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = CalendarDateRangePickerViewController; @@ -380,310 +390,323 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0630A2EFCA5F9115112FF18E147AE37D /* Debug */ = { + 33098C78C11E43A41B63A61593C61500 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 81B0504AFABE1A3AD56E87DA8BFCA5C1 /* Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig */; + baseConfigurationReference = 5AB752FED2801E04C1E9C56A040D5FE0 /* Pods-CalendarDateRangePickerViewController_Example.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_CalendarDateRangePickerViewController_Example; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 07690A52CE32C6411EC3128272375793 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3F7AB8A77F735D9B114F2BC4DED68270 /* Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_CalendarDateRangePickerViewController_Tests; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 157AF0CD5E5AB2A2E74D3B8ECD865185 /* Release */ = { + 8B33C5230DE4A9DFA6D8F46505DD7AF7 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 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_DIRECT_OBJC_ISA_USAGE = 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; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = 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_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 = YES; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.3; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SYMROOT = "${SRCROOT}/../build"; - VALIDATE_PRODUCT = YES; }; - name = Release; + name = Debug; }; - 2A2EE1CEDA8A08A1D8BD4ABA1D93DFBA /* Release */ = { + 8EE52443708DE627FB6B8F50117B8161 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 715A77DD2FAF7EB2E3141C961C905971 /* Pods-CalendarDateRangePickerViewController_Example.release.xcconfig */; + baseConfigurationReference = 58BE2C9A6D63A672CC42115BB09A2D20 /* Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_CalendarDateRangePickerViewController_Example; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 38C176388D8B1520B25AD2E343EA1402 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A67FE854740E4F36D86A94599E52ABE6 /* Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_CalendarDateRangePickerViewController_Tests; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 50D75232D2FD3BA0BFF3649C12D887DE /* Release */ = { + 90000A9B6FA9404D2772FFB618AD757D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 17FDB27756BA44C4F5FCCDE465907A18 /* CalendarDateRangePickerViewController.xcconfig */; + baseConfigurationReference = 1B69EA13B3422096BF8F9D9A63CA8E02 /* CalendarDateRangePickerViewController.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController-prefix.pch"; INFOPLIST_FILE = "Target Support Files/CalendarDateRangePickerViewController/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_MODULE_NAME = CalendarDateRangePickerViewController; PRODUCT_NAME = CalendarDateRangePickerViewController; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - D7B1487F48E36BAD2CEF0AFCA4908B67 /* Debug */ = { + B42B54097A876E8A982CBF5DAA91B1AB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 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_DIRECT_OBJC_ISA_USAGE = 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; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = 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_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; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", + "POD_CONFIGURATION_RELEASE=1", "$(inherited)", ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.3; - ONLY_ACTIVE_ARCH = YES; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; SYMROOT = "${SRCROOT}/../build"; }; - name = Debug; + name = Release; }; - FABED8913844A5BF33BA6CADC520C5B1 /* Debug */ = { + CD1A0320838E8F75DD7E84AB40BF0913 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 17FDB27756BA44C4F5FCCDE465907A18 /* CalendarDateRangePickerViewController.xcconfig */; + baseConfigurationReference = 1B69EA13B3422096BF8F9D9A63CA8E02 /* CalendarDateRangePickerViewController.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController-prefix.pch"; INFOPLIST_FILE = "Target Support Files/CalendarDateRangePickerViewController/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_MODULE_NAME = CalendarDateRangePickerViewController; PRODUCT_NAME = CalendarDateRangePickerViewController; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + D86380433BFAD07C8C9A88AABD545073 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = ADDCFFCEBBC7B686958F03E7F5AD4DC4 /* Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + EF2093F733823B47FFC543664F8EDA86 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33B6F5440C1CB469CA30D3BF188EDB36 /* Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -696,8 +719,8 @@ 2B4BD86E647E7072BCC530A24BE87671 /* Build configuration list for PBXNativeTarget "CalendarDateRangePickerViewController" */ = { isa = XCConfigurationList; buildConfigurations = ( - FABED8913844A5BF33BA6CADC520C5B1 /* Debug */, - 50D75232D2FD3BA0BFF3649C12D887DE /* Release */, + 90000A9B6FA9404D2772FFB618AD757D /* Debug */, + CD1A0320838E8F75DD7E84AB40BF0913 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -705,26 +728,26 @@ 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - D7B1487F48E36BAD2CEF0AFCA4908B67 /* Debug */, - 157AF0CD5E5AB2A2E74D3B8ECD865185 /* Release */, + 8B33C5230DE4A9DFA6D8F46505DD7AF7 /* Debug */, + B42B54097A876E8A982CBF5DAA91B1AB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8C6AC58B0346986ECF712D9508DAA001 /* Build configuration list for PBXNativeTarget "Pods-CalendarDateRangePickerViewController_Tests" */ = { + CBD50354C76ADF3869F59B31356D2ECD /* Build configuration list for PBXNativeTarget "Pods-CalendarDateRangePickerViewController_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( - 07690A52CE32C6411EC3128272375793 /* Debug */, - 38C176388D8B1520B25AD2E343EA1402 /* Release */, + 8EE52443708DE627FB6B8F50117B8161 /* Debug */, + 33098C78C11E43A41B63A61593C61500 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CBD50354C76ADF3869F59B31356D2ECD /* Build configuration list for PBXNativeTarget "Pods-CalendarDateRangePickerViewController_Example" */ = { + FA12AB78E4176DA7F3D8B02E9DB5A923 /* Build configuration list for PBXNativeTarget "Pods-CalendarDateRangePickerViewController_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0630A2EFCA5F9115112FF18E147AE37D /* Debug */, - 2A2EE1CEDA8A08A1D8BD4ABA1D93DFBA /* Release */, + EF2093F733823B47FFC543664F8EDA86 /* Debug */, + D86380433BFAD07C8C9A88AABD545073 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Target Support Files/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.xcconfig b/Example/Pods/Target Support Files/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.xcconfig index 1e8359b..b3bb7c5 100644 --- a/Example/Pods/Target Support Files/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.xcconfig +++ b/Example/Pods/Target Support Files/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.xcconfig @@ -1,9 +1,8 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/CalendarDateRangePickerViewController +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CalendarDateRangePickerViewController GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -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}/../.. PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} diff --git a/Example/Pods/Target Support Files/CalendarDateRangePickerViewController/Info.plist b/Example/Pods/Target Support Files/CalendarDateRangePickerViewController/Info.plist index 161a9d3..f92230d 100644 --- a/Example/Pods/Target Support Files/CalendarDateRangePickerViewController/Info.plist +++ b/Example/Pods/Target Support Files/CalendarDateRangePickerViewController/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.1.0 + 0.3.0 CFBundleSignature ???? CFBundleVersion diff --git a/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example-frameworks.sh index 9e54100..12990cb 100755 --- a/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example-frameworks.sh @@ -1,11 +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 @@ -23,9 +40,9 @@ install_framework() source="$(readlink "${source}")" fi - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" @@ -54,12 +71,40 @@ install_framework() fi } +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # 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 &" @@ -72,11 +117,19 @@ 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 - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" @@ -85,14 +138,15 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi + STRIP_BINARY_RETVAL=1 } if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework" + install_framework "${BUILT_PRODUCTS_DIR}/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then wait diff --git a/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example-resources.sh b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example-resources.sh index aed060f..345301f 100755 --- a/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example-resources.sh +++ b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example-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}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# 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 .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -44,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -74,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -88,7 +100,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) @@ -98,5 +110,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/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig index 0120fe5..42f55f4 100644 --- a/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example.debug.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/CalendarDateRangePickerViewController" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CalendarDateRangePickerViewController" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "CalendarDateRangePickerViewController" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -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/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example.release.xcconfig index 0120fe5..42f55f4 100644 --- a/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Example/Pods-CalendarDateRangePickerViewController_Example.release.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/CalendarDateRangePickerViewController" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CalendarDateRangePickerViewController" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "CalendarDateRangePickerViewController" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -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/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests-frameworks.sh b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests-frameworks.sh index 0f29f13..08e3eaa 100755 --- a/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests-frameworks.sh @@ -1,11 +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 @@ -23,9 +40,9 @@ install_framework() source="$(readlink "${source}")" fi - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" @@ -54,12 +71,40 @@ install_framework() fi } +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # 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 &" @@ -72,11 +117,19 @@ 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 - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" @@ -85,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/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests-resources.sh b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests-resources.sh index aed060f..345301f 100755 --- a/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests-resources.sh +++ b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests-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}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# 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 .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -44,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -74,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -88,7 +100,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) @@ -98,5 +110,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/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig index e6c2f86..cc7611d 100644 --- a/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests.debug.xcconfig @@ -1,8 +1,8 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/CalendarDateRangePickerViewController" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CalendarDateRangePickerViewController" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework/Headers" +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/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig index e6c2f86..cc7611d 100644 --- a/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-CalendarDateRangePickerViewController_Tests/Pods-CalendarDateRangePickerViewController_Tests.release.xcconfig @@ -1,8 +1,8 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/CalendarDateRangePickerViewController" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CalendarDateRangePickerViewController" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/CalendarDateRangePickerViewController/CalendarDateRangePickerViewController.framework/Headers" +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