Home

Awesome

<p align="center"> <img src=".github/Logo.png" width="480" max-width="90%" alt="Carting" /> </p> <p align="center"> <a href="https://github.com/artemnovichkov/carting/actions"> <img src="https://github.com/artemnovichkov/carting/workflows/Build/badge.svg" /> <img src="https://img.shields.io/badge/homebrew-compatible-brightgreen.svg?style=flat" alt="Make" /> <a href="https://swift.org/package-manager"> <img src="https://img.shields.io/badge/spm-compatible-brightgreen.svg?style=flat" alt="Swift Package Manager" /> </a> </p>

Do you use Carthage? Are you feel tired of adding special script and the paths to frameworks (point 4, 5 and 6 in Getting Started guide) manually? Me too. Carting does it for you. It scans Carthage folder and linked frameworks, gets framework names and updates the script.

<p align="center"> <img src=".github/carting.png" max-width="90%" alt="Carting usage" /> </p>

Using

Run carting update in project folder. That's all.

By default Carting searches a script named Carthage, but you can set a name of your script via command line arguments:

$ carting update -s MyBestScript

If there is no script with the name, Carting will add a new one.

Since Xcode 10 Run Script Phases support declaring input and output files in a .xcfilelist file. This file should contain a newline-separated list of the file paths for the inputs or outputs. Carting uses it by default. If you need to work with your projects in old Xcode versions, use -f file option.

๐ŸšจNote: be sure to have no uncommitted changes in project file to prevent project parsing errors ๐Ÿ˜ฑ.

<p align="center"> <img src=".github/error.png" max-width="90%" alt="Project parsing error" /> </p>

Run carting --help to see available commands:

OVERVIEW: ๐Ÿš˜ Simple tool for updating Carthage script phase

USAGE: Carting <command> <options>

SUBCOMMANDS:
  info                    Prints Carthage frameworks list with linking description.
  lint                    Lint the project for missing paths.
  update                  Adds a new script with input/output file paths or updates the script named `Carthage`.

Linting

Integrate Carting into an Xcode scheme to get errors displayed in the IDE. Just add a new "Run Script Phase" with:

/usr/local/bin/carting lint
<p align="center"> <img src=".github/phase.png" max-width="90%" alt="Run Script Phase" /> </p>

Installing

Homebrew (recommended):

$ brew tap artemnovichkov/projects
$ brew install carting

Mint:

$ mint run artemnovichkov/carting

Make:

$ git clone https://github.com/artemnovichkov/carting.git
$ cd Carting
$ make

Swift Package Manager:

let package = Package(
    dependencies: [
        .Package(url: "https://github.com/artemnovichkov/carting", majorVersion: 2)
    ]
)

Author

Artem Novichkov, https://www.artemnovichkov.com/about

License

Carting is available under the MIT license. See the LICENSE file for more info.