├── .gitignore ├── .swift-version ├── CHANGELOG.md ├── Example ├── Assets.xcassets │ └── Contents.json ├── First.storyboard ├── Generated.swift └── Second.storyboard ├── LICENSE.md ├── Package.resolved ├── Package.swift ├── README.md ├── Resources ├── Assets0.3.0.png ├── Gif-Collecting-Colors0.5.0.gif ├── Gif-Custom-Color0.5.0.gif ├── Gif-Renaming0.5.0.gif ├── Gif-Swift0.5.0.gif ├── Storyboard0.3.0.png ├── Swift0.3.0.png └── Video-thumbnail0.4.0.png ├── Sources └── SwiftColorGen │ └── main.swift ├── SwiftColorGen.podspec └── SwiftColorGen.xcodeproj ├── AEXML_Info.plist ├── CommandLine_Info.plist ├── SwiftColorGenLibrary_Info.plist ├── SwiftColorGen_Library_Info.plist ├── project.pbxproj ├── project.xcworkspace └── contents.xcworkspacedata └── xcshareddata └── xcschemes └── xcschememanagement.plist /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xccheckout 23 | *.xcscmblueprint 24 | 25 | ## Obj-C/Swift specific 26 | *.hmap 27 | *.ipa 28 | *.dSYM.zip 29 | *.dSYM 30 | 31 | ## Playgrounds 32 | timeline.xctimeline 33 | playground.xcworkspace 34 | 35 | # Swift Package Manager 36 | # 37 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 38 | # Packages/ 39 | # Package.pins 40 | # Package.resolved 41 | .build/ 42 | 43 | # CocoaPods 44 | # 45 | # We recommend against adding the Pods directory to your .gitignore. However 46 | # you should judge for yourself, the pros and cons are mentioned at: 47 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 48 | # 49 | # Pods/ 50 | 51 | # Carthage 52 | # 53 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 54 | # Carthage/Checkouts 55 | 56 | Carthage/Build 57 | 58 | # fastlane 59 | # 60 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 61 | # screenshots whenever they are needed. 62 | # For more information about the recommended setup visit: 63 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 64 | 65 | fastlane/report.xml 66 | fastlane/Preview.html 67 | fastlane/screenshots 68 | fastlane/test_output 69 | 70 | .DS_Store 71 | -------------------------------------------------------------------------------- /.swift-version: -------------------------------------------------------------------------------- 1 | 4.0 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## [0.6.1](https://github.com/fernandodelrio/SwiftColorGen/releases/tag/0.6.1) 4 | 5 | ### Fixed 6 | - Updated SwiftColorGenLibrary to 0.6.1. [#3](https://github.com/fernandodelrio/SwiftColorGenLibrary/issues/3) was fixed. 7 | 8 | ## [0.6.0](https://github.com/fernandodelrio/SwiftColorGen/releases/tag/0.6.0) 9 | 10 | ### Updated 11 | - Updated whole project structure to use Swift Package Manager (#8) 12 | - Moved the [SwiftColorGen](https://github.com/fernandodelrio/SwiftColorGenLibrary) core to a separate repo 13 | - Now using [AEXML](https://github.com/tadija/AEXML) and [CommandLine](https://github.com/jatoben/CommandLine) as dependencies in the new repo, improving the maintainability 14 | 15 | ## [0.5.1](https://github.com/fernandodelrio/SwiftColorGen/releases/tag/0.5.1) 16 | 17 | ### Updated 18 | - Based on the sugestion #12, generating the colors as computed properties, instead of a class function 19 | 20 | ## [0.5.0](https://github.com/fernandodelrio/SwiftColorGen/releases/tag/0.5.0) 21 | 22 | ### Added 23 | - Adding support for multiple color spaces (now you don't need to select only the sRGB color space to work with the generator) 24 | 25 | ## [0.4.1](https://github.com/fernandodelrio/SwiftColorGen/releases/tag/0.4.1) 26 | 27 | ### Fixed 28 | - Fixed #1 (Invalid color functions generated) 29 | 30 | ## [0.4.0](https://github.com/fernandodelrio/SwiftColorGen/releases/tag/0.4.0) 31 | 32 | ### Added 33 | - Allowing re-runs of the tool in the same code 34 | - Adding support for custom colors defined for the user 35 | 36 | ## [0.3.3](https://github.com/fernandodelrio/SwiftColorGen/releases/tag/0.3.3) 37 | 38 | ### Fixed 39 | - Fixed the output file not including the import to UIKit 40 | 41 | ## [0.3.1](https://github.com/fernandodelrio/SwiftColorGen/releases/tag/0.3.1) 42 | 43 | ### Added 44 | - Added CocoaPods support 45 | 46 | ## [0.3.0](https://github.com/fernandodelrio/SwiftColorGen/releases/tag/0.3.0) 47 | 48 | ### Updated 49 | - Improved existing CLI interface: 50 | - Cleaner input 51 | - Making some parameters, optional 52 | - Reworked naming convention in the generated Swift file 53 | 54 | ## [0.2.0](https://github.com/fernandodelrio/SwiftColorGen/releases/tag/0.2.0) 55 | 56 | ### Updated 57 | - Update name generation, supporting web color names: https://en.wikipedia.org/wiki/Web_colors 58 | 59 | 60 | ## [0.1.0](https://github.com/fernandodelrio/SwiftColorGen/releases/tag/0.1.0) 61 | 62 | First release of the tool, featuring: 63 | 64 | - Swift Code and Asset generation 65 | - RGBA hex color name generation 66 | - Support for sRGB color space 67 | -------------------------------------------------------------------------------- /Example/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Example/First.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 26 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /Example/Generated.swift: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Example/Second.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Fernando del Rio 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "object": { 3 | "pins": [ 4 | { 5 | "package": "AEXML", 6 | "repositoryURL": "https://github.com/tadija/AEXML.git", 7 | "state": { 8 | "branch": null, 9 | "revision": "09f27784d9e328670ef0a181c832cce497117131", 10 | "version": "4.2.2" 11 | } 12 | }, 13 | { 14 | "package": "CommandLine", 15 | "repositoryURL": "https://github.com/silt-lang/CommandLine", 16 | "state": { 17 | "branch": null, 18 | "revision": "5bdfea60048a932091daa07b797938dce35e4cf0", 19 | "version": "4.0.0" 20 | } 21 | }, 22 | { 23 | "package": "SwiftColorGenLibrary", 24 | "repositoryURL": "https://github.com/fernandodelrio/SwiftColorGenLibrary.git", 25 | "state": { 26 | "branch": null, 27 | "revision": "f70e8688c36c7605e8292c5d21676f5239ce856c", 28 | "version": "0.6.1" 29 | } 30 | } 31 | ] 32 | }, 33 | "version": 1 34 | } 35 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:4.0 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "SwiftColorGen", 8 | dependencies: [ 9 | // Dependencies declare other packages that this package depends on. 10 | // .package(url: /* package url */, from: "1.0.0"), 11 | .package(url: "https://github.com/fernandodelrio/SwiftColorGenLibrary.git", from: "0.6.1"), 12 | ], 13 | targets: [ 14 | // Targets are the basic building blocks of a package. A target can define a module or a test suite. 15 | // Targets can depend on other targets in this package, and on products in packages which this package depends on. 16 | .target( 17 | name: "SwiftColorGen", 18 | dependencies: ["SwiftColorGenLibrary"]), 19 | ] 20 | ) 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SwiftColorGen 2 | ![Swift 4.0](https://img.shields.io/badge/Swift-4.0-green.svg) 3 | [![CocoaPods compatible](https://img.shields.io/cocoapods/v/SwiftColorGen.svg)](#cocoapods) 4 | [![License](http://img.shields.io/:license-mit-blue.svg)](http://doge.mit-license.org) 5 | 6 | A tool that generate code for Swift projects, designed to improve the maintainability of UIColors. 7 | 8 | Please notice, this tool still under development. It's on a validation phase, where I'll test it integrated with existing iOS projects to see how useful it is. Feedbacks are appreciated. 9 | Also notice this tool not only generates new code, but also updates existing storyboard files, so **keep your code under versioning control to avoid any data loss!** 10 | 11 | # Table of contents 12 | * [Motivation](#motivation) 13 | * [The solution](#solution) 14 | * [Demo](#demo) 15 | * [Using the CLI](#cli) 16 | * [Installation (CocoaPods)](#installation) 17 | * [Contributing](#contributing) 18 | * [License](#license) 19 | 20 | # Motivation 21 | 22 | Manage colors in iOS projects can be challenging. It would be useful to reuse colors in different places in the storyboard and also access them programmatically. In code, you can group the colors in one place, but it's common to have the same color redefined in many places in the storyboards. When you need to update a color, you need to remember to replace them everywhere and because of that, it becomes hard to maintain. 23 | 24 | Since Xcode 9, we are able to define a color asset in the Assets catalog, allowing us to reuse a color inside the storyboards and access them programmatically. Though, this still isn't perfect: 25 | 1. To access the colors programmatically, we use a string with the Asset name. If we rename the Asset, we need to remember to replace the strings referring the old asset 26 | 2. If we rename an Asset, we also need to manually replace the references to them in the storyboards 27 | 3. In an existing project with no color assets defined, we need to group all the colors in the storyboards, manually create the asset colors and replace them everywhere. 28 | # The solution 29 | 30 | **SwiftColorGen** reads all storyboard files to find common colors, it creates them in a **.xcassets** folder (without any duplications) and refer them back in the storyboard. Then, it creates an **UIColor extension** allowing to access the same colors programmatically. It automatically puts a name to the colors found. The name will be the closest webcolor name, measuring the color distance between them. But, the user still can rename the colors and it will keep the storyboards updated. 31 | 32 | The rules for naming the colors dinamically: 33 | - The closest web color name (https://en.wikipedia.org/wiki/Web_colors) is considered to name the color 34 | - If the alpha value is less than 255, an "alpha suffix" will be appended to the color name, to avoid name collision 35 | - If two RGB's are close to the same web color, the name still will be used if they have different alphas 36 | - If two RGB's are close to the same web color and they also have the same alpha, the hex of the RGB will be used to avoid name collision 37 | 38 | SwiftColorGen is written in Swift and requires Swift to run. These are the dependencies: 39 | - [AEXML](https://github.com/tadija/AEXML) (to read and write XML) 40 | - [CommandLine](https://github.com/jatoben/CommandLine) (to provide the command line interface) 41 | - [SwiftColorGenLibrary](https://github.com/fernandodelrio/SwiftColorGenLibrary) (the core of the tool, placed in a separated repo) 42 | 43 | # Demo 44 | That's the result of the code generation: 45 | 46 | ### Collecting the colors on Storyboard and generating the Assets 47 | ![Collecting Colors](https://github.com/fernandodelrio/SwiftColorGen/blob/master/Resources/Gif-Collecting-Colors0.5.0.gif) 48 | 49 | ### Generating the Swift file 50 | ![Swift File](https://github.com/fernandodelrio/SwiftColorGen/blob/master/Resources/Gif-Swift0.5.0.gif) 51 | 52 | ### Automatic renaming 53 | ![Automatic Renaming](https://github.com/fernandodelrio/SwiftColorGen/blob/master/Resources/Gif-Renaming0.5.0.gif) 54 | 55 | ### Custom colors + multiple replace 56 | ![Custom Colors](https://github.com/fernandodelrio/SwiftColorGen/blob/master/Resources/Gif-Custom-Color0.5.0.gif) 57 | 58 | ### Code generated 59 | The tool should generate something like: 60 | 61 | ```swift 62 | // Don't change. Auto generated file. SwiftColorGen 63 | import UIKit 64 | 65 | extension UIColor { 66 | /// Color #FFC034 (alpha 255) 67 | static var goldColor: UIColor { 68 | return UIColor(named: "Gold") ?? .clear 69 | } 70 | 71 | /// Color #8D00FF (alpha 255) 72 | static var darkVioletColor: UIColor { 73 | return UIColor(named: "DarkViolet") ?? .clear 74 | } 75 | 76 | /// Color #00FF00 (alpha 255) 77 | static var myCoolGreen: UIColor { 78 | return UIColor(named: "MyCoolGreen") ?? .clear 79 | } 80 | } 81 | 82 | ``` 83 | 84 | You will probably want to rename the color and run the tool again, but you can just create another extension on another file referring the generated code: 85 | 86 | ```swift 87 | extension UIColor { 88 | static var myTextColor: UIColor { 89 | return .darkVioletColor 90 | } 91 | } 92 | ``` 93 | 94 | Here a complete video with the tool in action: 95 | 96 | [![Demo](https://raw.githubusercontent.com/fernandodelrio/SwiftColorGen/master/Resources/Video-thumbnail0.4.0.png)](https://vimeo.com/244528270) 97 | 98 | # Using the CLI 99 | First, install the dependencies: 100 | ```shell 101 | $ swift package update 102 | ``` 103 | Build it: 104 | ```shell 105 | $ swift build 106 | ``` 107 | 108 | Then run passing the appropriate parameters (if you prefer, you can also use the binary generated inside the **.build** folder): 109 | ```shell 110 | Usage: swift run SwiftColorGen [options] 111 | -o --outputFile (required): 112 | Path to the output Swift file 113 | -b --baseFolder (optional): 114 | Path to the folder where the storyboards are located. Defaults to the current working directory 115 | -a --assetsFolder (optional): 116 | Path to the assets folder. Defaults to the first .xcassets found under the base folder 117 | ``` 118 | 119 | Example: 120 | ```shell 121 | $ swift run SwiftColorGen -o Example/Generated.swift 122 | ``` 123 | 124 | **Notice that OS X 10.12 is required to run, because of a dependency from a NSColor method (used to convert between different color spaces)** 125 | 126 | # Installation 127 | You can install the tool using CocoaPods and then add a **Build Phase** step, that runs SwiftColorGen every time the project is built. 128 | 129 | ### CocoaPods 130 | [CocoaPods](http://cocoapods.org) is a dependency manager for Cocoa projects. 131 | 132 | 1. To integrate SwiftColorGen into your Xcode project, specify it in your Podfile: 133 | ```ruby 134 | pod 'SwiftColorGen' 135 | ``` 136 | 2. Install the dependencies: 137 | ```shell 138 | $ pod install 139 | ``` 140 | 3. In Xcode: Click on your project in the file list, choose your target under TARGETS, click the **Build Phases** tab and add a **New Run Script Phase** by clicking the little plus icon in the top left. Drag the **New Run Script Phase** above the **Compile Sources phase** and below **Check Pods Manifest.lock**, expand it and then call the tool with something like that: 141 | ```shell 142 | "$PODS_ROOT/SwiftColorGen/swiftcg" -b "$SRCROOT" -o "$SRCROOT/CustomColors.swift" 143 | ``` 144 | 4. Build your project and it's done. Remember to add the generated Swift file to Xcode, if it's not already there. 145 | 146 | # Contributing 147 | This project still on a initial stage of development. Feel free to contribute by testing it and reporting bugs. If you want to help developing it, checkout the issues section. If you fixed some issue or made some enhancement, open a pull request. 148 | 149 | # License 150 | SwiftColorGen is available under the MIT license. See the LICENSE file for more info. 151 | -------------------------------------------------------------------------------- /Resources/Assets0.3.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fernandodelrio/SwiftColorGen/3e578b7a4551c98262222c85c092b23ea94880aa/Resources/Assets0.3.0.png -------------------------------------------------------------------------------- /Resources/Gif-Collecting-Colors0.5.0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fernandodelrio/SwiftColorGen/3e578b7a4551c98262222c85c092b23ea94880aa/Resources/Gif-Collecting-Colors0.5.0.gif -------------------------------------------------------------------------------- /Resources/Gif-Custom-Color0.5.0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fernandodelrio/SwiftColorGen/3e578b7a4551c98262222c85c092b23ea94880aa/Resources/Gif-Custom-Color0.5.0.gif -------------------------------------------------------------------------------- /Resources/Gif-Renaming0.5.0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fernandodelrio/SwiftColorGen/3e578b7a4551c98262222c85c092b23ea94880aa/Resources/Gif-Renaming0.5.0.gif -------------------------------------------------------------------------------- /Resources/Gif-Swift0.5.0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fernandodelrio/SwiftColorGen/3e578b7a4551c98262222c85c092b23ea94880aa/Resources/Gif-Swift0.5.0.gif -------------------------------------------------------------------------------- /Resources/Storyboard0.3.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fernandodelrio/SwiftColorGen/3e578b7a4551c98262222c85c092b23ea94880aa/Resources/Storyboard0.3.0.png -------------------------------------------------------------------------------- /Resources/Swift0.3.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fernandodelrio/SwiftColorGen/3e578b7a4551c98262222c85c092b23ea94880aa/Resources/Swift0.3.0.png -------------------------------------------------------------------------------- /Resources/Video-thumbnail0.4.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fernandodelrio/SwiftColorGen/3e578b7a4551c98262222c85c092b23ea94880aa/Resources/Video-thumbnail0.4.0.png -------------------------------------------------------------------------------- /Sources/SwiftColorGen/main.swift: -------------------------------------------------------------------------------- 1 | // 2 | // main.swift 3 | // SwiftColorGen 4 | // 5 | // Created by Fernando del Rio (fernandomdr@gmail.com) on 18/11/17. 6 | // 7 | // SwiftColorGen is a tool that generate code for Swift projects, 8 | // designed to improve the maintainability of UIColors. 9 | // 10 | // First it reads all storyboard files to find common colors. 11 | // Then it creates those colors in a .xcassets file and refer 12 | // them in the storyboard 13 | // Finally it creates a UIColor extension allowing to access the 14 | // same colors programatically 15 | // 16 | // The user should call the CLI passing: 17 | // 1. The project's base folder (that contains the storyboard) 18 | // 2. The .xcassets folder (where the colors will be created) 19 | // 3. The swift output file (where the UIColor's extension will be 20 | // created) 21 | // 22 | // There's an example inside the project, so you can test the code 23 | // generation. 24 | // You can call the CLI using the terminal, but you can also call 25 | // it using Xcode. To do that, just edit the scheme and add 26 | // 'Arguments Passed On Launch': 27 | // -b $SRCROOT/Example 28 | // -a $SRCROOT/Example/Assets.xcassets 29 | // -o $SRCROOT/Example/Generated.swift 30 | // 31 | 32 | import Foundation 33 | import SwiftColorGenLibrary 34 | 35 | func main() { 36 | let args = CLIManager.getArgs() 37 | let assets = AssetManager.getAssetColors(assetsFolder: args.assetsFolder) 38 | cleanColors(args: args, assets: assets) 39 | let oldColors = assets 40 | .filter { $0.type == .original } 41 | .map { $0.color ?? ColorData() } 42 | let newColors = getNewColors(args: args) 43 | let allColors = newColors.union(oldColors) 44 | if !allColors.isEmpty { 45 | writeAllColors(allColors, args: args) 46 | } 47 | let customAssets = assets.filter { $0.type != .original } 48 | // Wirte the generated UIColor extension to file 49 | OutputFileManager.writeOutputfile(path: args.outputFile, 50 | colors: allColors, 51 | assets: customAssets) 52 | } 53 | 54 | func getNewColors(args: (baseFolder: String, assetsFolder: String, outputFile: String)) -> Set { 55 | // Gets the list of storyboards 56 | let storyboards = StoryboardManager.getStoryboards(baseFolder: args.baseFolder) 57 | var allColors: Set = Set() 58 | storyboards.forEach { storyboard in 59 | // Gets the list of colors 60 | let colors = StoryboardManager.readStoryboardColors(path: storyboard) 61 | // Place all colors in a set to avoid duplicates 62 | allColors = allColors.union(colors) 63 | } 64 | return allColors 65 | } 66 | 67 | func writeAllColors(_ allColors: Set, 68 | args: (baseFolder: String, assetsFolder: String, outputFile: String)) { 69 | // Gets the list of storyboards 70 | let storyboards = StoryboardManager.getStoryboards(baseFolder: args.baseFolder) 71 | storyboards.forEach { storyboard in 72 | // Updates the storyboard, settings the colors 73 | let xml = StoryboardManager.updateStoryboard(path: storyboard, 74 | colors: allColors) 75 | // Adds the "resources" key to the storyboard, to 76 | // avoid a storyboard warning 77 | StoryboardManager.addResources(xml: xml, colors: allColors) 78 | // Write the modified XML to file 79 | StoryboardManager.writeStoryboard(xml: xml, path: storyboard) 80 | } 81 | // Write the colors to the .xcassets folder 82 | AssetManager.writeColorAssets(path: args.assetsFolder, colors: allColors) 83 | } 84 | 85 | func cleanColors(args: (baseFolder: String, assetsFolder: String, outputFile: String), assets: [Asset]) { 86 | let storyboards = StoryboardManager.getStoryboards(baseFolder: args.baseFolder) 87 | storyboards.forEach { storyboard in 88 | let xml = StoryboardManager.readStoryboard(path: storyboard) 89 | StoryboardManager.removeOriginalResources(xml: xml, assets: assets) 90 | StoryboardManager.updateCustomResources(xml: xml, assets: assets) 91 | StoryboardManager.resetColors(xml: xml, assets: assets) 92 | StoryboardManager.writeStoryboard(xml: xml, path: storyboard) 93 | AssetManager.deleteColorsets(assets: assets) 94 | AssetManager.updateCustomJson(assets: assets) 95 | } 96 | } 97 | 98 | main() 99 | 100 | 101 | -------------------------------------------------------------------------------- /SwiftColorGen.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "SwiftColorGen" 3 | s.version = "0.6.1" 4 | s.summary = "A tool that generate code for Swift projects, designed to improve the maintainability of UIColors" 5 | s.description = <<-DESC 6 | A tool that generate code for Swift projects, designed to improve the maintainability of UIColors. 7 | SwiftColorGen reads all storyboard files to find common colors. 8 | Then it creates those colors in a .xcassets folder and refer them in the storyboard. 9 | Finally it creates a UIColor extension allowing to access the same colors programatically. 10 | DESC 11 | s.homepage = "https://github.com/fernandodelrio/SwiftColorGen" 12 | s.screenshots = "https://raw.githubusercontent.com/fernandodelrio/SwiftColorGen/master/Resources/Storyboard0.3.0.png", "https://raw.githubusercontent.com/fernandodelrio/SwiftColorGen/master/Resources/Assets0.3.0.png", "https://raw.githubusercontent.com/fernandodelrio/SwiftColorGen/master/Resources/Swift0.3.0.png" 13 | s.license = {:type => "MIT", :file => "LICENSE.md"} 14 | s.author = { "Fernando del Rio" => "fernandomdr@gmail.com" } 15 | s.social_media_url = "https://twitter.com/fernandohdelrio" 16 | s.ios.deployment_target = "8.0" 17 | s.source = { :http => "https://github.com/fernandodelrio/SwiftColorGen/releases/download/#{s.version}/swiftcg-#{s.version}.zip" } 18 | s.preserve_paths = "swiftcg" 19 | end 20 | -------------------------------------------------------------------------------- /SwiftColorGen.xcodeproj/AEXML_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /SwiftColorGen.xcodeproj/CommandLine_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /SwiftColorGen.xcodeproj/SwiftColorGenLibrary_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /SwiftColorGen.xcodeproj/SwiftColorGen_Library_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /SwiftColorGen.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | OBJ_100 /* CommandLine.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CommandLine::CommandLine::Product" /* CommandLine.framework */; }; 11 | OBJ_101 /* AEXML.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "AEXML::AEXML::Product" /* AEXML.framework */; }; 12 | OBJ_108 /* CommandLine.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_28 /* CommandLine.swift */; }; 13 | OBJ_109 /* Option.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_29 /* Option.swift */; }; 14 | OBJ_110 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_30 /* StringExtensions.swift */; }; 15 | OBJ_116 /* Document.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_34 /* Document.swift */; }; 16 | OBJ_117 /* Element.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_35 /* Element.swift */; }; 17 | OBJ_118 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_36 /* Error.swift */; }; 18 | OBJ_119 /* Options.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_37 /* Options.swift */; }; 19 | OBJ_120 /* Parser.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_38 /* Parser.swift */; }; 20 | OBJ_49 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_6 /* Package.swift */; }; 21 | OBJ_55 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_25 /* Package.swift */; }; 22 | OBJ_61 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_31 /* Package.swift */; }; 23 | OBJ_67 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_33 /* Package.swift */; }; 24 | OBJ_73 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_9 /* main.swift */; }; 25 | OBJ_75 /* SwiftColorGenLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "SwiftColorGenLibrary::SwiftColorGenLibrary::Product" /* SwiftColorGenLibrary.framework */; }; 26 | OBJ_76 /* CommandLine.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CommandLine::CommandLine::Product" /* CommandLine.framework */; }; 27 | OBJ_77 /* AEXML.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "AEXML::AEXML::Product" /* AEXML.framework */; }; 28 | OBJ_88 /* AEXMLElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_14 /* AEXMLElement.swift */; }; 29 | OBJ_89 /* Asset.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_15 /* Asset.swift */; }; 30 | OBJ_90 /* AssetManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_16 /* AssetManager.swift */; }; 31 | OBJ_91 /* CLIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_17 /* CLIManager.swift */; }; 32 | OBJ_92 /* ColorData.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_18 /* ColorData.swift */; }; 33 | OBJ_93 /* ColorManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_19 /* ColorManager.swift */; }; 34 | OBJ_94 /* ColorSpaceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_20 /* ColorSpaceManager.swift */; }; 35 | OBJ_95 /* OutputFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_21 /* OutputFileManager.swift */; }; 36 | OBJ_96 /* PathManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_22 /* PathManager.swift */; }; 37 | OBJ_97 /* StoryboardManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_23 /* StoryboardManager.swift */; }; 38 | OBJ_98 /* WebColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_24 /* WebColors.swift */; }; 39 | /* End PBXBuildFile section */ 40 | 41 | /* Begin PBXContainerItemProxy section */ 42 | D8CE83661FDC4FAB0067358B /* PBXContainerItemProxy */ = { 43 | isa = PBXContainerItemProxy; 44 | containerPortal = OBJ_1 /* Project object */; 45 | proxyType = 1; 46 | remoteGlobalIDString = "SwiftColorGenLibrary::SwiftColorGenLibrary"; 47 | remoteInfo = SwiftColorGenLibrary; 48 | }; 49 | D8CE83671FDC4FAB0067358B /* PBXContainerItemProxy */ = { 50 | isa = PBXContainerItemProxy; 51 | containerPortal = OBJ_1 /* Project object */; 52 | proxyType = 1; 53 | remoteGlobalIDString = "CommandLine::CommandLine"; 54 | remoteInfo = CommandLine; 55 | }; 56 | D8CE83681FDC4FAB0067358B /* PBXContainerItemProxy */ = { 57 | isa = PBXContainerItemProxy; 58 | containerPortal = OBJ_1 /* Project object */; 59 | proxyType = 1; 60 | remoteGlobalIDString = "AEXML::AEXML"; 61 | remoteInfo = AEXML; 62 | }; 63 | D8CE83691FDC4FAB0067358B /* PBXContainerItemProxy */ = { 64 | isa = PBXContainerItemProxy; 65 | containerPortal = OBJ_1 /* Project object */; 66 | proxyType = 1; 67 | remoteGlobalIDString = "CommandLine::CommandLine"; 68 | remoteInfo = CommandLine; 69 | }; 70 | D8CE836A1FDC4FAB0067358B /* PBXContainerItemProxy */ = { 71 | isa = PBXContainerItemProxy; 72 | containerPortal = OBJ_1 /* Project object */; 73 | proxyType = 1; 74 | remoteGlobalIDString = "AEXML::AEXML"; 75 | remoteInfo = AEXML; 76 | }; 77 | /* End PBXContainerItemProxy section */ 78 | 79 | /* Begin PBXFileReference section */ 80 | "AEXML::AEXML::Product" /* AEXML.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AEXML.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 81 | "CommandLine::CommandLine::Product" /* CommandLine.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CommandLine.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 82 | D83860CA1FDC5CF300D4E762 /* Second.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Second.storyboard; path = Example/Second.storyboard; sourceTree = ""; }; 83 | D83860CB1FDC5CF300D4E762 /* First.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = First.storyboard; path = Example/First.storyboard; sourceTree = ""; }; 84 | D83860CC1FDC5CF300D4E762 /* Generated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Generated.swift; path = Example/Generated.swift; sourceTree = ""; }; 85 | D83860CD1FDC5CF300D4E762 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Example/Assets.xcassets; sourceTree = ""; }; 86 | OBJ_14 /* AEXMLElement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AEXMLElement.swift; sourceTree = ""; }; 87 | OBJ_15 /* Asset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Asset.swift; sourceTree = ""; }; 88 | OBJ_16 /* AssetManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssetManager.swift; sourceTree = ""; }; 89 | OBJ_17 /* CLIManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CLIManager.swift; sourceTree = ""; }; 90 | OBJ_18 /* ColorData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorData.swift; sourceTree = ""; }; 91 | OBJ_19 /* ColorManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorManager.swift; sourceTree = ""; }; 92 | OBJ_20 /* ColorSpaceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorSpaceManager.swift; sourceTree = ""; }; 93 | OBJ_21 /* OutputFileManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutputFileManager.swift; sourceTree = ""; }; 94 | OBJ_22 /* PathManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PathManager.swift; sourceTree = ""; }; 95 | OBJ_23 /* StoryboardManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoryboardManager.swift; sourceTree = ""; }; 96 | OBJ_24 /* WebColors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebColors.swift; sourceTree = ""; }; 97 | OBJ_25 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = "/Users/fbonfim/Documents/pkgtest3/SwiftColorGen/.build/checkouts/SwiftColorGenLibrary.git-4374237979280322477/Package.swift"; sourceTree = ""; }; 98 | OBJ_28 /* CommandLine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandLine.swift; sourceTree = ""; }; 99 | OBJ_29 /* Option.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Option.swift; sourceTree = ""; }; 100 | OBJ_30 /* StringExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; 101 | OBJ_31 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = "/Users/fbonfim/Documents/pkgtest3/SwiftColorGen/.build/checkouts/CommandLine-2827937867013820466/Package.swift"; sourceTree = ""; }; 102 | OBJ_33 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = "/Users/fbonfim/Documents/pkgtest3/SwiftColorGen/.build/checkouts/AEXML.git--1992474868199569405/Package.swift"; sourceTree = ""; }; 103 | OBJ_34 /* Document.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Document.swift; sourceTree = ""; }; 104 | OBJ_35 /* Element.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Element.swift; sourceTree = ""; }; 105 | OBJ_36 /* Error.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Error.swift; sourceTree = ""; }; 106 | OBJ_37 /* Options.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Options.swift; sourceTree = ""; }; 107 | OBJ_38 /* Parser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Parser.swift; sourceTree = ""; }; 108 | OBJ_6 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; 109 | OBJ_9 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; 110 | "SwiftColorGen::SwiftColorGen::Product" /* SwiftColorGen */ = {isa = PBXFileReference; lastKnownFileType = text; path = SwiftColorGen; sourceTree = BUILT_PRODUCTS_DIR; }; 111 | "SwiftColorGenLibrary::SwiftColorGenLibrary::Product" /* SwiftColorGenLibrary.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftColorGenLibrary.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 112 | /* End PBXFileReference section */ 113 | 114 | /* Begin PBXFrameworksBuildPhase section */ 115 | OBJ_111 /* Frameworks */ = { 116 | isa = PBXFrameworksBuildPhase; 117 | buildActionMask = 0; 118 | files = ( 119 | ); 120 | runOnlyForDeploymentPostprocessing = 0; 121 | }; 122 | OBJ_121 /* Frameworks */ = { 123 | isa = PBXFrameworksBuildPhase; 124 | buildActionMask = 0; 125 | files = ( 126 | ); 127 | runOnlyForDeploymentPostprocessing = 0; 128 | }; 129 | OBJ_74 /* Frameworks */ = { 130 | isa = PBXFrameworksBuildPhase; 131 | buildActionMask = 0; 132 | files = ( 133 | OBJ_75 /* SwiftColorGenLibrary.framework in Frameworks */, 134 | OBJ_76 /* CommandLine.framework in Frameworks */, 135 | OBJ_77 /* AEXML.framework in Frameworks */, 136 | ); 137 | runOnlyForDeploymentPostprocessing = 0; 138 | }; 139 | OBJ_99 /* Frameworks */ = { 140 | isa = PBXFrameworksBuildPhase; 141 | buildActionMask = 0; 142 | files = ( 143 | OBJ_100 /* CommandLine.framework in Frameworks */, 144 | OBJ_101 /* AEXML.framework in Frameworks */, 145 | ); 146 | runOnlyForDeploymentPostprocessing = 0; 147 | }; 148 | /* End PBXFrameworksBuildPhase section */ 149 | 150 | /* Begin PBXGroup section */ 151 | D83860C91FDC5CC700D4E762 /* Example */ = { 152 | isa = PBXGroup; 153 | children = ( 154 | D83860CD1FDC5CF300D4E762 /* Assets.xcassets */, 155 | D83860CB1FDC5CF300D4E762 /* First.storyboard */, 156 | D83860CC1FDC5CF300D4E762 /* Generated.swift */, 157 | D83860CA1FDC5CF300D4E762 /* Second.storyboard */, 158 | ); 159 | name = Example; 160 | sourceTree = ""; 161 | }; 162 | OBJ_10 /* Tests */ = { 163 | isa = PBXGroup; 164 | children = ( 165 | ); 166 | name = Tests; 167 | sourceTree = SOURCE_ROOT; 168 | }; 169 | OBJ_11 /* Dependencies */ = { 170 | isa = PBXGroup; 171 | children = ( 172 | OBJ_12 /* SwiftColorGenLibrary 0.6.0 */, 173 | OBJ_26 /* CommandLine 4.0.0 */, 174 | OBJ_32 /* AEXML 4.2.2 */, 175 | ); 176 | name = Dependencies; 177 | sourceTree = ""; 178 | }; 179 | OBJ_12 /* SwiftColorGenLibrary 0.6.0 */ = { 180 | isa = PBXGroup; 181 | children = ( 182 | OBJ_13 /* SwiftColorGenLibrary */, 183 | OBJ_25 /* Package.swift */, 184 | ); 185 | name = "SwiftColorGenLibrary 0.6.0"; 186 | sourceTree = SOURCE_ROOT; 187 | }; 188 | OBJ_13 /* SwiftColorGenLibrary */ = { 189 | isa = PBXGroup; 190 | children = ( 191 | OBJ_14 /* AEXMLElement.swift */, 192 | OBJ_15 /* Asset.swift */, 193 | OBJ_16 /* AssetManager.swift */, 194 | OBJ_17 /* CLIManager.swift */, 195 | OBJ_18 /* ColorData.swift */, 196 | OBJ_19 /* ColorManager.swift */, 197 | OBJ_20 /* ColorSpaceManager.swift */, 198 | OBJ_21 /* OutputFileManager.swift */, 199 | OBJ_22 /* PathManager.swift */, 200 | OBJ_23 /* StoryboardManager.swift */, 201 | OBJ_24 /* WebColors.swift */, 202 | ); 203 | name = SwiftColorGenLibrary; 204 | path = ".build/checkouts/SwiftColorGenLibrary.git-4374237979280322477/Sources/SwiftColorGenLibrary"; 205 | sourceTree = SOURCE_ROOT; 206 | }; 207 | OBJ_26 /* CommandLine 4.0.0 */ = { 208 | isa = PBXGroup; 209 | children = ( 210 | OBJ_27 /* CommandLine */, 211 | OBJ_31 /* Package.swift */, 212 | ); 213 | name = "CommandLine 4.0.0"; 214 | sourceTree = SOURCE_ROOT; 215 | }; 216 | OBJ_27 /* CommandLine */ = { 217 | isa = PBXGroup; 218 | children = ( 219 | OBJ_28 /* CommandLine.swift */, 220 | OBJ_29 /* Option.swift */, 221 | OBJ_30 /* StringExtensions.swift */, 222 | ); 223 | name = CommandLine; 224 | path = ".build/checkouts/CommandLine-2827937867013820466/Sources/CommandLine"; 225 | sourceTree = SOURCE_ROOT; 226 | }; 227 | OBJ_32 /* AEXML 4.2.2 */ = { 228 | isa = PBXGroup; 229 | children = ( 230 | OBJ_33 /* Package.swift */, 231 | OBJ_34 /* Document.swift */, 232 | OBJ_35 /* Element.swift */, 233 | OBJ_36 /* Error.swift */, 234 | OBJ_37 /* Options.swift */, 235 | OBJ_38 /* Parser.swift */, 236 | ); 237 | name = "AEXML 4.2.2"; 238 | path = ".build/checkouts/AEXML.git--1992474868199569405/Sources"; 239 | sourceTree = SOURCE_ROOT; 240 | }; 241 | OBJ_39 /* Products */ = { 242 | isa = PBXGroup; 243 | children = ( 244 | "SwiftColorGen::SwiftColorGen::Product" /* SwiftColorGen */, 245 | "SwiftColorGenLibrary::SwiftColorGenLibrary::Product" /* SwiftColorGenLibrary.framework */, 246 | "CommandLine::CommandLine::Product" /* CommandLine.framework */, 247 | "AEXML::AEXML::Product" /* AEXML.framework */, 248 | ); 249 | name = Products; 250 | sourceTree = BUILT_PRODUCTS_DIR; 251 | }; 252 | OBJ_5 = { 253 | isa = PBXGroup; 254 | children = ( 255 | OBJ_6 /* Package.swift */, 256 | D83860C91FDC5CC700D4E762 /* Example */, 257 | OBJ_7 /* Sources */, 258 | OBJ_10 /* Tests */, 259 | OBJ_11 /* Dependencies */, 260 | OBJ_39 /* Products */, 261 | ); 262 | sourceTree = ""; 263 | }; 264 | OBJ_7 /* Sources */ = { 265 | isa = PBXGroup; 266 | children = ( 267 | OBJ_8 /* SwiftColorGen */, 268 | ); 269 | name = Sources; 270 | sourceTree = SOURCE_ROOT; 271 | }; 272 | OBJ_8 /* SwiftColorGen */ = { 273 | isa = PBXGroup; 274 | children = ( 275 | OBJ_9 /* main.swift */, 276 | ); 277 | name = SwiftColorGen; 278 | path = Sources/SwiftColorGen; 279 | sourceTree = SOURCE_ROOT; 280 | }; 281 | /* End PBXGroup section */ 282 | 283 | /* Begin PBXNativeTarget section */ 284 | "AEXML::AEXML" /* AEXML */ = { 285 | isa = PBXNativeTarget; 286 | buildConfigurationList = OBJ_112 /* Build configuration list for PBXNativeTarget "AEXML" */; 287 | buildPhases = ( 288 | OBJ_115 /* Sources */, 289 | OBJ_121 /* Frameworks */, 290 | ); 291 | buildRules = ( 292 | ); 293 | dependencies = ( 294 | ); 295 | name = AEXML; 296 | productName = AEXML; 297 | productReference = "AEXML::AEXML::Product" /* AEXML.framework */; 298 | productType = "com.apple.product-type.framework"; 299 | }; 300 | "AEXML::SwiftPMPackageDescription" /* AEXMLPackageDescription */ = { 301 | isa = PBXNativeTarget; 302 | buildConfigurationList = OBJ_63 /* Build configuration list for PBXNativeTarget "AEXMLPackageDescription" */; 303 | buildPhases = ( 304 | OBJ_66 /* Sources */, 305 | ); 306 | buildRules = ( 307 | ); 308 | dependencies = ( 309 | ); 310 | name = AEXMLPackageDescription; 311 | productName = AEXMLPackageDescription; 312 | productType = "com.apple.product-type.framework"; 313 | }; 314 | "CommandLine::CommandLine" /* CommandLine */ = { 315 | isa = PBXNativeTarget; 316 | buildConfigurationList = OBJ_104 /* Build configuration list for PBXNativeTarget "CommandLine" */; 317 | buildPhases = ( 318 | OBJ_107 /* Sources */, 319 | OBJ_111 /* Frameworks */, 320 | ); 321 | buildRules = ( 322 | ); 323 | dependencies = ( 324 | ); 325 | name = CommandLine; 326 | productName = CommandLine; 327 | productReference = "CommandLine::CommandLine::Product" /* CommandLine.framework */; 328 | productType = "com.apple.product-type.framework"; 329 | }; 330 | "CommandLine::SwiftPMPackageDescription" /* CommandLinePackageDescription */ = { 331 | isa = PBXNativeTarget; 332 | buildConfigurationList = OBJ_57 /* Build configuration list for PBXNativeTarget "CommandLinePackageDescription" */; 333 | buildPhases = ( 334 | OBJ_60 /* Sources */, 335 | ); 336 | buildRules = ( 337 | ); 338 | dependencies = ( 339 | ); 340 | name = CommandLinePackageDescription; 341 | productName = CommandLinePackageDescription; 342 | productType = "com.apple.product-type.framework"; 343 | }; 344 | "SwiftColorGen::SwiftColorGen" /* SwiftColorGen */ = { 345 | isa = PBXNativeTarget; 346 | buildConfigurationList = OBJ_69 /* Build configuration list for PBXNativeTarget "SwiftColorGen" */; 347 | buildPhases = ( 348 | OBJ_72 /* Sources */, 349 | OBJ_74 /* Frameworks */, 350 | ); 351 | buildRules = ( 352 | ); 353 | dependencies = ( 354 | OBJ_78 /* PBXTargetDependency */, 355 | OBJ_80 /* PBXTargetDependency */, 356 | OBJ_82 /* PBXTargetDependency */, 357 | ); 358 | name = SwiftColorGen; 359 | productName = SwiftColorGen; 360 | productReference = "SwiftColorGen::SwiftColorGen::Product" /* SwiftColorGen */; 361 | productType = "com.apple.product-type.tool"; 362 | }; 363 | "SwiftColorGen::SwiftPMPackageDescription" /* SwiftColorGenPackageDescription */ = { 364 | isa = PBXNativeTarget; 365 | buildConfigurationList = OBJ_45 /* Build configuration list for PBXNativeTarget "SwiftColorGenPackageDescription" */; 366 | buildPhases = ( 367 | OBJ_48 /* Sources */, 368 | ); 369 | buildRules = ( 370 | ); 371 | dependencies = ( 372 | ); 373 | name = SwiftColorGenPackageDescription; 374 | productName = SwiftColorGenPackageDescription; 375 | productType = "com.apple.product-type.framework"; 376 | }; 377 | "SwiftColorGenLibrary::SwiftColorGenLibrary" /* SwiftColorGenLibrary */ = { 378 | isa = PBXNativeTarget; 379 | buildConfigurationList = OBJ_84 /* Build configuration list for PBXNativeTarget "SwiftColorGenLibrary" */; 380 | buildPhases = ( 381 | OBJ_87 /* Sources */, 382 | OBJ_99 /* Frameworks */, 383 | ); 384 | buildRules = ( 385 | ); 386 | dependencies = ( 387 | OBJ_102 /* PBXTargetDependency */, 388 | OBJ_103 /* PBXTargetDependency */, 389 | ); 390 | name = SwiftColorGenLibrary; 391 | productName = SwiftColorGenLibrary; 392 | productReference = "SwiftColorGenLibrary::SwiftColorGenLibrary::Product" /* SwiftColorGenLibrary.framework */; 393 | productType = "com.apple.product-type.framework"; 394 | }; 395 | "SwiftColorGenLibrary::SwiftPMPackageDescription" /* SwiftColorGenLibraryPackageDescription */ = { 396 | isa = PBXNativeTarget; 397 | buildConfigurationList = OBJ_51 /* Build configuration list for PBXNativeTarget "SwiftColorGenLibraryPackageDescription" */; 398 | buildPhases = ( 399 | OBJ_54 /* Sources */, 400 | ); 401 | buildRules = ( 402 | ); 403 | dependencies = ( 404 | ); 405 | name = SwiftColorGenLibraryPackageDescription; 406 | productName = SwiftColorGenLibraryPackageDescription; 407 | productType = "com.apple.product-type.framework"; 408 | }; 409 | /* End PBXNativeTarget section */ 410 | 411 | /* Begin PBXProject section */ 412 | OBJ_1 /* Project object */ = { 413 | isa = PBXProject; 414 | attributes = { 415 | LastUpgradeCheck = 9999; 416 | }; 417 | buildConfigurationList = OBJ_2 /* Build configuration list for PBXProject "SwiftColorGen" */; 418 | compatibilityVersion = "Xcode 3.2"; 419 | developmentRegion = English; 420 | hasScannedForEncodings = 0; 421 | knownRegions = ( 422 | en, 423 | ); 424 | mainGroup = OBJ_5; 425 | productRefGroup = OBJ_39 /* Products */; 426 | projectDirPath = ""; 427 | projectRoot = ""; 428 | targets = ( 429 | "SwiftColorGen::SwiftPMPackageDescription" /* SwiftColorGenPackageDescription */, 430 | "SwiftColorGenLibrary::SwiftPMPackageDescription" /* SwiftColorGenLibraryPackageDescription */, 431 | "CommandLine::SwiftPMPackageDescription" /* CommandLinePackageDescription */, 432 | "AEXML::SwiftPMPackageDescription" /* AEXMLPackageDescription */, 433 | "SwiftColorGen::SwiftColorGen" /* SwiftColorGen */, 434 | "SwiftColorGenLibrary::SwiftColorGenLibrary" /* SwiftColorGenLibrary */, 435 | "CommandLine::CommandLine" /* CommandLine */, 436 | "AEXML::AEXML" /* AEXML */, 437 | ); 438 | }; 439 | /* End PBXProject section */ 440 | 441 | /* Begin PBXSourcesBuildPhase section */ 442 | OBJ_107 /* Sources */ = { 443 | isa = PBXSourcesBuildPhase; 444 | buildActionMask = 0; 445 | files = ( 446 | OBJ_108 /* CommandLine.swift in Sources */, 447 | OBJ_109 /* Option.swift in Sources */, 448 | OBJ_110 /* StringExtensions.swift in Sources */, 449 | ); 450 | runOnlyForDeploymentPostprocessing = 0; 451 | }; 452 | OBJ_115 /* Sources */ = { 453 | isa = PBXSourcesBuildPhase; 454 | buildActionMask = 0; 455 | files = ( 456 | OBJ_116 /* Document.swift in Sources */, 457 | OBJ_117 /* Element.swift in Sources */, 458 | OBJ_118 /* Error.swift in Sources */, 459 | OBJ_119 /* Options.swift in Sources */, 460 | OBJ_120 /* Parser.swift in Sources */, 461 | ); 462 | runOnlyForDeploymentPostprocessing = 0; 463 | }; 464 | OBJ_48 /* Sources */ = { 465 | isa = PBXSourcesBuildPhase; 466 | buildActionMask = 0; 467 | files = ( 468 | OBJ_49 /* Package.swift in Sources */, 469 | ); 470 | runOnlyForDeploymentPostprocessing = 0; 471 | }; 472 | OBJ_54 /* Sources */ = { 473 | isa = PBXSourcesBuildPhase; 474 | buildActionMask = 0; 475 | files = ( 476 | OBJ_55 /* Package.swift in Sources */, 477 | ); 478 | runOnlyForDeploymentPostprocessing = 0; 479 | }; 480 | OBJ_60 /* Sources */ = { 481 | isa = PBXSourcesBuildPhase; 482 | buildActionMask = 0; 483 | files = ( 484 | OBJ_61 /* Package.swift in Sources */, 485 | ); 486 | runOnlyForDeploymentPostprocessing = 0; 487 | }; 488 | OBJ_66 /* Sources */ = { 489 | isa = PBXSourcesBuildPhase; 490 | buildActionMask = 0; 491 | files = ( 492 | OBJ_67 /* Package.swift in Sources */, 493 | ); 494 | runOnlyForDeploymentPostprocessing = 0; 495 | }; 496 | OBJ_72 /* Sources */ = { 497 | isa = PBXSourcesBuildPhase; 498 | buildActionMask = 0; 499 | files = ( 500 | OBJ_73 /* main.swift in Sources */, 501 | ); 502 | runOnlyForDeploymentPostprocessing = 0; 503 | }; 504 | OBJ_87 /* Sources */ = { 505 | isa = PBXSourcesBuildPhase; 506 | buildActionMask = 0; 507 | files = ( 508 | OBJ_88 /* AEXMLElement.swift in Sources */, 509 | OBJ_89 /* Asset.swift in Sources */, 510 | OBJ_90 /* AssetManager.swift in Sources */, 511 | OBJ_91 /* CLIManager.swift in Sources */, 512 | OBJ_92 /* ColorData.swift in Sources */, 513 | OBJ_93 /* ColorManager.swift in Sources */, 514 | OBJ_94 /* ColorSpaceManager.swift in Sources */, 515 | OBJ_95 /* OutputFileManager.swift in Sources */, 516 | OBJ_96 /* PathManager.swift in Sources */, 517 | OBJ_97 /* StoryboardManager.swift in Sources */, 518 | OBJ_98 /* WebColors.swift in Sources */, 519 | ); 520 | runOnlyForDeploymentPostprocessing = 0; 521 | }; 522 | /* End PBXSourcesBuildPhase section */ 523 | 524 | /* Begin PBXTargetDependency section */ 525 | OBJ_102 /* PBXTargetDependency */ = { 526 | isa = PBXTargetDependency; 527 | target = "CommandLine::CommandLine" /* CommandLine */; 528 | targetProxy = D8CE83671FDC4FAB0067358B /* PBXContainerItemProxy */; 529 | }; 530 | OBJ_103 /* PBXTargetDependency */ = { 531 | isa = PBXTargetDependency; 532 | target = "AEXML::AEXML" /* AEXML */; 533 | targetProxy = D8CE83681FDC4FAB0067358B /* PBXContainerItemProxy */; 534 | }; 535 | OBJ_78 /* PBXTargetDependency */ = { 536 | isa = PBXTargetDependency; 537 | target = "SwiftColorGenLibrary::SwiftColorGenLibrary" /* SwiftColorGenLibrary */; 538 | targetProxy = D8CE83661FDC4FAB0067358B /* PBXContainerItemProxy */; 539 | }; 540 | OBJ_80 /* PBXTargetDependency */ = { 541 | isa = PBXTargetDependency; 542 | target = "CommandLine::CommandLine" /* CommandLine */; 543 | targetProxy = D8CE83691FDC4FAB0067358B /* PBXContainerItemProxy */; 544 | }; 545 | OBJ_82 /* PBXTargetDependency */ = { 546 | isa = PBXTargetDependency; 547 | target = "AEXML::AEXML" /* AEXML */; 548 | targetProxy = D8CE836A1FDC4FAB0067358B /* PBXContainerItemProxy */; 549 | }; 550 | /* End PBXTargetDependency section */ 551 | 552 | /* Begin XCBuildConfiguration section */ 553 | OBJ_105 /* Debug */ = { 554 | isa = XCBuildConfiguration; 555 | buildSettings = { 556 | ENABLE_TESTABILITY = YES; 557 | FRAMEWORK_SEARCH_PATHS = ( 558 | "$(inherited)", 559 | "$(PLATFORM_DIR)/Developer/Library/Frameworks", 560 | ); 561 | HEADER_SEARCH_PATHS = "$(inherited)"; 562 | INFOPLIST_FILE = SwiftColorGen.xcodeproj/CommandLine_Info.plist; 563 | LD_RUNPATH_SEARCH_PATHS = "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; 564 | OTHER_LDFLAGS = "$(inherited)"; 565 | OTHER_SWIFT_FLAGS = "$(inherited)"; 566 | PRODUCT_BUNDLE_IDENTIFIER = CommandLine; 567 | PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; 568 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 569 | SKIP_INSTALL = YES; 570 | SWIFT_VERSION = 4.0; 571 | TARGET_NAME = CommandLine; 572 | }; 573 | name = Debug; 574 | }; 575 | OBJ_106 /* Release */ = { 576 | isa = XCBuildConfiguration; 577 | buildSettings = { 578 | ENABLE_TESTABILITY = YES; 579 | FRAMEWORK_SEARCH_PATHS = ( 580 | "$(inherited)", 581 | "$(PLATFORM_DIR)/Developer/Library/Frameworks", 582 | ); 583 | HEADER_SEARCH_PATHS = "$(inherited)"; 584 | INFOPLIST_FILE = SwiftColorGen.xcodeproj/CommandLine_Info.plist; 585 | LD_RUNPATH_SEARCH_PATHS = "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; 586 | OTHER_LDFLAGS = "$(inherited)"; 587 | OTHER_SWIFT_FLAGS = "$(inherited)"; 588 | PRODUCT_BUNDLE_IDENTIFIER = CommandLine; 589 | PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; 590 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 591 | SKIP_INSTALL = YES; 592 | SWIFT_VERSION = 4.0; 593 | TARGET_NAME = CommandLine; 594 | }; 595 | name = Release; 596 | }; 597 | OBJ_113 /* Debug */ = { 598 | isa = XCBuildConfiguration; 599 | buildSettings = { 600 | ENABLE_TESTABILITY = YES; 601 | FRAMEWORK_SEARCH_PATHS = ( 602 | "$(inherited)", 603 | "$(PLATFORM_DIR)/Developer/Library/Frameworks", 604 | ); 605 | HEADER_SEARCH_PATHS = "$(inherited)"; 606 | INFOPLIST_FILE = SwiftColorGen.xcodeproj/AEXML_Info.plist; 607 | LD_RUNPATH_SEARCH_PATHS = "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; 608 | OTHER_LDFLAGS = "$(inherited)"; 609 | OTHER_SWIFT_FLAGS = "$(inherited)"; 610 | PRODUCT_BUNDLE_IDENTIFIER = AEXML; 611 | PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; 612 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 613 | SKIP_INSTALL = YES; 614 | SWIFT_VERSION = 3.0; 615 | TARGET_NAME = AEXML; 616 | }; 617 | name = Debug; 618 | }; 619 | OBJ_114 /* Release */ = { 620 | isa = XCBuildConfiguration; 621 | buildSettings = { 622 | ENABLE_TESTABILITY = YES; 623 | FRAMEWORK_SEARCH_PATHS = ( 624 | "$(inherited)", 625 | "$(PLATFORM_DIR)/Developer/Library/Frameworks", 626 | ); 627 | HEADER_SEARCH_PATHS = "$(inherited)"; 628 | INFOPLIST_FILE = SwiftColorGen.xcodeproj/AEXML_Info.plist; 629 | LD_RUNPATH_SEARCH_PATHS = "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; 630 | OTHER_LDFLAGS = "$(inherited)"; 631 | OTHER_SWIFT_FLAGS = "$(inherited)"; 632 | PRODUCT_BUNDLE_IDENTIFIER = AEXML; 633 | PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; 634 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 635 | SKIP_INSTALL = YES; 636 | SWIFT_VERSION = 3.0; 637 | TARGET_NAME = AEXML; 638 | }; 639 | name = Release; 640 | }; 641 | OBJ_3 /* Debug */ = { 642 | isa = XCBuildConfiguration; 643 | buildSettings = { 644 | CLANG_ENABLE_OBJC_ARC = YES; 645 | COMBINE_HIDPI_IMAGES = YES; 646 | COPY_PHASE_STRIP = NO; 647 | DEBUG_INFORMATION_FORMAT = dwarf; 648 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 649 | ENABLE_NS_ASSERTIONS = YES; 650 | GCC_OPTIMIZATION_LEVEL = 0; 651 | MACOSX_DEPLOYMENT_TARGET = 10.10; 652 | ONLY_ACTIVE_ARCH = YES; 653 | OTHER_SWIFT_FLAGS = "-DXcode"; 654 | PRODUCT_NAME = "$(TARGET_NAME)"; 655 | SDKROOT = macosx; 656 | SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator"; 657 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = SWIFT_PACKAGE; 658 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 659 | USE_HEADERMAP = NO; 660 | }; 661 | name = Debug; 662 | }; 663 | OBJ_4 /* Release */ = { 664 | isa = XCBuildConfiguration; 665 | buildSettings = { 666 | CLANG_ENABLE_OBJC_ARC = YES; 667 | COMBINE_HIDPI_IMAGES = YES; 668 | COPY_PHASE_STRIP = YES; 669 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 670 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 671 | GCC_OPTIMIZATION_LEVEL = s; 672 | MACOSX_DEPLOYMENT_TARGET = 10.10; 673 | OTHER_SWIFT_FLAGS = "-DXcode"; 674 | PRODUCT_NAME = "$(TARGET_NAME)"; 675 | SDKROOT = macosx; 676 | SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator"; 677 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = SWIFT_PACKAGE; 678 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 679 | USE_HEADERMAP = NO; 680 | }; 681 | name = Release; 682 | }; 683 | OBJ_46 /* Debug */ = { 684 | isa = XCBuildConfiguration; 685 | buildSettings = { 686 | LD = /usr/bin/true; 687 | OTHER_SWIFT_FLAGS = "-swift-version 4 -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm/4 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk"; 688 | SWIFT_VERSION = 4.0; 689 | }; 690 | name = Debug; 691 | }; 692 | OBJ_47 /* Release */ = { 693 | isa = XCBuildConfiguration; 694 | buildSettings = { 695 | LD = /usr/bin/true; 696 | OTHER_SWIFT_FLAGS = "-swift-version 4 -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm/4 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk"; 697 | SWIFT_VERSION = 4.0; 698 | }; 699 | name = Release; 700 | }; 701 | OBJ_52 /* Debug */ = { 702 | isa = XCBuildConfiguration; 703 | buildSettings = { 704 | LD = /usr/bin/true; 705 | OTHER_SWIFT_FLAGS = "-swift-version 4 -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm/4 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk"; 706 | SWIFT_VERSION = 4.0; 707 | }; 708 | name = Debug; 709 | }; 710 | OBJ_53 /* Release */ = { 711 | isa = XCBuildConfiguration; 712 | buildSettings = { 713 | LD = /usr/bin/true; 714 | OTHER_SWIFT_FLAGS = "-swift-version 4 -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm/4 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk"; 715 | SWIFT_VERSION = 4.0; 716 | }; 717 | name = Release; 718 | }; 719 | OBJ_58 /* Debug */ = { 720 | isa = XCBuildConfiguration; 721 | buildSettings = { 722 | LD = /usr/bin/true; 723 | OTHER_SWIFT_FLAGS = "-swift-version 4 -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm/4 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk"; 724 | SWIFT_VERSION = 4.0; 725 | }; 726 | name = Debug; 727 | }; 728 | OBJ_59 /* Release */ = { 729 | isa = XCBuildConfiguration; 730 | buildSettings = { 731 | LD = /usr/bin/true; 732 | OTHER_SWIFT_FLAGS = "-swift-version 4 -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm/4 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk"; 733 | SWIFT_VERSION = 4.0; 734 | }; 735 | name = Release; 736 | }; 737 | OBJ_64 /* Debug */ = { 738 | isa = XCBuildConfiguration; 739 | buildSettings = { 740 | LD = /usr/bin/true; 741 | OTHER_SWIFT_FLAGS = "-swift-version 3 -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm/3 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk"; 742 | SWIFT_VERSION = 3.0; 743 | }; 744 | name = Debug; 745 | }; 746 | OBJ_65 /* Release */ = { 747 | isa = XCBuildConfiguration; 748 | buildSettings = { 749 | LD = /usr/bin/true; 750 | OTHER_SWIFT_FLAGS = "-swift-version 3 -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/pm/3 -target x86_64-apple-macosx10.10 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk"; 751 | SWIFT_VERSION = 3.0; 752 | }; 753 | name = Release; 754 | }; 755 | OBJ_70 /* Debug */ = { 756 | isa = XCBuildConfiguration; 757 | buildSettings = { 758 | FRAMEWORK_SEARCH_PATHS = ( 759 | "$(inherited)", 760 | "$(PLATFORM_DIR)/Developer/Library/Frameworks", 761 | ); 762 | HEADER_SEARCH_PATHS = "$(inherited)"; 763 | INFOPLIST_FILE = SwiftColorGen.xcodeproj/SwiftColorGen_Info.plist; 764 | LD_RUNPATH_SEARCH_PATHS = "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx @executable_path"; 765 | OTHER_LDFLAGS = "$(inherited)"; 766 | OTHER_SWIFT_FLAGS = "$(inherited)"; 767 | SWIFT_FORCE_DYNAMIC_LINK_STDLIB = YES; 768 | SWIFT_FORCE_STATIC_LINK_STDLIB = NO; 769 | SWIFT_VERSION = 4.0; 770 | TARGET_NAME = SwiftColorGen; 771 | }; 772 | name = Debug; 773 | }; 774 | OBJ_71 /* Release */ = { 775 | isa = XCBuildConfiguration; 776 | buildSettings = { 777 | FRAMEWORK_SEARCH_PATHS = ( 778 | "$(inherited)", 779 | "$(PLATFORM_DIR)/Developer/Library/Frameworks", 780 | ); 781 | HEADER_SEARCH_PATHS = "$(inherited)"; 782 | INFOPLIST_FILE = SwiftColorGen.xcodeproj/SwiftColorGen_Info.plist; 783 | LD_RUNPATH_SEARCH_PATHS = "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx @executable_path"; 784 | OTHER_LDFLAGS = "$(inherited)"; 785 | OTHER_SWIFT_FLAGS = "$(inherited)"; 786 | SWIFT_FORCE_DYNAMIC_LINK_STDLIB = YES; 787 | SWIFT_FORCE_STATIC_LINK_STDLIB = NO; 788 | SWIFT_VERSION = 4.0; 789 | TARGET_NAME = SwiftColorGen; 790 | }; 791 | name = Release; 792 | }; 793 | OBJ_85 /* Debug */ = { 794 | isa = XCBuildConfiguration; 795 | buildSettings = { 796 | ENABLE_TESTABILITY = YES; 797 | FRAMEWORK_SEARCH_PATHS = ( 798 | "$(inherited)", 799 | "$(PLATFORM_DIR)/Developer/Library/Frameworks", 800 | ); 801 | HEADER_SEARCH_PATHS = "$(inherited)"; 802 | INFOPLIST_FILE = SwiftColorGen.xcodeproj/SwiftColorGenLibrary_Info.plist; 803 | LD_RUNPATH_SEARCH_PATHS = "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; 804 | OTHER_LDFLAGS = "$(inherited)"; 805 | OTHER_SWIFT_FLAGS = "$(inherited)"; 806 | PRODUCT_BUNDLE_IDENTIFIER = SwiftColorGenLibrary; 807 | PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; 808 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 809 | SKIP_INSTALL = YES; 810 | SWIFT_VERSION = 4.0; 811 | TARGET_NAME = SwiftColorGenLibrary; 812 | }; 813 | name = Debug; 814 | }; 815 | OBJ_86 /* Release */ = { 816 | isa = XCBuildConfiguration; 817 | buildSettings = { 818 | ENABLE_TESTABILITY = YES; 819 | FRAMEWORK_SEARCH_PATHS = ( 820 | "$(inherited)", 821 | "$(PLATFORM_DIR)/Developer/Library/Frameworks", 822 | ); 823 | HEADER_SEARCH_PATHS = "$(inherited)"; 824 | INFOPLIST_FILE = SwiftColorGen.xcodeproj/SwiftColorGenLibrary_Info.plist; 825 | LD_RUNPATH_SEARCH_PATHS = "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; 826 | OTHER_LDFLAGS = "$(inherited)"; 827 | OTHER_SWIFT_FLAGS = "$(inherited)"; 828 | PRODUCT_BUNDLE_IDENTIFIER = SwiftColorGenLibrary; 829 | PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; 830 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 831 | SKIP_INSTALL = YES; 832 | SWIFT_VERSION = 4.0; 833 | TARGET_NAME = SwiftColorGenLibrary; 834 | }; 835 | name = Release; 836 | }; 837 | /* End XCBuildConfiguration section */ 838 | 839 | /* Begin XCConfigurationList section */ 840 | OBJ_104 /* Build configuration list for PBXNativeTarget "CommandLine" */ = { 841 | isa = XCConfigurationList; 842 | buildConfigurations = ( 843 | OBJ_105 /* Debug */, 844 | OBJ_106 /* Release */, 845 | ); 846 | defaultConfigurationIsVisible = 0; 847 | defaultConfigurationName = Debug; 848 | }; 849 | OBJ_112 /* Build configuration list for PBXNativeTarget "AEXML" */ = { 850 | isa = XCConfigurationList; 851 | buildConfigurations = ( 852 | OBJ_113 /* Debug */, 853 | OBJ_114 /* Release */, 854 | ); 855 | defaultConfigurationIsVisible = 0; 856 | defaultConfigurationName = Debug; 857 | }; 858 | OBJ_2 /* Build configuration list for PBXProject "SwiftColorGen" */ = { 859 | isa = XCConfigurationList; 860 | buildConfigurations = ( 861 | OBJ_3 /* Debug */, 862 | OBJ_4 /* Release */, 863 | ); 864 | defaultConfigurationIsVisible = 0; 865 | defaultConfigurationName = Debug; 866 | }; 867 | OBJ_45 /* Build configuration list for PBXNativeTarget "SwiftColorGenPackageDescription" */ = { 868 | isa = XCConfigurationList; 869 | buildConfigurations = ( 870 | OBJ_46 /* Debug */, 871 | OBJ_47 /* Release */, 872 | ); 873 | defaultConfigurationIsVisible = 0; 874 | defaultConfigurationName = Debug; 875 | }; 876 | OBJ_51 /* Build configuration list for PBXNativeTarget "SwiftColorGenLibraryPackageDescription" */ = { 877 | isa = XCConfigurationList; 878 | buildConfigurations = ( 879 | OBJ_52 /* Debug */, 880 | OBJ_53 /* Release */, 881 | ); 882 | defaultConfigurationIsVisible = 0; 883 | defaultConfigurationName = Debug; 884 | }; 885 | OBJ_57 /* Build configuration list for PBXNativeTarget "CommandLinePackageDescription" */ = { 886 | isa = XCConfigurationList; 887 | buildConfigurations = ( 888 | OBJ_58 /* Debug */, 889 | OBJ_59 /* Release */, 890 | ); 891 | defaultConfigurationIsVisible = 0; 892 | defaultConfigurationName = Debug; 893 | }; 894 | OBJ_63 /* Build configuration list for PBXNativeTarget "AEXMLPackageDescription" */ = { 895 | isa = XCConfigurationList; 896 | buildConfigurations = ( 897 | OBJ_64 /* Debug */, 898 | OBJ_65 /* Release */, 899 | ); 900 | defaultConfigurationIsVisible = 0; 901 | defaultConfigurationName = Debug; 902 | }; 903 | OBJ_69 /* Build configuration list for PBXNativeTarget "SwiftColorGen" */ = { 904 | isa = XCConfigurationList; 905 | buildConfigurations = ( 906 | OBJ_70 /* Debug */, 907 | OBJ_71 /* Release */, 908 | ); 909 | defaultConfigurationIsVisible = 0; 910 | defaultConfigurationName = Debug; 911 | }; 912 | OBJ_84 /* Build configuration list for PBXNativeTarget "SwiftColorGenLibrary" */ = { 913 | isa = XCConfigurationList; 914 | buildConfigurations = ( 915 | OBJ_85 /* Debug */, 916 | OBJ_86 /* Release */, 917 | ); 918 | defaultConfigurationIsVisible = 0; 919 | defaultConfigurationName = Debug; 920 | }; 921 | /* End XCConfigurationList section */ 922 | }; 923 | rootObject = OBJ_1 /* Project object */; 924 | } 925 | -------------------------------------------------------------------------------- /SwiftColorGen.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SwiftColorGen.xcodeproj/xcshareddata/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SchemeUserState 5 | 6 | SwiftColorGen-Package.xcscheme 7 | 8 | 9 | SuppressBuildableAutocreation 10 | 11 | 12 | 13 | --------------------------------------------------------------------------------