NSAttributedString? {
545 | do {
546 | let data = string.data(using: String.Encoding.utf8, allowLossyConversion: true)
547 | if let d = data {
548 | let str = try NSAttributedString(data: d,
549 | options: [
550 | NSAttributedString.DocumentReadingOptionKey.documentType: NSAttributedString.DocumentType.html,
551 | NSAttributedString.DocumentReadingOptionKey.characterEncoding: String.Encoding.utf8.rawValue],
552 | documentAttributes: nil)
553 | return str
554 | }
555 | } catch {
556 | print(error)
557 | }
558 | return nil
559 | }
560 |
561 | extension UILabel {
562 | public convenience init(htmlString: String) {
563 | self.init()
564 | numberOfLines = 0
565 | lineBreakMode = .byWordWrapping
566 | attributedText = htmlString.attributedHTMLString
567 | }
568 | }
569 |
570 | extension String {
571 | public var attributedHTMLString: NSAttributedString? {
572 | return stringFromHtml(string: self)
573 | }
574 | }
575 | ```
576 | [See in Codemine](https://github.com/nodes-ios/Codemine/blob/master/Codemine/Extensions/String%2BHTML.swift)
577 | ### 💻 Usage
578 | #### General
579 | ```swift
580 | let camelCaseStr1 = "userId"
581 | let camelCaseStr2 = "isUserActiveMemberOfCurrentGroup"
582 |
583 | print(camelCaseStr1.camelCaseToUnderscore()) // "user_id"
584 | print(camelCaseStr2.camelCaseToUnderscore()) // "is_user_active_member_of_current_group"
585 |
586 | "email@example.com".isValidEmailAddress() // true
587 | "email.example.com".isValidEmailAddress() // false
588 | ```
589 | #### Range
590 | ```swift
591 | let str = "Hello world!"
592 | let range = str.range(from: "e", toString: " w") // Range(1..<7)
593 | ```
594 | #### HTML
595 | ```swift
596 | let htmlString = """
597 | Lorem ipsum dolor sit amet, consectetur adipisicing elit
598 |
599 | Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
600 |
601 | Sed ut perspiciatis, unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab illo inventore veritatis et quasi architecto beatae vitae dicta del veritas.
602 | """
603 |
604 | // Initialize new attributed string
605 | let attributedString = stringFromHtml(string: htmlString)
606 |
607 | // Access attributed string from original
608 | print(htmlString.attributedHTMLString)
609 |
610 | // Initialize label with html string
611 | let attributedLabel = UILabel(htmlString: htmlString)
612 | ```
613 |
614 |
615 | ## String initializable
616 | ### Description
617 | A protocol that contains methods:
618 |
619 | - `fromString(string: String) -> T?` which should initialize the conformed class using a `String`
620 | - `stringRepresentation() -> String` which returns a `String` representation of the conformed class.
621 |
622 |
623 | Contains extensions to `URL` and `Date` to get a `URL` or `Date` from a `String` and get its `String` representation.
624 | ### Code
625 |
626 | ```swift
627 | public protocol StringInitializable {
628 | static func fromString(_ string: String) -> T?
629 | func stringRepresentation() -> String
630 | }
631 |
632 | extension URL: StringInitializable {
633 | public static func fromString(_ string: String) -> T? {
634 | return self.init(string: string) as? T
635 | }
636 |
637 | public func stringRepresentation() -> String {
638 | return self.absoluteString
639 | }
640 | }
641 |
642 | extension Date: StringInitializable {
643 | static fileprivate let internalDateFormatter = DateFormatter()
644 | static fileprivate let allowedDateFormats = ["yyyy-MM-dd'T'HH:mm:ssZZZZZ", "yyyy-MM-dd'T'HH:mm:ss", "yyyy-MM-dd"]
645 | static public var customDateFormats: [String] = []
646 |
647 | public static func fromString(_ string: String) -> T? {
648 | for format in allowedDateFormats + customDateFormats {
649 | internalDateFormatter.dateFormat = format
650 | if let date = internalDateFormatter.date(from: string) as? T {
651 | return date
652 | }
653 | }
654 |
655 | return nil
656 | }
657 |
658 | public func stringRepresentation() -> String {
659 | Date.internalDateFormatter.dateFormat = Date.allowedDateFormats.first
660 | return Date.internalDateFormatter.string(from: self)
661 | }
662 | }
663 | ```
664 | [See in Codemine](https://github.com/nodes-ios/Codemine/blob/master/Codemine/Extensions/Extensions%2BStringInitializable.swift)
665 | ### 💻 Usage
666 | ```swift
667 | let urlFromString: URL? = URL.fromString("https://www.google.com")
668 |
669 | print(urlFromString?.stringRepresentation()) // Optional("https://www.google.com")
670 |
671 | let dateFromString: Date? = Date.fromString("2019-04-15")
672 |
673 | print(dateFromString?.stringRepresentation()) // Optional("2019-04-15T00:00:00+02:00")
674 | ```
675 |
676 | ## UIImage
677 | ### Description
678 | Contains initializers:
679 |
680 | - `init(color: UIColor, size: CGSize, cornerRadius: CGFloat)` which initializes a `UIImage` with a given size, filled with the given color.
681 |
682 | Contains variables:
683 |
684 | - `rotationCorrected` which corrects the orientation of the `UIImage`
685 |
686 | Contains methods:
687 |
688 | - `embed(icon: UIImage, inImage: UIImage) -> UIImage` which embeds the `icon` ontop of the given `image`
689 |
690 | ### Code
691 | ```swift
692 | import UIKit
693 |
694 | public extension UIImage {
695 | /**
696 | Create an `UIImage` with specified background color, size and corner radius.
697 |
698 | Parameter `color` is used for the background color,
699 | parameter `size` to set the size of the the holder rectangle,
700 | parameter `cornerRadius` for setting up the rounded corners.
701 |
702 | - Parameters:
703 | - color: The background color.
704 | - size: The size of the image.
705 | - cornerRadius: The corner radius.
706 |
707 | - Returns: A 'UIImage' with the specified color, size and corner radius.
708 | */
709 |
710 | convenience init(color: UIColor, size: CGSize, cornerRadius: CGFloat) {
711 | self.init()
712 |
713 | /// The base rectangle of the image.
714 | let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
715 | UIGraphicsBeginImageContext(rect.size)
716 |
717 | /// The graphics context of the image.
718 | let context = UIGraphicsGetCurrentContext()
719 | context?.setFillColor(color.cgColor)
720 | context?.fill(rect)
721 |
722 | /// Image that will be retured.
723 | var image = UIGraphicsGetImageFromCurrentImageContext()
724 | UIGraphicsEndImageContext()
725 |
726 | UIGraphicsBeginImageContext(size)
727 |
728 | UIBezierPath(roundedRect: rect, cornerRadius:cornerRadius).addClip()
729 | image?.draw(in: rect)
730 |
731 | image = UIGraphicsGetImageFromCurrentImageContext()
732 | UIGraphicsEndImageContext()
733 | }
734 |
735 |
736 | /**
737 | Embed an icon/image on top of a background image.
738 |
739 | `image` will be the background and `icon` is the image that will be on top of `image`.
740 | The `UIImage` that is set with the parameter `icon` will be centered on `image`.
741 |
742 | - Parameters:
743 | - icon: The embedded image that will be on top.
744 | - image: The background image.
745 | - Returns: The combined image as `UIImage`.
746 | */
747 | public class func embed(icon: UIImage, inImage image: UIImage ) -> UIImage? {
748 | let newSize = CGSize(width: image.size.width, height: image.size.height)
749 | UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
750 |
751 | image.draw(in: CGRect(x: 0,y: 0,width: newSize.width,height: newSize.height))
752 |
753 | // Center icon
754 | icon.draw(in: CGRect(x: image.size.width/2 - icon.size.width/2, y: image.size.height/2 - icon.size.height/2, width: icon.size.width, height: icon.size.height), blendMode:CGBlendMode.normal, alpha:1.0)
755 |
756 | let newImage = UIGraphicsGetImageFromCurrentImageContext()
757 | return newImage
758 | }
759 |
760 | /**
761 | Corrects the rotation/orientation of an image.
762 | When an image inadvertently was taken with the wrong orientation, this function will correct the rotation/orientation again.
763 |
764 | - Returns: The orientation corrected image as an `UIImage`.
765 | */
766 | public var rotationCorrected: UIImage? {
767 |
768 | UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
769 | self.draw(in: CGRect(origin: CGPoint.zero, size: self.size))
770 | let normalizedImage = UIGraphicsGetImageFromCurrentImageContext()
771 | UIGraphicsEndImageContext()
772 | return normalizedImage
773 | }
774 | }
775 | ```
776 | [See in Codemine](https://github.com/nodes-ios/Codemine/blob/master/Codemine/Extensions/UIImage%2BUtilities.swift)
777 | ### 💻 Usage
778 |
779 | ```swift
780 | let image = UIImage(color: UIColor.red, CGSize(width: 512, height: 256), cornerRadius:4.0)
781 | ```
782 | Returns a `UIImage` filled with red color, of the specified size and with the specified corner radius
783 |
784 | ```swift
785 | let image = UIImage.embed(icon: UIImage(named:"favouriteIcon"), inImage: UIImage(named:"profilePhoto"))
786 | ```
787 | Returns a `UIImage` composed by overlaying the icon on top of the first image.
788 |
789 | ## UIView
790 | ### Description
791 | Contains methods:
792 |
793 | - `from(nibWithName: String) -> T?` which returns `UIView` initialized from a nib with the given nibName
794 | - `roundViewCorners(corners: UIRectCorner, radius: CGFloat)` which rounds the current views given corners using the `layer.mask` approach
795 |
796 | ### Code
797 | ```swift
798 | import UIKit
799 |
800 | public extension UIView {
801 | /**
802 | Assign a `nibName` to a UIView.
803 | Later on you can call this `UIView` by its `nibName`.
804 |
805 | - Parameter name: The name that the UIView will get as its `name` assigned as a `String`.
806 | - Returns: `Generics type`.
807 | */
808 | public static func from(nibWithName:String) -> T? {
809 | let view = UINib(nibName: nibWithName, bundle: nil).instantiate(withOwner: nil, options: nil).first as? T
810 | return view
811 | }
812 |
813 | /**
814 | Rounded corners for a `UIView`.
815 |
816 | - Parameters:
817 | - corners: Defines which corners should be rounded.
818 | - radius: Defines the radius of the round corners as a `CGFloat`.
819 | */
820 | public func roundViewCorners(_ corners:UIRectCorner, radius: CGFloat) {
821 | let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
822 | let mask = CAShapeLayer()
823 | mask.path = path.cgPath
824 | self.layer.mask = mask
825 | }
826 | }
827 | ```
828 | [See in Codemine](https://github.com/nodes-ios/Codemine/blob/master/Codemine/Extensions/UIView%2BUtilities.swift)
829 | ### 💻 Usage
830 | ```swift
831 | let view = UIView.from(nibWithName("customView"))
832 | ```
833 | Returns a view instantiated from the specified nib.
834 |
835 | ```swift
836 | let view = UIView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
837 | view.roundViewCorners(UIRectCorner.allCorners, radius: 4.0)
838 | ```
839 | Rounds the specified corners of a `UIView` to the specified radius.
840 |
841 | ## URL
842 | ### Description
843 | Contains methods:
844 |
845 | - `appendingAssetSize(size: CGSize, mode: ImageUrlMode, heightParameterName: String, widthParameterName: String) -> URL?` which Adds the height, wifth and mode parameters to an URL
846 | - `value(forParameter: String) -> String?` which finds the first value for a URL parameter in a `URL`
847 | - `append(queryParameters: [String: String]) -> URL?` which appends the given parameters to the `URL`
848 |
849 | ### Code
850 | ```swift
851 | import CoreGraphics
852 | import UIKit
853 |
854 | public extension URL {
855 | /**
856 | Mode for image urls.
857 | It defines in which mode an image will be provided.
858 |
859 | - Resize: Resize image mode. The image can be streched or compressed.
860 | - Crop: Cropped image mode. It will crop into an image so only a part of the image will be provided.
861 | If no value is explicitly set, the default behavior is to center the image.
862 | - Fit: Resizes the image to fit within the width and height boundaries without cropping or distorting the image.
863 | The resulting image is assured to match one of the constraining dimensions,
864 | while the other dimension is altered to maintain the same aspect ratio of the input image.
865 | - Standard: Default/normal image mode. No changes to the ratio.
866 | */
867 | public enum ImageUrlMode : String {
868 | case resize = "resize"
869 | case crop = "crop"
870 | case fit = "fit"
871 | case `default` = "default"
872 | }
873 |
874 | /**
875 | Adds height, width and mode paramters to an url. To be used when fetching an image from a CDN, for example.
876 | Choose the `size` and the `mode` for the image url to define how an image will be provided from the backend.
877 |
878 | - parameters:
879 | - size: Set `size` as `CGSize` to define the size of the image that will be provided.
880 | - mode: Select a mode from predefined `ImageUrlMode` to set up a mode and define how an image will be provided.
881 | - heightParameterName: the name of the height paramter. Default is 'h'
882 | - widthParameterName: the name of the width paramter. Default is 'h'
883 | - returns: `URL` as a `NSURL`.
884 | */
885 | public func appendingAssetSize(_ size: CGSize, mode: ImageUrlMode = .default, heightParameterName : String = "h", widthParameterName : String = "w") -> URL? {
886 | guard var urlComponents = URLComponents(url: self, resolvingAgainstBaseURL: false) else { return nil }
887 |
888 | var queryItems:[URLQueryItem] = urlComponents.queryItems ?? []
889 | queryItems.append(URLQueryItem(name: widthParameterName, value: "\(Int(size.width * UIScreen.main.scale ))"))
890 | queryItems.append(URLQueryItem(name: heightParameterName, value: "\(Int(size.height * UIScreen.main.scale ))"))
891 | if mode != .default {
892 | queryItems.append(URLQueryItem(name: "mode", value: mode.rawValue))
893 | }
894 | urlComponents.queryItems = queryItems
895 | return urlComponents.url
896 | }
897 |
898 | /**
899 | Finds the first value for a URL parameter in a `URL`
900 | - parameters:
901 | - name: the URL parameter to look for
902 | - returns: the first value found for `name` or nil if no value was found
903 | */
904 | public func value(forParameter name: String) -> String? {
905 | guard let urlComponents = URLComponents(url: self, resolvingAgainstBaseURL: true),
906 | let queryItems = urlComponents.queryItems else {
907 | return nil
908 | }
909 | let items = queryItems.filter({ $0.name == name })
910 | return items.first?.value
911 | }
912 |
913 | /**
914 | Appends queryParameters to a `URL`
915 | - parameters:
916 | - queryParameters: a `String` : `String` dictionary containing the queryParameters to append
917 | - returns: a new `URL` instance with the appended queryParameters or nil if the appending failed
918 | */
919 | public func append(queryParameters: [String: String]) -> URL? {
920 | guard var urlComponents = URLComponents(url: self, resolvingAgainstBaseURL: true) else {
921 | return nil
922 | }
923 |
924 | let urlQueryItems = queryParameters.map{
925 | return URLQueryItem(name: $0, value: $1)
926 | }
927 | urlComponents.queryItems = urlQueryItems
928 | return urlComponents.url
929 | }
930 | }
931 | ```
932 | [See in Codemine](https://github.com/nodes-ios/Codemine/blob/master/Codemine/Extensions/NSURL%2BUtilities.swift)
933 | ### 💻 Usage
934 | ```swift
935 | guard let url = NSURL(string: "https://example.com/image.png") else { return }
936 | let size = CGSize(width: 512, height: 256)
937 | let heightParameterName = "height"
938 | let widthParameterName = "width"
939 |
940 | let url2 = url.appendingAssetSize(size, mode: .default, heightParameterName: heightParameterName, widthParameterName: widthParameterName)
941 | print(url2.absoluteString) // on an @2x screen: "https://example.com/image.png?width=1024&height=512"
942 | ```
943 | This method appends the `size` multiplied by `UIScreen.main.scale` to an asset url so that the asset has the correct size to be shown on the screen.
944 |
945 |
946 | ## URLSession
947 | ### Description
948 | Contains methods:
949 |
950 | - `decode(requestCompletion: (Data?, Error?)) -> DResult` which adds a handler that attempts to parse the result of the request into a `Decodable`
951 | - `decode(_ completion: @escaping ((DResult) -> Void)) -> ((Data?, URLResponse?, Error?) -> Void)` which adds a handler that attempts to parse the requst of the request into a `Decodable`
952 |
953 | ### Code
954 | ```swift
955 | // Decoded Result
956 | public enum DResult {
957 | case success(Value)
958 | case successWithError(Value, Error)
959 | case failure(Error)
960 | }
961 |
962 | public extension URLSession {
963 |
964 | /**
965 | Adds a handler that attempts to parse the result of the request into a **Decodable**
966 |
967 | - parameter requestCompletion: The URLSession.dataTask completion
968 |
969 | - returns: The Decoded Result (DResult)
970 | */
971 | public func decode(requestCompletion: (Data?, Error?)) -> DResult {
972 | switch requestCompletion {
973 | case (.some(let data), .some(let error)):
974 | do {
975 | let decodedData = try JSONDecoder().decode(Value.self, from: data)
976 | return .successWithError(decodedData, error)
977 | } catch let decodeError {
978 | return .failure(decodeError)
979 | }
980 | case (.some(let data), .none):
981 | do {
982 | let decodedData = try JSONDecoder().decode(Value.self, from: data)
983 | return .success(decodedData)
984 | } catch let decodeError {
985 | return .failure(decodeError)
986 | }
987 | case (.none, .some(let error)):
988 | return .failure(error)
989 |
990 | case (.none, .none):
991 | let fallBackError = NSError(domain: "", code: 0, userInfo: [NSLocalizedDescriptionKey: "Data was not retrieved from request"]) as Error
992 | return .failure(fallBackError)
993 | }
994 | }
995 |
996 | /**
997 | Adds a handler that attempts to parse the result of the request into a **Decodable**
998 |
999 | - parameter completion: A closure that is invoked when the request is finished, containting the desired DataModel to be returned
1000 |
1001 | - returns: The URLSession.dataTask completion
1002 | */
1003 | public func decode(_ completion: @escaping ((DResult) -> Void)) -> ((Data?, URLResponse?, Error?) -> Void) {
1004 | return { (data, _, error) in
1005 | DispatchQueue.main.async {
1006 | completion(self.decode(requestCompletion: (data, error)))
1007 | }
1008 | }
1009 | }
1010 | }
1011 | ```
1012 | [See in Codemine](https://github.com/nodes-ios/Codemine/blob/master/Codemine/Extensions/URLSession%2BCodable.swift)
1013 | ## Credits
1014 | Made with ❤️ at [Nodes](http://nodesagency.com).
1015 |
1016 | `Application` and `Then` were borrowed from Hyper's [Sugar](https://github.com/hyperoslo/Sugar) 🙈.
1017 |
1018 | The `DispatchTime` extensions are [Russ Bishop's idea](http://www.russbishop.net/quick-easy-dispatchtime) 🙈.
1019 |
1020 |
1021 | ## License
1022 | **Codemine** is available under the MIT license. See the [LICENSE](https://github.com/nodes-ios/Codemine/blob/master/LICENSE) file for more info.
1023 |
--------------------------------------------------------------------------------
/Codemine.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 0132B4CF1C70E616007BC588 /* NSError+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0132B4CE1C70E616007BC588 /* NSError+Utilities.swift */; };
11 | 01CD402C1D071BAE0044887E /* Codemine.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01CD40221D071BAE0044887E /* Codemine.framework */; };
12 | 01CD40481D071BB50044887E /* Codemine.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01CD403E1D071BB50044887E /* Codemine.framework */; };
13 | 01CD40621D071BCB0044887E /* Application.swift in Sources */ = {isa = PBXBuildFile; fileRef = 293490ED1C6CAFD500E8305E /* Application.swift */; };
14 | 01CD40631D071BCB0044887E /* Then.swift in Sources */ = {isa = PBXBuildFile; fileRef = 293490EF1C6CAFF200E8305E /* Then.swift */; };
15 | 01CD40651D071BCB0044887E /* Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272CE1C75F32200FB1BBD /* Operators.swift */; };
16 | 01CD40661D071BCC0044887E /* Application.swift in Sources */ = {isa = PBXBuildFile; fileRef = 293490ED1C6CAFD500E8305E /* Application.swift */; };
17 | 01CD40671D071BCC0044887E /* Then.swift in Sources */ = {isa = PBXBuildFile; fileRef = 293490EF1C6CAFF200E8305E /* Then.swift */; };
18 | 01CD40691D071BCC0044887E /* Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272CE1C75F32200FB1BBD /* Operators.swift */; };
19 | 01CD406A1D071BCC0044887E /* Application.swift in Sources */ = {isa = PBXBuildFile; fileRef = 293490ED1C6CAFD500E8305E /* Application.swift */; };
20 | 01CD406B1D071BCC0044887E /* Then.swift in Sources */ = {isa = PBXBuildFile; fileRef = 293490EF1C6CAFF200E8305E /* Then.swift */; };
21 | 01CD406D1D071BCC0044887E /* Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272CE1C75F32200FB1BBD /* Operators.swift */; };
22 | 01CD40711D071BDB0044887E /* String+CaseConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272B81C75EC1F00FB1BBD /* String+CaseConverter.swift */; };
23 | 01CD40721D071BDB0044887E /* String+Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272BA1C75EC2C00FB1BBD /* String+Range.swift */; };
24 | 01CD40731D071BDB0044887E /* String+EmailValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272BC1C75EC3900FB1BBD /* String+EmailValidation.swift */; };
25 | 01CD40741D071BDB0044887E /* CGRect+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C21C75EDE300FB1BBD /* CGRect+Utilities.swift */; };
26 | 01CD40751D071BDB0044887E /* CGPoint+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C41C75EE4F00FB1BBD /* CGPoint+Utilities.swift */; };
27 | 01CD40761D071BDB0044887E /* NSError+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0132B4CE1C70E616007BC588 /* NSError+Utilities.swift */; };
28 | 01CD40771D071BDB0044887E /* UIColor+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C01C75ED3900FB1BBD /* UIColor+Hex.swift */; };
29 | 01CD40791D071BDB0044887E /* UIImage+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272CA1C75EEB500FB1BBD /* UIImage+Utilities.swift */; };
30 | 01CD407B1D071BDC0044887E /* String+CaseConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272B81C75EC1F00FB1BBD /* String+CaseConverter.swift */; };
31 | 01CD407C1D071BDC0044887E /* String+Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272BA1C75EC2C00FB1BBD /* String+Range.swift */; };
32 | 01CD407D1D071BDC0044887E /* String+EmailValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272BC1C75EC3900FB1BBD /* String+EmailValidation.swift */; };
33 | 01CD407E1D071BDC0044887E /* CGRect+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C21C75EDE300FB1BBD /* CGRect+Utilities.swift */; };
34 | 01CD407F1D071BDC0044887E /* CGPoint+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C41C75EE4F00FB1BBD /* CGPoint+Utilities.swift */; };
35 | 01CD40801D071BDC0044887E /* NSError+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0132B4CE1C70E616007BC588 /* NSError+Utilities.swift */; };
36 | 01CD40811D071BDC0044887E /* UIColor+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C01C75ED3900FB1BBD /* UIColor+Hex.swift */; };
37 | 01CD40821D071BDC0044887E /* NSURL+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C81C75EE9A00FB1BBD /* NSURL+Utilities.swift */; };
38 | 01CD40831D071BDC0044887E /* UIImage+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272CA1C75EEB500FB1BBD /* UIImage+Utilities.swift */; };
39 | 01CD40841D071BDC0044887E /* UIView+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272CC1C75EECB00FB1BBD /* UIView+Utilities.swift */; };
40 | 01CD40851D071BDC0044887E /* String+CaseConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272B81C75EC1F00FB1BBD /* String+CaseConverter.swift */; };
41 | 01CD40861D071BDC0044887E /* String+Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272BA1C75EC2C00FB1BBD /* String+Range.swift */; };
42 | 01CD40871D071BDC0044887E /* String+EmailValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272BC1C75EC3900FB1BBD /* String+EmailValidation.swift */; };
43 | 01CD40881D071BDC0044887E /* CGRect+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C21C75EDE300FB1BBD /* CGRect+Utilities.swift */; };
44 | 01CD40891D071BDC0044887E /* CGPoint+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C41C75EE4F00FB1BBD /* CGPoint+Utilities.swift */; };
45 | 01CD408A1D071BDC0044887E /* NSError+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0132B4CE1C70E616007BC588 /* NSError+Utilities.swift */; };
46 | 01CD408F1D071C230044887E /* Codemine.h in Headers */ = {isa = PBXBuildFile; fileRef = 275BCAA21C57D1B500FF3647 /* Codemine.h */; settings = {ATTRIBUTES = (Public, ); }; };
47 | 01CD40901D071C260044887E /* Codemine.h in Headers */ = {isa = PBXBuildFile; fileRef = 275BCAA21C57D1B500FF3647 /* Codemine.h */; settings = {ATTRIBUTES = (Public, ); }; };
48 | 01CD40911D071C290044887E /* Codemine.h in Headers */ = {isa = PBXBuildFile; fileRef = 275BCAA21C57D1B500FF3647 /* Codemine.h */; settings = {ATTRIBUTES = (Public, ); }; };
49 | 275BCAA31C57D1B500FF3647 /* Codemine.h in Headers */ = {isa = PBXBuildFile; fileRef = 275BCAA21C57D1B500FF3647 /* Codemine.h */; settings = {ATTRIBUTES = (Public, ); }; };
50 | 275BCAAA1C57D1B500FF3647 /* Codemine.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 275BCA9F1C57D1B500FF3647 /* Codemine.framework */; };
51 | 275BCAAF1C57D1B500FF3647 /* CodemineTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 275BCAAE1C57D1B500FF3647 /* CodemineTests.swift */; };
52 | 291272B91C75EC1F00FB1BBD /* String+CaseConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272B81C75EC1F00FB1BBD /* String+CaseConverter.swift */; };
53 | 291272BB1C75EC2C00FB1BBD /* String+Range.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272BA1C75EC2C00FB1BBD /* String+Range.swift */; };
54 | 291272BD1C75EC3900FB1BBD /* String+EmailValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272BC1C75EC3900FB1BBD /* String+EmailValidation.swift */; };
55 | 291272C11C75ED3900FB1BBD /* UIColor+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C01C75ED3900FB1BBD /* UIColor+Hex.swift */; };
56 | 291272C31C75EDE300FB1BBD /* CGRect+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C21C75EDE300FB1BBD /* CGRect+Utilities.swift */; };
57 | 291272C51C75EE4F00FB1BBD /* CGPoint+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C41C75EE4F00FB1BBD /* CGPoint+Utilities.swift */; };
58 | 291272C91C75EE9A00FB1BBD /* NSURL+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C81C75EE9A00FB1BBD /* NSURL+Utilities.swift */; };
59 | 291272CB1C75EEB500FB1BBD /* UIImage+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272CA1C75EEB500FB1BBD /* UIImage+Utilities.swift */; };
60 | 291272CD1C75EECB00FB1BBD /* UIView+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272CC1C75EECB00FB1BBD /* UIView+Utilities.swift */; };
61 | 291272CF1C75F32200FB1BBD /* Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272CE1C75F32200FB1BBD /* Operators.swift */; };
62 | 291D23001E0425BF003E1210 /* DispatchTimeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291D22FF1E0425BF003E1210 /* DispatchTimeTests.swift */; };
63 | 293490EE1C6CAFD500E8305E /* Application.swift in Sources */ = {isa = PBXBuildFile; fileRef = 293490ED1C6CAFD500E8305E /* Application.swift */; };
64 | 293490F01C6CAFF200E8305E /* Then.swift in Sources */ = {isa = PBXBuildFile; fileRef = 293490EF1C6CAFF200E8305E /* Then.swift */; };
65 | 296831491DD5EC670002FE5A /* DispatchTime+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 296831481DD5EC670002FE5A /* DispatchTime+Utilities.swift */; };
66 | 42DDB213206A61A700A58997 /* Extensions+StringInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42DDB212206A61A700A58997 /* Extensions+StringInitializable.swift */; };
67 | 42DDB214206A61A700A58997 /* Extensions+StringInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42DDB212206A61A700A58997 /* Extensions+StringInitializable.swift */; };
68 | 42DDB215206A61A700A58997 /* Extensions+StringInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42DDB212206A61A700A58997 /* Extensions+StringInitializable.swift */; };
69 | 42DDB216206A61A700A58997 /* Extensions+StringInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42DDB212206A61A700A58997 /* Extensions+StringInitializable.swift */; };
70 | 42DDB218206A66A100A58997 /* Extention+HexInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42DDB217206A66A100A58997 /* Extention+HexInitializable.swift */; };
71 | 42DDB219206A66A100A58997 /* Extention+HexInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42DDB217206A66A100A58997 /* Extention+HexInitializable.swift */; };
72 | 42DDB21A206A66A100A58997 /* Extention+HexInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42DDB217206A66A100A58997 /* Extention+HexInitializable.swift */; };
73 | 42DDB21B206A66A100A58997 /* Extention+HexInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42DDB217206A66A100A58997 /* Extention+HexInitializable.swift */; };
74 | 42FB12132063D04900F850D1 /* URLSession+Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42FB12122063D04900F850D1 /* URLSession+Codable.swift */; };
75 | 42FB12142063D04900F850D1 /* URLSession+Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42FB12122063D04900F850D1 /* URLSession+Codable.swift */; };
76 | 42FB12152063D04900F850D1 /* URLSession+Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42FB12122063D04900F850D1 /* URLSession+Codable.swift */; };
77 | 42FB12162063D04900F850D1 /* URLSession+Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42FB12122063D04900F850D1 /* URLSession+Codable.swift */; };
78 | 838A0F971F03F57E00469143 /* String+HTML.swift in Sources */ = {isa = PBXBuildFile; fileRef = 838A0F961F03F57E00469143 /* String+HTML.swift */; };
79 | 83A5BEBC1D981F3500C74312 /* UIImageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83A5BEBB1D981F3500C74312 /* UIImageTests.swift */; };
80 | 83A5BEBE1D98216000C74312 /* UIImageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83A5BEBB1D981F3500C74312 /* UIImageTests.swift */; };
81 | 83A5BEC01D98226800C74312 /* add.png in Resources */ = {isa = PBXBuildFile; fileRef = 83A5BEBF1D98226800C74312 /* add.png */; };
82 | 83A5BEC11D98226800C74312 /* add.png in Resources */ = {isa = PBXBuildFile; fileRef = 83A5BEBF1D98226800C74312 /* add.png */; };
83 | 83A5BEC21D98226800C74312 /* add.png in Resources */ = {isa = PBXBuildFile; fileRef = 83A5BEBF1D98226800C74312 /* add.png */; };
84 | 83A5BEC41D98228300C74312 /* alert.png in Resources */ = {isa = PBXBuildFile; fileRef = 83A5BEC31D98228300C74312 /* alert.png */; };
85 | 83A5BEC51D98228300C74312 /* alert.png in Resources */ = {isa = PBXBuildFile; fileRef = 83A5BEC31D98228300C74312 /* alert.png */; };
86 | 83A5BEC61D98228300C74312 /* alert.png in Resources */ = {isa = PBXBuildFile; fileRef = 83A5BEC31D98228300C74312 /* alert.png */; };
87 | 83A5BEC91D98249500C74312 /* URLImageAssetSizeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83A5BEC81D98249500C74312 /* URLImageAssetSizeTests.swift */; };
88 | 83A5BECA1D98249500C74312 /* URLImageAssetSizeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83A5BEC81D98249500C74312 /* URLImageAssetSizeTests.swift */; };
89 | 83A5BECB1D98249500C74312 /* URLImageAssetSizeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83A5BEC81D98249500C74312 /* URLImageAssetSizeTests.swift */; };
90 | 8C1D2FCE227C79BE00B9C72C /* NSURL+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291272C81C75EE9A00FB1BBD /* NSURL+Utilities.swift */; };
91 | 8C9AAA2F1F4ED1F000F9E7C9 /* URLParameterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C9AAA2E1F4ED1F000F9E7C9 /* URLParameterTests.swift */; };
92 | 9F4A1BBE1F97AF0F00154997 /* XCTestCase+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A1BBD1F97AF0F00154997 /* XCTestCase+Utilities.swift */; };
93 | /* End PBXBuildFile section */
94 |
95 | /* Begin PBXContainerItemProxy section */
96 | 01CD402D1D071BAE0044887E /* PBXContainerItemProxy */ = {
97 | isa = PBXContainerItemProxy;
98 | containerPortal = 275BCA961C57D1B400FF3647 /* Project object */;
99 | proxyType = 1;
100 | remoteGlobalIDString = 01CD40211D071BAE0044887E;
101 | remoteInfo = "Codemine-Mac";
102 | };
103 | 01CD40491D071BB50044887E /* PBXContainerItemProxy */ = {
104 | isa = PBXContainerItemProxy;
105 | containerPortal = 275BCA961C57D1B400FF3647 /* Project object */;
106 | proxyType = 1;
107 | remoteGlobalIDString = 01CD403D1D071BB50044887E;
108 | remoteInfo = "Codemine-tvOS";
109 | };
110 | 275BCAAB1C57D1B500FF3647 /* PBXContainerItemProxy */ = {
111 | isa = PBXContainerItemProxy;
112 | containerPortal = 275BCA961C57D1B400FF3647 /* Project object */;
113 | proxyType = 1;
114 | remoteGlobalIDString = 275BCA9E1C57D1B500FF3647;
115 | remoteInfo = Codemine;
116 | };
117 | /* End PBXContainerItemProxy section */
118 |
119 | /* Begin PBXFileReference section */
120 | 0132B4CE1C70E616007BC588 /* NSError+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSError+Utilities.swift"; sourceTree = ""; };
121 | 01CD40221D071BAE0044887E /* Codemine.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Codemine.framework; sourceTree = BUILT_PRODUCTS_DIR; };
122 | 01CD402B1D071BAE0044887E /* Codemine-MacTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Codemine-MacTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
123 | 01CD403E1D071BB50044887E /* Codemine.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Codemine.framework; sourceTree = BUILT_PRODUCTS_DIR; };
124 | 01CD40471D071BB50044887E /* Codemine-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Codemine-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
125 | 01CD405A1D071BBD0044887E /* Codemine.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Codemine.framework; sourceTree = BUILT_PRODUCTS_DIR; };
126 | 275BCA9F1C57D1B500FF3647 /* Codemine.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Codemine.framework; sourceTree = BUILT_PRODUCTS_DIR; };
127 | 275BCAA21C57D1B500FF3647 /* Codemine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Codemine.h; sourceTree = ""; };
128 | 275BCAA41C57D1B500FF3647 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
129 | 275BCAA91C57D1B500FF3647 /* CodemineTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CodemineTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
130 | 275BCAAE1C57D1B500FF3647 /* CodemineTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CodemineTests.swift; sourceTree = ""; };
131 | 275BCAB01C57D1B500FF3647 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
132 | 291272B81C75EC1F00FB1BBD /* String+CaseConverter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+CaseConverter.swift"; sourceTree = ""; };
133 | 291272BA1C75EC2C00FB1BBD /* String+Range.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+Range.swift"; sourceTree = ""; };
134 | 291272BC1C75EC3900FB1BBD /* String+EmailValidation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+EmailValidation.swift"; sourceTree = ""; };
135 | 291272C01C75ED3900FB1BBD /* UIColor+Hex.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIColor+Hex.swift"; sourceTree = ""; };
136 | 291272C21C75EDE300FB1BBD /* CGRect+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CGRect+Utilities.swift"; sourceTree = ""; };
137 | 291272C41C75EE4F00FB1BBD /* CGPoint+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CGPoint+Utilities.swift"; sourceTree = ""; };
138 | 291272C81C75EE9A00FB1BBD /* NSURL+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSURL+Utilities.swift"; sourceTree = ""; };
139 | 291272CA1C75EEB500FB1BBD /* UIImage+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImage+Utilities.swift"; sourceTree = ""; };
140 | 291272CC1C75EECB00FB1BBD /* UIView+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+Utilities.swift"; sourceTree = ""; };
141 | 291272CE1C75F32200FB1BBD /* Operators.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Operators.swift; sourceTree = ""; };
142 | 291D22FF1E0425BF003E1210 /* DispatchTimeTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DispatchTimeTests.swift; sourceTree = ""; };
143 | 293490ED1C6CAFD500E8305E /* Application.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Application.swift; sourceTree = ""; };
144 | 293490EF1C6CAFF200E8305E /* Then.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Then.swift; sourceTree = ""; };
145 | 296831481DD5EC670002FE5A /* DispatchTime+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "DispatchTime+Utilities.swift"; sourceTree = ""; };
146 | 42DDB212206A61A700A58997 /* Extensions+StringInitializable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Extensions+StringInitializable.swift"; sourceTree = ""; };
147 | 42DDB217206A66A100A58997 /* Extention+HexInitializable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Extention+HexInitializable.swift"; sourceTree = ""; };
148 | 42FB12122063D04900F850D1 /* URLSession+Codable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URLSession+Codable.swift"; sourceTree = ""; };
149 | 838A0F961F03F57E00469143 /* String+HTML.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+HTML.swift"; sourceTree = ""; };
150 | 83A5BEBB1D981F3500C74312 /* UIImageTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIImageTests.swift; sourceTree = ""; };
151 | 83A5BEBF1D98226800C74312 /* add.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = add.png; sourceTree = ""; };
152 | 83A5BEC31D98228300C74312 /* alert.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = alert.png; sourceTree = ""; };
153 | 83A5BEC81D98249500C74312 /* URLImageAssetSizeTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLImageAssetSizeTests.swift; sourceTree = ""; };
154 | 8C9AAA2E1F4ED1F000F9E7C9 /* URLParameterTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLParameterTests.swift; sourceTree = ""; };
155 | 9F4A1BBD1F97AF0F00154997 /* XCTestCase+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+Utilities.swift"; sourceTree = ""; };
156 | /* End PBXFileReference section */
157 |
158 | /* Begin PBXFrameworksBuildPhase section */
159 | 01CD401E1D071BAE0044887E /* Frameworks */ = {
160 | isa = PBXFrameworksBuildPhase;
161 | buildActionMask = 2147483647;
162 | files = (
163 | );
164 | runOnlyForDeploymentPostprocessing = 0;
165 | };
166 | 01CD40281D071BAE0044887E /* Frameworks */ = {
167 | isa = PBXFrameworksBuildPhase;
168 | buildActionMask = 2147483647;
169 | files = (
170 | 01CD402C1D071BAE0044887E /* Codemine.framework in Frameworks */,
171 | );
172 | runOnlyForDeploymentPostprocessing = 0;
173 | };
174 | 01CD403A1D071BB50044887E /* Frameworks */ = {
175 | isa = PBXFrameworksBuildPhase;
176 | buildActionMask = 2147483647;
177 | files = (
178 | );
179 | runOnlyForDeploymentPostprocessing = 0;
180 | };
181 | 01CD40441D071BB50044887E /* Frameworks */ = {
182 | isa = PBXFrameworksBuildPhase;
183 | buildActionMask = 2147483647;
184 | files = (
185 | 01CD40481D071BB50044887E /* Codemine.framework in Frameworks */,
186 | );
187 | runOnlyForDeploymentPostprocessing = 0;
188 | };
189 | 01CD40561D071BBD0044887E /* Frameworks */ = {
190 | isa = PBXFrameworksBuildPhase;
191 | buildActionMask = 2147483647;
192 | files = (
193 | );
194 | runOnlyForDeploymentPostprocessing = 0;
195 | };
196 | 275BCA9B1C57D1B500FF3647 /* Frameworks */ = {
197 | isa = PBXFrameworksBuildPhase;
198 | buildActionMask = 2147483647;
199 | files = (
200 | );
201 | runOnlyForDeploymentPostprocessing = 0;
202 | };
203 | 275BCAA61C57D1B500FF3647 /* Frameworks */ = {
204 | isa = PBXFrameworksBuildPhase;
205 | buildActionMask = 2147483647;
206 | files = (
207 | 275BCAAA1C57D1B500FF3647 /* Codemine.framework in Frameworks */,
208 | );
209 | runOnlyForDeploymentPostprocessing = 0;
210 | };
211 | /* End PBXFrameworksBuildPhase section */
212 |
213 | /* Begin PBXGroup section */
214 | 275BCA951C57D1B400FF3647 = {
215 | isa = PBXGroup;
216 | children = (
217 | 275BCAA11C57D1B500FF3647 /* Codemine */,
218 | 275BCAAD1C57D1B500FF3647 /* CodemineTests */,
219 | 275BCAA01C57D1B500FF3647 /* Products */,
220 | );
221 | sourceTree = "";
222 | };
223 | 275BCAA01C57D1B500FF3647 /* Products */ = {
224 | isa = PBXGroup;
225 | children = (
226 | 275BCA9F1C57D1B500FF3647 /* Codemine.framework */,
227 | 275BCAA91C57D1B500FF3647 /* CodemineTests.xctest */,
228 | 01CD40221D071BAE0044887E /* Codemine.framework */,
229 | 01CD402B1D071BAE0044887E /* Codemine-MacTests.xctest */,
230 | 01CD403E1D071BB50044887E /* Codemine.framework */,
231 | 01CD40471D071BB50044887E /* Codemine-tvOSTests.xctest */,
232 | 01CD405A1D071BBD0044887E /* Codemine.framework */,
233 | );
234 | name = Products;
235 | sourceTree = "";
236 | };
237 | 275BCAA11C57D1B500FF3647 /* Codemine */ = {
238 | isa = PBXGroup;
239 | children = (
240 | 291272D01C75F37400FB1BBD /* Extensions */,
241 | 293490ED1C6CAFD500E8305E /* Application.swift */,
242 | 293490EF1C6CAFF200E8305E /* Then.swift */,
243 | 291272CE1C75F32200FB1BBD /* Operators.swift */,
244 | 291272D21C75F7CF00FB1BBD /* Supporting Files */,
245 | );
246 | path = Codemine;
247 | sourceTree = "";
248 | };
249 | 275BCAAD1C57D1B500FF3647 /* CodemineTests */ = {
250 | isa = PBXGroup;
251 | children = (
252 | 9F4A1BBC1F97AEE700154997 /* Extensions */,
253 | 83A5BEC71D98228F00C74312 /* Resources */,
254 | 275BCAB01C57D1B500FF3647 /* Info.plist */,
255 | 275BCAAE1C57D1B500FF3647 /* CodemineTests.swift */,
256 | 83A5BEBB1D981F3500C74312 /* UIImageTests.swift */,
257 | 83A5BEC81D98249500C74312 /* URLImageAssetSizeTests.swift */,
258 | 291D22FF1E0425BF003E1210 /* DispatchTimeTests.swift */,
259 | 8C9AAA2E1F4ED1F000F9E7C9 /* URLParameterTests.swift */,
260 | );
261 | path = CodemineTests;
262 | sourceTree = "";
263 | };
264 | 291272D01C75F37400FB1BBD /* Extensions */ = {
265 | isa = PBXGroup;
266 | children = (
267 | 291272B81C75EC1F00FB1BBD /* String+CaseConverter.swift */,
268 | 291272BA1C75EC2C00FB1BBD /* String+Range.swift */,
269 | 291272BC1C75EC3900FB1BBD /* String+EmailValidation.swift */,
270 | 291272C21C75EDE300FB1BBD /* CGRect+Utilities.swift */,
271 | 291272C41C75EE4F00FB1BBD /* CGPoint+Utilities.swift */,
272 | 0132B4CE1C70E616007BC588 /* NSError+Utilities.swift */,
273 | 291272C01C75ED3900FB1BBD /* UIColor+Hex.swift */,
274 | 291272C81C75EE9A00FB1BBD /* NSURL+Utilities.swift */,
275 | 291272CA1C75EEB500FB1BBD /* UIImage+Utilities.swift */,
276 | 291272CC1C75EECB00FB1BBD /* UIView+Utilities.swift */,
277 | 296831481DD5EC670002FE5A /* DispatchTime+Utilities.swift */,
278 | 838A0F961F03F57E00469143 /* String+HTML.swift */,
279 | 42FB12122063D04900F850D1 /* URLSession+Codable.swift */,
280 | 42DDB212206A61A700A58997 /* Extensions+StringInitializable.swift */,
281 | 42DDB217206A66A100A58997 /* Extention+HexInitializable.swift */,
282 | );
283 | path = Extensions;
284 | sourceTree = "";
285 | };
286 | 291272D21C75F7CF00FB1BBD /* Supporting Files */ = {
287 | isa = PBXGroup;
288 | children = (
289 | 275BCAA21C57D1B500FF3647 /* Codemine.h */,
290 | 275BCAA41C57D1B500FF3647 /* Info.plist */,
291 | );
292 | path = "Supporting Files";
293 | sourceTree = "";
294 | };
295 | 83A5BEC71D98228F00C74312 /* Resources */ = {
296 | isa = PBXGroup;
297 | children = (
298 | 83A5BEBF1D98226800C74312 /* add.png */,
299 | 83A5BEC31D98228300C74312 /* alert.png */,
300 | );
301 | name = Resources;
302 | sourceTree = "";
303 | };
304 | 9F4A1BBC1F97AEE700154997 /* Extensions */ = {
305 | isa = PBXGroup;
306 | children = (
307 | 9F4A1BBD1F97AF0F00154997 /* XCTestCase+Utilities.swift */,
308 | );
309 | path = Extensions;
310 | sourceTree = "";
311 | };
312 | /* End PBXGroup section */
313 |
314 | /* Begin PBXHeadersBuildPhase section */
315 | 01CD401F1D071BAE0044887E /* Headers */ = {
316 | isa = PBXHeadersBuildPhase;
317 | buildActionMask = 2147483647;
318 | files = (
319 | 01CD40911D071C290044887E /* Codemine.h in Headers */,
320 | );
321 | runOnlyForDeploymentPostprocessing = 0;
322 | };
323 | 01CD403B1D071BB50044887E /* Headers */ = {
324 | isa = PBXHeadersBuildPhase;
325 | buildActionMask = 2147483647;
326 | files = (
327 | 01CD40901D071C260044887E /* Codemine.h in Headers */,
328 | );
329 | runOnlyForDeploymentPostprocessing = 0;
330 | };
331 | 01CD40571D071BBD0044887E /* Headers */ = {
332 | isa = PBXHeadersBuildPhase;
333 | buildActionMask = 2147483647;
334 | files = (
335 | 01CD408F1D071C230044887E /* Codemine.h in Headers */,
336 | );
337 | runOnlyForDeploymentPostprocessing = 0;
338 | };
339 | 275BCA9C1C57D1B500FF3647 /* Headers */ = {
340 | isa = PBXHeadersBuildPhase;
341 | buildActionMask = 2147483647;
342 | files = (
343 | 275BCAA31C57D1B500FF3647 /* Codemine.h in Headers */,
344 | );
345 | runOnlyForDeploymentPostprocessing = 0;
346 | };
347 | /* End PBXHeadersBuildPhase section */
348 |
349 | /* Begin PBXNativeTarget section */
350 | 01CD40211D071BAE0044887E /* Codemine-Mac */ = {
351 | isa = PBXNativeTarget;
352 | buildConfigurationList = 01CD40371D071BAE0044887E /* Build configuration list for PBXNativeTarget "Codemine-Mac" */;
353 | buildPhases = (
354 | 01CD401D1D071BAE0044887E /* Sources */,
355 | 01CD401E1D071BAE0044887E /* Frameworks */,
356 | 01CD401F1D071BAE0044887E /* Headers */,
357 | 01CD40201D071BAE0044887E /* Resources */,
358 | );
359 | buildRules = (
360 | );
361 | dependencies = (
362 | );
363 | name = "Codemine-Mac";
364 | productName = "Codemine-Mac";
365 | productReference = 01CD40221D071BAE0044887E /* Codemine.framework */;
366 | productType = "com.apple.product-type.framework";
367 | };
368 | 01CD402A1D071BAE0044887E /* Codemine-MacTests */ = {
369 | isa = PBXNativeTarget;
370 | buildConfigurationList = 01CD40381D071BAE0044887E /* Build configuration list for PBXNativeTarget "Codemine-MacTests" */;
371 | buildPhases = (
372 | 01CD40271D071BAE0044887E /* Sources */,
373 | 01CD40281D071BAE0044887E /* Frameworks */,
374 | 01CD40291D071BAE0044887E /* Resources */,
375 | );
376 | buildRules = (
377 | );
378 | dependencies = (
379 | 01CD402E1D071BAE0044887E /* PBXTargetDependency */,
380 | );
381 | name = "Codemine-MacTests";
382 | productName = "Codemine-MacTests";
383 | productReference = 01CD402B1D071BAE0044887E /* Codemine-MacTests.xctest */;
384 | productType = "com.apple.product-type.bundle.unit-test";
385 | };
386 | 01CD403D1D071BB50044887E /* Codemine-tvOS */ = {
387 | isa = PBXNativeTarget;
388 | buildConfigurationList = 01CD404F1D071BB50044887E /* Build configuration list for PBXNativeTarget "Codemine-tvOS" */;
389 | buildPhases = (
390 | 01CD40391D071BB50044887E /* Sources */,
391 | 01CD403A1D071BB50044887E /* Frameworks */,
392 | 01CD403B1D071BB50044887E /* Headers */,
393 | 01CD403C1D071BB50044887E /* Resources */,
394 | );
395 | buildRules = (
396 | );
397 | dependencies = (
398 | );
399 | name = "Codemine-tvOS";
400 | productName = "Codemine-tvOS";
401 | productReference = 01CD403E1D071BB50044887E /* Codemine.framework */;
402 | productType = "com.apple.product-type.framework";
403 | };
404 | 01CD40461D071BB50044887E /* Codemine-tvOSTests */ = {
405 | isa = PBXNativeTarget;
406 | buildConfigurationList = 01CD40521D071BB50044887E /* Build configuration list for PBXNativeTarget "Codemine-tvOSTests" */;
407 | buildPhases = (
408 | 01CD40431D071BB50044887E /* Sources */,
409 | 01CD40441D071BB50044887E /* Frameworks */,
410 | 01CD40451D071BB50044887E /* Resources */,
411 | );
412 | buildRules = (
413 | );
414 | dependencies = (
415 | 01CD404A1D071BB50044887E /* PBXTargetDependency */,
416 | );
417 | name = "Codemine-tvOSTests";
418 | productName = "Codemine-tvOSTests";
419 | productReference = 01CD40471D071BB50044887E /* Codemine-tvOSTests.xctest */;
420 | productType = "com.apple.product-type.bundle.unit-test";
421 | };
422 | 01CD40591D071BBD0044887E /* Codemine-watchOS */ = {
423 | isa = PBXNativeTarget;
424 | buildConfigurationList = 01CD405F1D071BBD0044887E /* Build configuration list for PBXNativeTarget "Codemine-watchOS" */;
425 | buildPhases = (
426 | 01CD40551D071BBD0044887E /* Sources */,
427 | 01CD40561D071BBD0044887E /* Frameworks */,
428 | 01CD40571D071BBD0044887E /* Headers */,
429 | 01CD40581D071BBD0044887E /* Resources */,
430 | );
431 | buildRules = (
432 | );
433 | dependencies = (
434 | );
435 | name = "Codemine-watchOS";
436 | productName = "Codemine-watchOS";
437 | productReference = 01CD405A1D071BBD0044887E /* Codemine.framework */;
438 | productType = "com.apple.product-type.framework";
439 | };
440 | 275BCA9E1C57D1B500FF3647 /* Codemine */ = {
441 | isa = PBXNativeTarget;
442 | buildConfigurationList = 275BCAB31C57D1B500FF3647 /* Build configuration list for PBXNativeTarget "Codemine" */;
443 | buildPhases = (
444 | 275BCA9A1C57D1B500FF3647 /* Sources */,
445 | 275BCA9B1C57D1B500FF3647 /* Frameworks */,
446 | 275BCA9C1C57D1B500FF3647 /* Headers */,
447 | 275BCA9D1C57D1B500FF3647 /* Resources */,
448 | );
449 | buildRules = (
450 | );
451 | dependencies = (
452 | );
453 | name = Codemine;
454 | productName = Codemine;
455 | productReference = 275BCA9F1C57D1B500FF3647 /* Codemine.framework */;
456 | productType = "com.apple.product-type.framework";
457 | };
458 | 275BCAA81C57D1B500FF3647 /* CodemineTests */ = {
459 | isa = PBXNativeTarget;
460 | buildConfigurationList = 275BCAB61C57D1B500FF3647 /* Build configuration list for PBXNativeTarget "CodemineTests" */;
461 | buildPhases = (
462 | 275BCAA51C57D1B500FF3647 /* Sources */,
463 | 275BCAA61C57D1B500FF3647 /* Frameworks */,
464 | 275BCAA71C57D1B500FF3647 /* Resources */,
465 | );
466 | buildRules = (
467 | );
468 | dependencies = (
469 | 275BCAAC1C57D1B500FF3647 /* PBXTargetDependency */,
470 | );
471 | name = CodemineTests;
472 | productName = CodemineTests;
473 | productReference = 275BCAA91C57D1B500FF3647 /* CodemineTests.xctest */;
474 | productType = "com.apple.product-type.bundle.unit-test";
475 | };
476 | /* End PBXNativeTarget section */
477 |
478 | /* Begin PBXProject section */
479 | 275BCA961C57D1B400FF3647 /* Project object */ = {
480 | isa = PBXProject;
481 | attributes = {
482 | LastSwiftUpdateCheck = 0730;
483 | LastUpgradeCheck = 1020;
484 | ORGANIZATIONNAME = Nodes;
485 | TargetAttributes = {
486 | 01CD40211D071BAE0044887E = {
487 | CreatedOnToolsVersion = 7.3;
488 | };
489 | 01CD402A1D071BAE0044887E = {
490 | CreatedOnToolsVersion = 7.3;
491 | };
492 | 01CD403D1D071BB50044887E = {
493 | CreatedOnToolsVersion = 7.3;
494 | };
495 | 01CD40461D071BB50044887E = {
496 | CreatedOnToolsVersion = 7.3;
497 | };
498 | 01CD40591D071BBD0044887E = {
499 | CreatedOnToolsVersion = 7.3;
500 | };
501 | 275BCA9E1C57D1B500FF3647 = {
502 | CreatedOnToolsVersion = 7.2;
503 | LastSwiftMigration = 1010;
504 | };
505 | 275BCAA81C57D1B500FF3647 = {
506 | CreatedOnToolsVersion = 7.2;
507 | LastSwiftMigration = 1010;
508 | };
509 | };
510 | };
511 | buildConfigurationList = 275BCA991C57D1B400FF3647 /* Build configuration list for PBXProject "Codemine" */;
512 | compatibilityVersion = "Xcode 3.2";
513 | developmentRegion = English;
514 | hasScannedForEncodings = 0;
515 | knownRegions = (
516 | English,
517 | en,
518 | );
519 | mainGroup = 275BCA951C57D1B400FF3647;
520 | productRefGroup = 275BCAA01C57D1B500FF3647 /* Products */;
521 | projectDirPath = "";
522 | projectRoot = "";
523 | targets = (
524 | 275BCA9E1C57D1B500FF3647 /* Codemine */,
525 | 275BCAA81C57D1B500FF3647 /* CodemineTests */,
526 | 01CD40211D071BAE0044887E /* Codemine-Mac */,
527 | 01CD402A1D071BAE0044887E /* Codemine-MacTests */,
528 | 01CD403D1D071BB50044887E /* Codemine-tvOS */,
529 | 01CD40461D071BB50044887E /* Codemine-tvOSTests */,
530 | 01CD40591D071BBD0044887E /* Codemine-watchOS */,
531 | );
532 | };
533 | /* End PBXProject section */
534 |
535 | /* Begin PBXResourcesBuildPhase section */
536 | 01CD40201D071BAE0044887E /* Resources */ = {
537 | isa = PBXResourcesBuildPhase;
538 | buildActionMask = 2147483647;
539 | files = (
540 | );
541 | runOnlyForDeploymentPostprocessing = 0;
542 | };
543 | 01CD40291D071BAE0044887E /* Resources */ = {
544 | isa = PBXResourcesBuildPhase;
545 | buildActionMask = 2147483647;
546 | files = (
547 | 83A5BEC51D98228300C74312 /* alert.png in Resources */,
548 | 83A5BEC11D98226800C74312 /* add.png in Resources */,
549 | );
550 | runOnlyForDeploymentPostprocessing = 0;
551 | };
552 | 01CD403C1D071BB50044887E /* Resources */ = {
553 | isa = PBXResourcesBuildPhase;
554 | buildActionMask = 2147483647;
555 | files = (
556 | );
557 | runOnlyForDeploymentPostprocessing = 0;
558 | };
559 | 01CD40451D071BB50044887E /* Resources */ = {
560 | isa = PBXResourcesBuildPhase;
561 | buildActionMask = 2147483647;
562 | files = (
563 | 83A5BEC61D98228300C74312 /* alert.png in Resources */,
564 | 83A5BEC21D98226800C74312 /* add.png in Resources */,
565 | );
566 | runOnlyForDeploymentPostprocessing = 0;
567 | };
568 | 01CD40581D071BBD0044887E /* Resources */ = {
569 | isa = PBXResourcesBuildPhase;
570 | buildActionMask = 2147483647;
571 | files = (
572 | );
573 | runOnlyForDeploymentPostprocessing = 0;
574 | };
575 | 275BCA9D1C57D1B500FF3647 /* Resources */ = {
576 | isa = PBXResourcesBuildPhase;
577 | buildActionMask = 2147483647;
578 | files = (
579 | );
580 | runOnlyForDeploymentPostprocessing = 0;
581 | };
582 | 275BCAA71C57D1B500FF3647 /* Resources */ = {
583 | isa = PBXResourcesBuildPhase;
584 | buildActionMask = 2147483647;
585 | files = (
586 | 83A5BEC41D98228300C74312 /* alert.png in Resources */,
587 | 83A5BEC01D98226800C74312 /* add.png in Resources */,
588 | );
589 | runOnlyForDeploymentPostprocessing = 0;
590 | };
591 | /* End PBXResourcesBuildPhase section */
592 |
593 | /* Begin PBXSourcesBuildPhase section */
594 | 01CD401D1D071BAE0044887E /* Sources */ = {
595 | isa = PBXSourcesBuildPhase;
596 | buildActionMask = 2147483647;
597 | files = (
598 | 01CD40881D071BDC0044887E /* CGRect+Utilities.swift in Sources */,
599 | 42DDB214206A61A700A58997 /* Extensions+StringInitializable.swift in Sources */,
600 | 01CD40891D071BDC0044887E /* CGPoint+Utilities.swift in Sources */,
601 | 01CD40631D071BCB0044887E /* Then.swift in Sources */,
602 | 42DDB219206A66A100A58997 /* Extention+HexInitializable.swift in Sources */,
603 | 01CD40851D071BDC0044887E /* String+CaseConverter.swift in Sources */,
604 | 01CD408A1D071BDC0044887E /* NSError+Utilities.swift in Sources */,
605 | 42FB12142063D04900F850D1 /* URLSession+Codable.swift in Sources */,
606 | 01CD40651D071BCB0044887E /* Operators.swift in Sources */,
607 | 8C1D2FCE227C79BE00B9C72C /* NSURL+Utilities.swift in Sources */,
608 | 01CD40871D071BDC0044887E /* String+EmailValidation.swift in Sources */,
609 | 01CD40621D071BCB0044887E /* Application.swift in Sources */,
610 | 01CD40861D071BDC0044887E /* String+Range.swift in Sources */,
611 | );
612 | runOnlyForDeploymentPostprocessing = 0;
613 | };
614 | 01CD40271D071BAE0044887E /* Sources */ = {
615 | isa = PBXSourcesBuildPhase;
616 | buildActionMask = 2147483647;
617 | files = (
618 | 83A5BECA1D98249500C74312 /* URLImageAssetSizeTests.swift in Sources */,
619 | );
620 | runOnlyForDeploymentPostprocessing = 0;
621 | };
622 | 01CD40391D071BB50044887E /* Sources */ = {
623 | isa = PBXSourcesBuildPhase;
624 | buildActionMask = 2147483647;
625 | files = (
626 | 01CD407E1D071BDC0044887E /* CGRect+Utilities.swift in Sources */,
627 | 01CD407F1D071BDC0044887E /* CGPoint+Utilities.swift in Sources */,
628 | 01CD40831D071BDC0044887E /* UIImage+Utilities.swift in Sources */,
629 | 01CD40821D071BDC0044887E /* NSURL+Utilities.swift in Sources */,
630 | 42DDB21A206A66A100A58997 /* Extention+HexInitializable.swift in Sources */,
631 | 01CD40671D071BCC0044887E /* Then.swift in Sources */,
632 | 01CD407B1D071BDC0044887E /* String+CaseConverter.swift in Sources */,
633 | 01CD40801D071BDC0044887E /* NSError+Utilities.swift in Sources */,
634 | 01CD40841D071BDC0044887E /* UIView+Utilities.swift in Sources */,
635 | 01CD40811D071BDC0044887E /* UIColor+Hex.swift in Sources */,
636 | 01CD40691D071BCC0044887E /* Operators.swift in Sources */,
637 | 01CD407D1D071BDC0044887E /* String+EmailValidation.swift in Sources */,
638 | 01CD40661D071BCC0044887E /* Application.swift in Sources */,
639 | 01CD407C1D071BDC0044887E /* String+Range.swift in Sources */,
640 | 42DDB215206A61A700A58997 /* Extensions+StringInitializable.swift in Sources */,
641 | 42FB12152063D04900F850D1 /* URLSession+Codable.swift in Sources */,
642 | );
643 | runOnlyForDeploymentPostprocessing = 0;
644 | };
645 | 01CD40431D071BB50044887E /* Sources */ = {
646 | isa = PBXSourcesBuildPhase;
647 | buildActionMask = 2147483647;
648 | files = (
649 | 83A5BEBE1D98216000C74312 /* UIImageTests.swift in Sources */,
650 | 83A5BECB1D98249500C74312 /* URLImageAssetSizeTests.swift in Sources */,
651 | );
652 | runOnlyForDeploymentPostprocessing = 0;
653 | };
654 | 01CD40551D071BBD0044887E /* Sources */ = {
655 | isa = PBXSourcesBuildPhase;
656 | buildActionMask = 2147483647;
657 | files = (
658 | 01CD40741D071BDB0044887E /* CGRect+Utilities.swift in Sources */,
659 | 01CD40751D071BDB0044887E /* CGPoint+Utilities.swift in Sources */,
660 | 01CD40791D071BDB0044887E /* UIImage+Utilities.swift in Sources */,
661 | 42FB12162063D04900F850D1 /* URLSession+Codable.swift in Sources */,
662 | 42DDB216206A61A700A58997 /* Extensions+StringInitializable.swift in Sources */,
663 | 01CD406B1D071BCC0044887E /* Then.swift in Sources */,
664 | 42DDB21B206A66A100A58997 /* Extention+HexInitializable.swift in Sources */,
665 | 01CD40711D071BDB0044887E /* String+CaseConverter.swift in Sources */,
666 | 01CD40761D071BDB0044887E /* NSError+Utilities.swift in Sources */,
667 | 01CD40771D071BDB0044887E /* UIColor+Hex.swift in Sources */,
668 | 01CD406D1D071BCC0044887E /* Operators.swift in Sources */,
669 | 01CD40731D071BDB0044887E /* String+EmailValidation.swift in Sources */,
670 | 01CD406A1D071BCC0044887E /* Application.swift in Sources */,
671 | 01CD40721D071BDB0044887E /* String+Range.swift in Sources */,
672 | );
673 | runOnlyForDeploymentPostprocessing = 0;
674 | };
675 | 275BCA9A1C57D1B500FF3647 /* Sources */ = {
676 | isa = PBXSourcesBuildPhase;
677 | buildActionMask = 2147483647;
678 | files = (
679 | 293490EE1C6CAFD500E8305E /* Application.swift in Sources */,
680 | 291272CD1C75EECB00FB1BBD /* UIView+Utilities.swift in Sources */,
681 | 291272C51C75EE4F00FB1BBD /* CGPoint+Utilities.swift in Sources */,
682 | 291272BB1C75EC2C00FB1BBD /* String+Range.swift in Sources */,
683 | 291272C91C75EE9A00FB1BBD /* NSURL+Utilities.swift in Sources */,
684 | 296831491DD5EC670002FE5A /* DispatchTime+Utilities.swift in Sources */,
685 | 42DDB213206A61A700A58997 /* Extensions+StringInitializable.swift in Sources */,
686 | 838A0F971F03F57E00469143 /* String+HTML.swift in Sources */,
687 | 291272C31C75EDE300FB1BBD /* CGRect+Utilities.swift in Sources */,
688 | 291272CB1C75EEB500FB1BBD /* UIImage+Utilities.swift in Sources */,
689 | 291272CF1C75F32200FB1BBD /* Operators.swift in Sources */,
690 | 291272BD1C75EC3900FB1BBD /* String+EmailValidation.swift in Sources */,
691 | 291272B91C75EC1F00FB1BBD /* String+CaseConverter.swift in Sources */,
692 | 293490F01C6CAFF200E8305E /* Then.swift in Sources */,
693 | 0132B4CF1C70E616007BC588 /* NSError+Utilities.swift in Sources */,
694 | 291272C11C75ED3900FB1BBD /* UIColor+Hex.swift in Sources */,
695 | 42DDB218206A66A100A58997 /* Extention+HexInitializable.swift in Sources */,
696 | 42FB12132063D04900F850D1 /* URLSession+Codable.swift in Sources */,
697 | );
698 | runOnlyForDeploymentPostprocessing = 0;
699 | };
700 | 275BCAA51C57D1B500FF3647 /* Sources */ = {
701 | isa = PBXSourcesBuildPhase;
702 | buildActionMask = 2147483647;
703 | files = (
704 | 291D23001E0425BF003E1210 /* DispatchTimeTests.swift in Sources */,
705 | 83A5BEC91D98249500C74312 /* URLImageAssetSizeTests.swift in Sources */,
706 | 9F4A1BBE1F97AF0F00154997 /* XCTestCase+Utilities.swift in Sources */,
707 | 8C9AAA2F1F4ED1F000F9E7C9 /* URLParameterTests.swift in Sources */,
708 | 275BCAAF1C57D1B500FF3647 /* CodemineTests.swift in Sources */,
709 | 83A5BEBC1D981F3500C74312 /* UIImageTests.swift in Sources */,
710 | );
711 | runOnlyForDeploymentPostprocessing = 0;
712 | };
713 | /* End PBXSourcesBuildPhase section */
714 |
715 | /* Begin PBXTargetDependency section */
716 | 01CD402E1D071BAE0044887E /* PBXTargetDependency */ = {
717 | isa = PBXTargetDependency;
718 | target = 01CD40211D071BAE0044887E /* Codemine-Mac */;
719 | targetProxy = 01CD402D1D071BAE0044887E /* PBXContainerItemProxy */;
720 | };
721 | 01CD404A1D071BB50044887E /* PBXTargetDependency */ = {
722 | isa = PBXTargetDependency;
723 | target = 01CD403D1D071BB50044887E /* Codemine-tvOS */;
724 | targetProxy = 01CD40491D071BB50044887E /* PBXContainerItemProxy */;
725 | };
726 | 275BCAAC1C57D1B500FF3647 /* PBXTargetDependency */ = {
727 | isa = PBXTargetDependency;
728 | target = 275BCA9E1C57D1B500FF3647 /* Codemine */;
729 | targetProxy = 275BCAAB1C57D1B500FF3647 /* PBXContainerItemProxy */;
730 | };
731 | /* End PBXTargetDependency section */
732 |
733 | /* Begin XCBuildConfiguration section */
734 | 01CD40331D071BAE0044887E /* Debug */ = {
735 | isa = XCBuildConfiguration;
736 | buildSettings = {
737 | CLANG_ANALYZER_NONNULL = YES;
738 | CODE_SIGN_IDENTITY = "-";
739 | COMBINE_HIDPI_IMAGES = YES;
740 | DEFINES_MODULE = YES;
741 | DYLIB_COMPATIBILITY_VERSION = 1;
742 | DYLIB_CURRENT_VERSION = 1;
743 | DYLIB_INSTALL_NAME_BASE = "@rpath";
744 | FRAMEWORK_VERSION = A;
745 | INFOPLIST_FILE = "$(SRCROOT)/Codemine/Supporting Files/Info.plist";
746 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
747 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
748 | MACOSX_DEPLOYMENT_TARGET = 10.10;
749 | PRODUCT_BUNDLE_IDENTIFIER = "com.nodes.Codemine-Mac";
750 | PRODUCT_NAME = Codemine;
751 | SDKROOT = macosx;
752 | SKIP_INSTALL = YES;
753 | SWIFT_VERSION = 4.2;
754 | };
755 | name = Debug;
756 | };
757 | 01CD40341D071BAE0044887E /* Release */ = {
758 | isa = XCBuildConfiguration;
759 | buildSettings = {
760 | CLANG_ANALYZER_NONNULL = YES;
761 | CODE_SIGN_IDENTITY = "-";
762 | COMBINE_HIDPI_IMAGES = YES;
763 | DEFINES_MODULE = YES;
764 | DYLIB_COMPATIBILITY_VERSION = 1;
765 | DYLIB_CURRENT_VERSION = 1;
766 | DYLIB_INSTALL_NAME_BASE = "@rpath";
767 | FRAMEWORK_VERSION = A;
768 | INFOPLIST_FILE = "$(SRCROOT)/Codemine/Supporting Files/Info.plist";
769 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
770 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
771 | MACOSX_DEPLOYMENT_TARGET = 10.10;
772 | PRODUCT_BUNDLE_IDENTIFIER = "com.nodes.Codemine-Mac";
773 | PRODUCT_NAME = Codemine;
774 | SDKROOT = macosx;
775 | SKIP_INSTALL = YES;
776 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
777 | SWIFT_VERSION = 4.2;
778 | };
779 | name = Release;
780 | };
781 | 01CD40351D071BAE0044887E /* Debug */ = {
782 | isa = XCBuildConfiguration;
783 | buildSettings = {
784 | CLANG_ANALYZER_NONNULL = YES;
785 | CODE_SIGN_IDENTITY = "-";
786 | COMBINE_HIDPI_IMAGES = YES;
787 | INFOPLIST_FILE = CodemineTests/Info.plist;
788 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
789 | MACOSX_DEPLOYMENT_TARGET = 10.11;
790 | PRODUCT_BUNDLE_IDENTIFIER = "com.nodes.Codemine-MacTests";
791 | PRODUCT_NAME = "$(TARGET_NAME)";
792 | SDKROOT = macosx;
793 | SWIFT_VERSION = 4.2;
794 | };
795 | name = Debug;
796 | };
797 | 01CD40361D071BAE0044887E /* Release */ = {
798 | isa = XCBuildConfiguration;
799 | buildSettings = {
800 | CLANG_ANALYZER_NONNULL = YES;
801 | CODE_SIGN_IDENTITY = "-";
802 | COMBINE_HIDPI_IMAGES = YES;
803 | INFOPLIST_FILE = CodemineTests/Info.plist;
804 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
805 | MACOSX_DEPLOYMENT_TARGET = 10.11;
806 | PRODUCT_BUNDLE_IDENTIFIER = "com.nodes.Codemine-MacTests";
807 | PRODUCT_NAME = "$(TARGET_NAME)";
808 | SDKROOT = macosx;
809 | SWIFT_VERSION = 4.2;
810 | };
811 | name = Release;
812 | };
813 | 01CD40501D071BB50044887E /* Debug */ = {
814 | isa = XCBuildConfiguration;
815 | buildSettings = {
816 | CLANG_ANALYZER_NONNULL = YES;
817 | CODE_SIGN_IDENTITY = "";
818 | DEFINES_MODULE = YES;
819 | DYLIB_COMPATIBILITY_VERSION = 1;
820 | DYLIB_CURRENT_VERSION = 1;
821 | DYLIB_INSTALL_NAME_BASE = "@rpath";
822 | INFOPLIST_FILE = "$(SRCROOT)/Codemine/Supporting Files/Info.plist";
823 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
824 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
825 | PRODUCT_BUNDLE_IDENTIFIER = "com.nodes.Codemine-tvOS";
826 | PRODUCT_NAME = Codemine;
827 | SDKROOT = appletvos;
828 | SKIP_INSTALL = YES;
829 | SWIFT_VERSION = 4.2;
830 | TARGETED_DEVICE_FAMILY = 3;
831 | TVOS_DEPLOYMENT_TARGET = 9.0;
832 | };
833 | name = Debug;
834 | };
835 | 01CD40511D071BB50044887E /* Release */ = {
836 | isa = XCBuildConfiguration;
837 | buildSettings = {
838 | CLANG_ANALYZER_NONNULL = YES;
839 | CODE_SIGN_IDENTITY = "";
840 | DEFINES_MODULE = YES;
841 | DYLIB_COMPATIBILITY_VERSION = 1;
842 | DYLIB_CURRENT_VERSION = 1;
843 | DYLIB_INSTALL_NAME_BASE = "@rpath";
844 | INFOPLIST_FILE = "$(SRCROOT)/Codemine/Supporting Files/Info.plist";
845 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
846 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
847 | PRODUCT_BUNDLE_IDENTIFIER = "com.nodes.Codemine-tvOS";
848 | PRODUCT_NAME = Codemine;
849 | SDKROOT = appletvos;
850 | SKIP_INSTALL = YES;
851 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
852 | SWIFT_VERSION = 4.2;
853 | TARGETED_DEVICE_FAMILY = 3;
854 | TVOS_DEPLOYMENT_TARGET = 9.0;
855 | };
856 | name = Release;
857 | };
858 | 01CD40531D071BB50044887E /* Debug */ = {
859 | isa = XCBuildConfiguration;
860 | buildSettings = {
861 | CLANG_ANALYZER_NONNULL = YES;
862 | INFOPLIST_FILE = CodemineTests/Info.plist;
863 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
864 | PRODUCT_BUNDLE_IDENTIFIER = "com.nodes.Codemine-tvOSTests";
865 | PRODUCT_NAME = "$(TARGET_NAME)";
866 | SDKROOT = appletvos;
867 | SWIFT_VERSION = 4.2;
868 | TVOS_DEPLOYMENT_TARGET = 9.2;
869 | };
870 | name = Debug;
871 | };
872 | 01CD40541D071BB50044887E /* Release */ = {
873 | isa = XCBuildConfiguration;
874 | buildSettings = {
875 | CLANG_ANALYZER_NONNULL = YES;
876 | INFOPLIST_FILE = CodemineTests/Info.plist;
877 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
878 | PRODUCT_BUNDLE_IDENTIFIER = "com.nodes.Codemine-tvOSTests";
879 | PRODUCT_NAME = "$(TARGET_NAME)";
880 | SDKROOT = appletvos;
881 | SWIFT_VERSION = 4.2;
882 | TVOS_DEPLOYMENT_TARGET = 9.2;
883 | };
884 | name = Release;
885 | };
886 | 01CD40601D071BBD0044887E /* Debug */ = {
887 | isa = XCBuildConfiguration;
888 | buildSettings = {
889 | APPLICATION_EXTENSION_API_ONLY = YES;
890 | CLANG_ANALYZER_NONNULL = YES;
891 | CODE_SIGN_IDENTITY = "";
892 | DEFINES_MODULE = YES;
893 | DYLIB_COMPATIBILITY_VERSION = 1;
894 | DYLIB_CURRENT_VERSION = 1;
895 | DYLIB_INSTALL_NAME_BASE = "@rpath";
896 | INFOPLIST_FILE = "$(SRCROOT)/Codemine/Supporting Files/Info.plist";
897 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
898 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
899 | PRODUCT_BUNDLE_IDENTIFIER = "com.nodes.Codemine-watchOS";
900 | PRODUCT_NAME = Codemine;
901 | SDKROOT = watchos;
902 | SKIP_INSTALL = YES;
903 | SWIFT_VERSION = 4.2;
904 | TARGETED_DEVICE_FAMILY = 4;
905 | WATCHOS_DEPLOYMENT_TARGET = 2.0;
906 | };
907 | name = Debug;
908 | };
909 | 01CD40611D071BBD0044887E /* Release */ = {
910 | isa = XCBuildConfiguration;
911 | buildSettings = {
912 | APPLICATION_EXTENSION_API_ONLY = YES;
913 | CLANG_ANALYZER_NONNULL = YES;
914 | CODE_SIGN_IDENTITY = "";
915 | DEFINES_MODULE = YES;
916 | DYLIB_COMPATIBILITY_VERSION = 1;
917 | DYLIB_CURRENT_VERSION = 1;
918 | DYLIB_INSTALL_NAME_BASE = "@rpath";
919 | INFOPLIST_FILE = "$(SRCROOT)/Codemine/Supporting Files/Info.plist";
920 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
921 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
922 | PRODUCT_BUNDLE_IDENTIFIER = "com.nodes.Codemine-watchOS";
923 | PRODUCT_NAME = Codemine;
924 | SDKROOT = watchos;
925 | SKIP_INSTALL = YES;
926 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
927 | SWIFT_VERSION = 4.2;
928 | TARGETED_DEVICE_FAMILY = 4;
929 | WATCHOS_DEPLOYMENT_TARGET = 2.0;
930 | };
931 | name = Release;
932 | };
933 | 275BCAB11C57D1B500FF3647 /* Debug */ = {
934 | isa = XCBuildConfiguration;
935 | buildSettings = {
936 | ALWAYS_SEARCH_USER_PATHS = NO;
937 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
938 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
939 | CLANG_CXX_LIBRARY = "libc++";
940 | CLANG_ENABLE_MODULES = YES;
941 | CLANG_ENABLE_OBJC_ARC = YES;
942 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
943 | CLANG_WARN_BOOL_CONVERSION = YES;
944 | CLANG_WARN_COMMA = YES;
945 | CLANG_WARN_CONSTANT_CONVERSION = YES;
946 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
947 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
948 | CLANG_WARN_EMPTY_BODY = YES;
949 | CLANG_WARN_ENUM_CONVERSION = YES;
950 | CLANG_WARN_INFINITE_RECURSION = YES;
951 | CLANG_WARN_INT_CONVERSION = YES;
952 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
953 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
954 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
955 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
956 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
957 | CLANG_WARN_STRICT_PROTOTYPES = YES;
958 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
959 | CLANG_WARN_UNREACHABLE_CODE = YES;
960 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
961 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
962 | COPY_PHASE_STRIP = NO;
963 | CURRENT_PROJECT_VERSION = 1;
964 | DEBUG_INFORMATION_FORMAT = dwarf;
965 | ENABLE_STRICT_OBJC_MSGSEND = YES;
966 | ENABLE_TESTABILITY = YES;
967 | GCC_C_LANGUAGE_STANDARD = gnu99;
968 | GCC_DYNAMIC_NO_PIC = NO;
969 | GCC_NO_COMMON_BLOCKS = YES;
970 | GCC_OPTIMIZATION_LEVEL = 0;
971 | GCC_PREPROCESSOR_DEFINITIONS = (
972 | "DEBUG=1",
973 | "$(inherited)",
974 | );
975 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
976 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
977 | GCC_WARN_UNDECLARED_SELECTOR = YES;
978 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
979 | GCC_WARN_UNUSED_FUNCTION = YES;
980 | GCC_WARN_UNUSED_VARIABLE = YES;
981 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
982 | MACOSX_DEPLOYMENT_TARGET = 10.10;
983 | MTL_ENABLE_DEBUG_INFO = YES;
984 | ONLY_ACTIVE_ARCH = YES;
985 | SDKROOT = iphoneos;
986 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
987 | TARGETED_DEVICE_FAMILY = "1,2";
988 | VERSIONING_SYSTEM = "apple-generic";
989 | VERSION_INFO_PREFIX = "";
990 | };
991 | name = Debug;
992 | };
993 | 275BCAB21C57D1B500FF3647 /* Release */ = {
994 | isa = XCBuildConfiguration;
995 | buildSettings = {
996 | ALWAYS_SEARCH_USER_PATHS = NO;
997 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
998 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
999 | CLANG_CXX_LIBRARY = "libc++";
1000 | CLANG_ENABLE_MODULES = YES;
1001 | CLANG_ENABLE_OBJC_ARC = YES;
1002 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
1003 | CLANG_WARN_BOOL_CONVERSION = YES;
1004 | CLANG_WARN_COMMA = YES;
1005 | CLANG_WARN_CONSTANT_CONVERSION = YES;
1006 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
1007 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
1008 | CLANG_WARN_EMPTY_BODY = YES;
1009 | CLANG_WARN_ENUM_CONVERSION = YES;
1010 | CLANG_WARN_INFINITE_RECURSION = YES;
1011 | CLANG_WARN_INT_CONVERSION = YES;
1012 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
1013 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
1014 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
1015 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
1016 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
1017 | CLANG_WARN_STRICT_PROTOTYPES = YES;
1018 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
1019 | CLANG_WARN_UNREACHABLE_CODE = YES;
1020 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
1021 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
1022 | COPY_PHASE_STRIP = NO;
1023 | CURRENT_PROJECT_VERSION = 1;
1024 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1025 | ENABLE_NS_ASSERTIONS = NO;
1026 | ENABLE_STRICT_OBJC_MSGSEND = YES;
1027 | GCC_C_LANGUAGE_STANDARD = gnu99;
1028 | GCC_NO_COMMON_BLOCKS = YES;
1029 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
1030 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
1031 | GCC_WARN_UNDECLARED_SELECTOR = YES;
1032 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
1033 | GCC_WARN_UNUSED_FUNCTION = YES;
1034 | GCC_WARN_UNUSED_VARIABLE = YES;
1035 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
1036 | MACOSX_DEPLOYMENT_TARGET = 10.10;
1037 | MTL_ENABLE_DEBUG_INFO = NO;
1038 | SDKROOT = iphoneos;
1039 | SWIFT_COMPILATION_MODE = wholemodule;
1040 | TARGETED_DEVICE_FAMILY = "1,2";
1041 | VALIDATE_PRODUCT = YES;
1042 | VERSIONING_SYSTEM = "apple-generic";
1043 | VERSION_INFO_PREFIX = "";
1044 | };
1045 | name = Release;
1046 | };
1047 | 275BCAB41C57D1B500FF3647 /* Debug */ = {
1048 | isa = XCBuildConfiguration;
1049 | buildSettings = {
1050 | APPLICATION_EXTENSION_API_ONLY = YES;
1051 | CLANG_ENABLE_MODULES = YES;
1052 | CODE_SIGN_IDENTITY = "";
1053 | DEFINES_MODULE = YES;
1054 | DYLIB_COMPATIBILITY_VERSION = 1;
1055 | DYLIB_CURRENT_VERSION = 1;
1056 | DYLIB_INSTALL_NAME_BASE = "@rpath";
1057 | INFOPLIST_FILE = "Codemine/Supporting Files/Info.plist";
1058 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1059 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1060 | PRODUCT_BUNDLE_IDENTIFIER = com.nodes.Codemine;
1061 | PRODUCT_NAME = "$(TARGET_NAME)";
1062 | SKIP_INSTALL = YES;
1063 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
1064 | SWIFT_SWIFT3_OBJC_INFERENCE = Default;
1065 | SWIFT_VERSION = 4.2;
1066 | };
1067 | name = Debug;
1068 | };
1069 | 275BCAB51C57D1B500FF3647 /* Release */ = {
1070 | isa = XCBuildConfiguration;
1071 | buildSettings = {
1072 | APPLICATION_EXTENSION_API_ONLY = YES;
1073 | CLANG_ENABLE_MODULES = YES;
1074 | CODE_SIGN_IDENTITY = "";
1075 | DEFINES_MODULE = YES;
1076 | DYLIB_COMPATIBILITY_VERSION = 1;
1077 | DYLIB_CURRENT_VERSION = 1;
1078 | DYLIB_INSTALL_NAME_BASE = "@rpath";
1079 | INFOPLIST_FILE = "Codemine/Supporting Files/Info.plist";
1080 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1081 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1082 | PRODUCT_BUNDLE_IDENTIFIER = com.nodes.Codemine;
1083 | PRODUCT_NAME = "$(TARGET_NAME)";
1084 | SKIP_INSTALL = YES;
1085 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
1086 | SWIFT_SWIFT3_OBJC_INFERENCE = Default;
1087 | SWIFT_VERSION = 4.2;
1088 | };
1089 | name = Release;
1090 | };
1091 | 275BCAB71C57D1B500FF3647 /* Debug */ = {
1092 | isa = XCBuildConfiguration;
1093 | buildSettings = {
1094 | INFOPLIST_FILE = CodemineTests/Info.plist;
1095 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1096 | PRODUCT_BUNDLE_IDENTIFIER = com.nodes.CodemineTests;
1097 | PRODUCT_NAME = "$(TARGET_NAME)";
1098 | SWIFT_SWIFT3_OBJC_INFERENCE = Default;
1099 | SWIFT_VERSION = 4.2;
1100 | };
1101 | name = Debug;
1102 | };
1103 | 275BCAB81C57D1B500FF3647 /* Release */ = {
1104 | isa = XCBuildConfiguration;
1105 | buildSettings = {
1106 | INFOPLIST_FILE = CodemineTests/Info.plist;
1107 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1108 | PRODUCT_BUNDLE_IDENTIFIER = com.nodes.CodemineTests;
1109 | PRODUCT_NAME = "$(TARGET_NAME)";
1110 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
1111 | SWIFT_SWIFT3_OBJC_INFERENCE = Default;
1112 | SWIFT_VERSION = 4.2;
1113 | };
1114 | name = Release;
1115 | };
1116 | /* End XCBuildConfiguration section */
1117 |
1118 | /* Begin XCConfigurationList section */
1119 | 01CD40371D071BAE0044887E /* Build configuration list for PBXNativeTarget "Codemine-Mac" */ = {
1120 | isa = XCConfigurationList;
1121 | buildConfigurations = (
1122 | 01CD40331D071BAE0044887E /* Debug */,
1123 | 01CD40341D071BAE0044887E /* Release */,
1124 | );
1125 | defaultConfigurationIsVisible = 0;
1126 | defaultConfigurationName = Release;
1127 | };
1128 | 01CD40381D071BAE0044887E /* Build configuration list for PBXNativeTarget "Codemine-MacTests" */ = {
1129 | isa = XCConfigurationList;
1130 | buildConfigurations = (
1131 | 01CD40351D071BAE0044887E /* Debug */,
1132 | 01CD40361D071BAE0044887E /* Release */,
1133 | );
1134 | defaultConfigurationIsVisible = 0;
1135 | defaultConfigurationName = Release;
1136 | };
1137 | 01CD404F1D071BB50044887E /* Build configuration list for PBXNativeTarget "Codemine-tvOS" */ = {
1138 | isa = XCConfigurationList;
1139 | buildConfigurations = (
1140 | 01CD40501D071BB50044887E /* Debug */,
1141 | 01CD40511D071BB50044887E /* Release */,
1142 | );
1143 | defaultConfigurationIsVisible = 0;
1144 | defaultConfigurationName = Release;
1145 | };
1146 | 01CD40521D071BB50044887E /* Build configuration list for PBXNativeTarget "Codemine-tvOSTests" */ = {
1147 | isa = XCConfigurationList;
1148 | buildConfigurations = (
1149 | 01CD40531D071BB50044887E /* Debug */,
1150 | 01CD40541D071BB50044887E /* Release */,
1151 | );
1152 | defaultConfigurationIsVisible = 0;
1153 | defaultConfigurationName = Release;
1154 | };
1155 | 01CD405F1D071BBD0044887E /* Build configuration list for PBXNativeTarget "Codemine-watchOS" */ = {
1156 | isa = XCConfigurationList;
1157 | buildConfigurations = (
1158 | 01CD40601D071BBD0044887E /* Debug */,
1159 | 01CD40611D071BBD0044887E /* Release */,
1160 | );
1161 | defaultConfigurationIsVisible = 0;
1162 | defaultConfigurationName = Release;
1163 | };
1164 | 275BCA991C57D1B400FF3647 /* Build configuration list for PBXProject "Codemine" */ = {
1165 | isa = XCConfigurationList;
1166 | buildConfigurations = (
1167 | 275BCAB11C57D1B500FF3647 /* Debug */,
1168 | 275BCAB21C57D1B500FF3647 /* Release */,
1169 | );
1170 | defaultConfigurationIsVisible = 0;
1171 | defaultConfigurationName = Release;
1172 | };
1173 | 275BCAB31C57D1B500FF3647 /* Build configuration list for PBXNativeTarget "Codemine" */ = {
1174 | isa = XCConfigurationList;
1175 | buildConfigurations = (
1176 | 275BCAB41C57D1B500FF3647 /* Debug */,
1177 | 275BCAB51C57D1B500FF3647 /* Release */,
1178 | );
1179 | defaultConfigurationIsVisible = 0;
1180 | defaultConfigurationName = Release;
1181 | };
1182 | 275BCAB61C57D1B500FF3647 /* Build configuration list for PBXNativeTarget "CodemineTests" */ = {
1183 | isa = XCConfigurationList;
1184 | buildConfigurations = (
1185 | 275BCAB71C57D1B500FF3647 /* Debug */,
1186 | 275BCAB81C57D1B500FF3647 /* Release */,
1187 | );
1188 | defaultConfigurationIsVisible = 0;
1189 | defaultConfigurationName = Release;
1190 | };
1191 | /* End XCConfigurationList section */
1192 | };
1193 | rootObject = 275BCA961C57D1B400FF3647 /* Project object */;
1194 | }
1195 |
--------------------------------------------------------------------------------